2017-01-06 16 views
0

У меня есть простой потоковый сервер, предоставляющий потоки mjpeg (https://blog.miguelgrinberg.com/post/video-streaming-with-flask/page/3). При доступе к данным mjpeg через браузер он работает так, как ожидалось. Я вижу поток веб-камеры.Запросы Python - нет ответа при запросе данных mjpeg

Если я получаю запрос через python (с использованием запросов на python: http://requests.readthedocs.io/), я не получаю никакого ответа (также тестируемого с клиентом Insomnia REST), ни кода состояния/исключения.

requests.get(url) 

То, что я хочу сделать, это написать прокси-скрипт (в Python), который просто перенаправляет поток MJPEG.

ответ

0

Библиотека requests, вероятно, не является подходящей опцией для пересылки видеопотока, поскольку вам нужно будет извлечь фрагмент видео, а затем как-то интерпретировать это как видео, а затем превратить этот BACK в поток, который вы можете надеть сеть. Кроме того, ваше видео, скорее всего, не передается по HTTP, а это протокол requests.get. Лучшим вариантом было бы просто настроить ваш компьютер как прокси-сервер: http://www.aboutdebian.com/proxy.htm, таким образом, пакет в основном записывается и считывается из сокета, просто переписывая информацию высокого уровня, например, куда отправить пакет, без необходимости интерпретировать кишки пакета.

Это говорит, что если вы действительно хотите, чтобы делать то, что вы предлагаете, и в маловероятном случае, что видео как-то быть потоковым через HTTP, вы хотите stream=True

stream = requests.get(url, stream=True) 
if stream.ok: 
    chunk_size = 1024 
    for chunk in stream.iter_content(chunk_size=chunk_size): 
     interpret_video_and_write_to_socket_somehow(chunk, blocking=True) 
+0

спасибо! Я посмотрю на настройку моего сервера (ubuntu) в качестве прокси-сервера. –