ローカルポートから、RGBペイロード(ビデオストリーム)のみを含むUDPパケットを受信します。
ffmpegまたはvlcを使用してRGBを表示するにはどうすればよいですか?
彼らはあなたの質問に直接答えませんが、私はこれらの助けを願っています。これらは、ffmpegおよびgstreamerで生のrgbデータを処理するために必要なコマンドラインオプションへのポインターを提供します。
私はかつて、別のコンピューターに接続されたWebカメラからRGBフレームを受信する必要がありました。
フレーミングなしでパケットがドロップされ、フレームが不完全になり、行が同期しなくなったため、UDPでは機能しませんでした。したがって、TCP(UDPの使用は問題であるか、コマンド内のその単語を変更します)。
ffmpeg、gstreamer、mencoder、mplayer、vlcと戦うと、次の解決策が得られました。
"建築":
[LINUX V4L2 WEBCAM CAPTURE]-> [THEORA VIDEO COMPRESSION]-> [RTP STREAM @ PORT 1233]-> [RECEIVING HOST]-> [THEORA VIDEO DECOMPRESSION]-> [RAW RGB / 8BPP TO LOCALHOST @ PORT 1234]
コマンドライン:
# VIDEO STREAM SENDING SIDE
vlc -vvv -I dummy --udp-caching=0 --sout-mux-caching=0 --no-audio \
v4l2:///dev/video0:width=640:height=480:caching=200:fps=10/1 :v4l2-caching=0 \
':sout=#transcode{vcodec=mp2v,vb=3000,acodec=none}: \
rtp{mux=ts,dst=destinationhost,port=1233,caching=0}'
# VIDEO STREAM RECEIVING/FORWARDING TO TCP / ffmpeg
ffmpeg -i rtp://0.0.0.0?localport=1233 \
-f rawvideo -pix_fmt rgb24 -vcodec rawvideo tcp://127.0.0.1:1234
または、両方を実行するための1つのコマンド(gstreamerを使用):
# CAPTURE WEBCAM->FORWARD RGB GRAYSCALE TO TCP / gstreamer
gst-launch-0.10 v4l2src device=/dev/video0 ! ffmpegcolorspace \
! video/x-raw-gray, width=320, height=240, 'framerate=(fraction)30/1' \
! tcpclientsink host=localhost port=1234