2016-05-25 18 views
1

私は、USBカメラから既知の幅、高さ、フォーマットの生のイメージデータを受け取るプログラムを持っています。次に、各フレームをstdoutに出力します。形式はBGR24です。Gstreamer:stdoutから生のイメージを読み込み、h264ストリームに変換する

gstreamerを使用してh264ストリームとして転送する必要がありますが、生のビデオストリームをエンコードする方法を見つけることができません。例えば

、ffmpegのを使用すると、これは次のように行われます。

my_video_reader | ffmpeg -f rawvideo -pix_fmt bgr24 -s:v 752x480 -i - -f h264 - | <send data here> 

答えて

0

はこれがH264streamに生のYUVフレームを変換するために使用され、パイプラインの下に試してみてください。

gst-launch-1.0 videotestsrc ! "video/x-raw,format=I420,width=352,height=288,framerate=30/1" ! videoparse width=352 height=288 framerate=30/1 ! x264enc bitrate=1024 ref=4 key-int-max=20 ! video/x-h264,stream-format=byte-stream,profile=main ! filesink location=v1 

あなたの代わりにvideotestsrcのファイルを、変換したい場合は、単にfilesrc場所でvideotestsrcを置き換える=ファイル名

+0

これは彼がいない標準出力にそれをダンプしているように動作するつもりはありませんファイルに.. Prasanthは[ここ]のようにfdsrcでパイプを修正しようとします(http://stackoverflow.com/questions/8416818/feeding-gstreamer-fdsrc-via-stdin-only-produces-fraction-of-expected-result )gl :) – nayana

関連する問題