Как я могу генерировать динамические маршруты приложений из Flask? - PullRequest
0 голосов
/ 25 июня 2019

Скажите, у меня есть

@app.route('/video_feed/0')       
def video_feed0():
    return Response(gen(VideoCamera(var1)), 
                    mimetype='multipart/x-mixed-replace; boundary=frame')

@app.route('/video_feed/1')       
def video_feed1():
    return Response(gen(VideoCamera(var2)), 
                    mimetype='multipart/x-mixed-replace; boundary=frame')

Где gen () - это генератор, который берет видеокадр с VideoCamera (opencv)

Я бы отобразил это с помощью:

<img id="bg" src="localhost:5000/video_feed/0">
and 
<img id="bg" src="localhost:5000/video_feed/1">

Как лучше всего повторить это для произвольных видеоисточников, скажем, что-то вроде:

def createVidFeeds():
    video_feeds = [1,'192.168.1.233:8080/video']
    for index,item in enumerate(video_feeds):
        video_feed(index,item)  
createVidFeeds()

enumerate () существует для того, чтобы задать переменную счетчика, которую я затем могу передать в / video_feed /

Я ожидаю, что это будет выглядеть примерно так:

def createVidFeeds():
    video_feeds = [1,'192.168.1.233:8080/video']
    for index,item in enumerate(video_feeds):
        video_feed(index,item)  
createVidFeeds()

@app.route('/video_feed/<num>')
def video_feed(num, arg):
    return Response(gen(VideoCamera(arg)),
                    mimetype='multipart/x-mixed-replace; boundary = frame')

но я не смог заставить это работать.

Теперь я много слышал о app.add_url_rule(), и я чувствую, что это ответ здесь, но я не смог обернуть голову, как бы я реализовал это в своем коде.

1 Ответ

0 голосов
/ 25 июня 2019

Я решил это так:

@app.route('/video_feed/<num>')       
def video_feed(num):
    video_feeds = [1,'http://**WEBCAM_IP**/video']
    fsrc = video_feeds[int(num)]
    return Response(gen(VideoCamera(fsrc)), 
                    mimetype='multipart/x-mixed-replace; boundary=frame')

он использует номер итерации для выбора из списка, как предлагает @ghassen. Есть несколько проблем с этим, а именно, чтобы добавить источники с веб-страницы, мне придется переместить список за пределы. но это работает на данный момент.

Если кто-то может сказать мне, как итеративно отображать видео в HTML, это было бы замечательно, хотя и выходит за рамки вопроса.

...