2016-09-16 215 views
1

私はh264でビデオをストリーミングしようとしています。ソースはAxisカメラです。私はマルチキャストでjpegをストリームすることができましたが、h264ではストリームできませんでした。私は、以下のコマンドを使用し、JPEGでudp gstreamerでh264をストリームする方法

gst-launch-1.0 udpsrc uri=udp://239.194.0.177:1026 ! application/x-rtp,encoding-name=JPEG,payload=26 ! rtpjpegdepay ! jpegdec ! autovideosink 

私はH264ストリーミングしようとしたが、それが失敗し、以下のコマンドを使用:

gst-launch-1.0 -v udpsrc host=239.194.0.177 port=1026 ! rtph264depay ! ffdec_h264 ! xvimagesink 

私は次のエラーを取得:

ERROR: pipeline could not be constructed: no element "udpsrc". 

この行の内容:

gst-launch-1.0 udpsrc uri=udp://239.194.0.177:1026 ! application/x-rtp,media=video,clock-rate=90000,encoding-name=H264 ! rtph264depay ! h264parse 

私はすべてのエラーを取得できませんでしたが、何のビデオがストリーミングされず、これが端末で印刷されました:

Stream H.264 video over rtp using gstreamer

https://developer.ridgerun.com/wiki/index.php/Using_UDP_Multicast_with_GStreamer

Setting pipeline to PAUSED ... 
Pipeline is live and does not need PREROLL ... 
Setting pipeline to PLAYING ... 
New clock: GstSystemClock 

は、私は以下のページからのコマンドを試してみましたhttp://labs.isee.biz/index.php/Example_GStreamer_Pipelines#H.264_RTP_Streaming

しかし、それを動作させることができませんでした。

冗長モードで実行している場合、私はより多くの情報を取得します。

コマンド:

gst-launch-1.0 -v udpsrc uri=udp://239.194.0.177:1026 ! application/x-rtp, media=video, payload=96, encoding-name=H264 ! rtph264depay ! avdec_h264 ! videoconvert ! fakesink 

出力:

Setting pipeline to PAUSED ... 
Pipeline is live and does not need PREROLL ... 
Setting pipeline to PLAYING ... 
New clock: GstSystemClock 
/GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:src: caps = "application/x-rtp\,\ media\=\(string\)video\,\ payload\=\(int\)96\,\ encoding-name\=\(string\)H264\,\ clock-rate\=\(int\)90000" 
/GstPipeline:pipeline0/GstRtpH264Depay:rtph264depay0.GstPad:sink: caps = "application/x-rtp\,\ media\=\(string\)video\,\ payload\=\(int\)96\,\ encoding-name\=\(string\)H264\,\ clock-rate\=\(int\)90000" 

私はのgstreamerをマルチキャストでH264をストリーミングするにはどうすればよいですか?

+0

-v GST-打ち上げと冗長モードでそれをやってみてください-1.0 udpsrc uri = udp://239.194.0.177:1026! application/x-rtp、media = video、clock-rate = 90000、encoding-name = H264! rtph264depay! h264parse! fakesink - パイプラインのすべての要素の後にfakesinkを追加して、問題の原因となっている要素を特定してください。 –

答えて

1

コメントには長すぎる - と誰も答えとして思考のこのドラフトを掲示答えていないので...

なし要素udpsrcについての最初のエラーは本当に奇妙です。しかし、私はそれがuriパラメータの欠落について不平を言うと思う。どのバージョンを使用していますか?私はudpsrcのホストパラメータを持っていません。

3番目のパイプラインでは、h264parseで終わります - これはtypoですか?あなたはH264をデコードする必要があります。..ちょうどそれを解析できません:

gst-launch-1.0 udpsrc uri=udp://239.194.0.177:1026 ! application/x-rtp,media=video,clock-rate=90000,encoding-name=H264 ! rtph264depay ! h264parse ! avdec_h264 ! videoconvert ! autovideosink 

はまたGST_DEBUG=3 gst-launch-1.0 ....かそこらを実行していると(多分ペーストビンと長すぎる場合)、いくつかのログを追加します。

それが何を意味する:

But could not get it to work

これはあまり言いません。)

を通常あなたが本当にすべての機能を提供する必要がRTPで作業する場合、それ以外の場合は全くリンクしたり、再生できないことがあります。

おそらくuridecodebinを試してみてください。

gst-launch-1.0 uridecodebin uri = udp:// etcetc:port!ビデオコンバート! (..だけでなく他人のために)あなたはどんな新しいに関する情報を取得する場合/質問は、画像全体を作るための更新プログラムとして追加

autovideosink

HTHは

+0

あなたのコマンドを試しましたが、ストリームが開かれていない、前と同じメッセージ、つまり新しいクロックの後に何も起こらない:GstSystemClockとエラーはありません。 また、すべての要素の後ろにfakesinkを追加しようとしましたが、何も得られませんでした。 コマンドには何も問題はないようですが、何らかの理由でストリームを含むウィンドウがh264で開かれません。 カメラがh264でマルチキャストを送信しており、ネットワークがwiresharkedされていることを確認して、パケットが実際に送信されたことを確認します。だから私は今、パケットが送信されます。 GST_DEBUG = 3を使用しているときに追加情報も表示されませんでした。 – S4M1R

+0

私はログを見たいと思っています= 4レベルの場合 – nayana

+0

ログレベルがログ4 https://drive.google.com/open?id=0B-lpWopRD2DXdVRRSEs1cW1DNkk – S4M1R

関連する問題