потоковая передача файла m3u8 с opencv
Я пытаюсь захватить живой поток с GoPro, используя cv2 в python со следующим кодом:
VIDEO_URL = "http://10.5.5.9:8080/live/amba.m3u8"
cam = cv2.VideoCapture(VIDEO_URL)
cv2.namedWindow("GoPro",cv2.CV_WINDOW_AUTOSIZE)
while True:
f, im = cam.read()
cv2.imshow("GoPro",im)
if cv2.waitKey(5) == 27:
break
cam.release()
cv2.destroyAllWindows()
Но получаем следующие ошибки:
WARNING: Couldn't read movie file http://10.5.5.9:8080/live/amba.m3u8
OpenCV Error: Assertion failed (size.width>0 && size.height>0) in imshow, file /tmp/opencv-MRl1/opencv-2.4.7.1/modules/highgui/src/window.cpp, line 261
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "gopro_simple.py", line 167, in live_stream
cv2.imshow("GoPro",im)
cv2.error: /tmp/opencv-MRl1/opencv-2.4.7.1/modules/highgui/src/window.cpp:261: error: (-215) size.width>0 && size.height>0 in function imshow
Поток работает в vlc, а код работает с веб-камерой ,поэтому похоже, что проблема в том, что opencv не нравится.формат m3u8. Любые идеи / предложения о том, как это исправить, будут высоко оценены. Спасибо.
2 ответов:
Найдено решение, которое вызывает ffmpeg здесь - отлично работает (с парой небольших изменений параметров ffmpeg):
VIDEO_URL = WEBURL + "live/amba.m3u8" cv2.namedWindow("GoPro",cv2.CV_WINDOW_AUTOSIZE) pipe = sp.Popen([ FFMPEG_BIN, "-i", VIDEO_URL, "-loglevel", "quiet", # no text output "-an", # disable audio "-f", "image2pipe", "-pix_fmt", "bgr24", "-vcodec", "rawvideo", "-"], stdin = sp.PIPE, stdout = sp.PIPE) while True: raw_image = pipe.stdout.read(432*240*3) # read 432*240*3 bytes (= 1 frame) image = numpy.fromstring(raw_image, dtype='uint8').reshape((240,432,3)) cv2.imshow("GoPro",image) if cv2.waitKey(5) == 27: break cv2.destroyAllWindows()Все еще возится с кодом, так что любые предложения приветствуются.
Возможно, вы используете VLC: откройте поток в VLC (
http://10.5.5.9:8080/live/amba.m3u8), а затем вы можете перезапустить его или использовать его по своему усмотрению. VLC очень мощная система. Я могу стрем моей GoPro контента для Интернет -
Comments