ffmpeg-ffserverの組み合わせて動画を配信しようとしています。
カメラ画像の配信自体は
ffmpeg -s 1280x720 -f video4linux2 -i /dev/video0 http::XXX:8090/webcam.ffm
でうまくいきました。
そこでOpenCVの編集画像を次に配信しようとしました。
lang
1#!/usr/bin/env python 2# -*- coding: utf-8 -*- 3 4 5import numpy as np 6import cv2 7import sys 8 9cap = cv2.VideoCapture(0) 10 11while(True): 12 # Capture frame-by-frame 13 ret, frame = cap.read() 14 15 # Our operations on the frame come here 16 gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) 17 18 # Display the resulting frame 19 cv2.imshow('frame',gray) 20 sys.stdout.write( gray.tostring() ) 21 22 if cv2.waitKey(1) & 0xFF == ord('q'): 23 break 24 25# When everything done, release the capture 26cap.release() 27cv2.destroyAllWindows()
のコードを書きました。(capture2.pyとします。)
なおグレーにしたのはほんの出来事です。
で、標準出力に出るのを
python capture2.py | ffmpeg -f rawvideo -pixel_format yuyv422 -video_size 1280x720 -framerate 30 -i - http://XXXX.com:8090/webcam.ffm
で同じく配信されるか見ました。
結果はだめでこうなります。
これはgray.tostring()でむりやり標準出力にしているせいか
もしくはPIXELFORMATの違いのせいだろうと考えていますが
OpenCVの出力をffserverに渡すいい方法を知っているひとはいませんか?
あるいは
OpenCVの出力のVideoFormatを知る方法を知っているひとはいませんか?
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/03/12 13:23
2018/03/12 15:21
2018/03/12 15:23