0

gstreamer について質問があります。gst-rtsp-server を使ってストリーミングサーバーを作りました。カメラ キャプチャを (ローカル ネットワーク上の) 別のマシンに送信し、それを .ogv ファイルに解析しようとしています。

ストリーミングの送信は正常に機能し、情報を解析してファイルに入れることができました。しかし、この解析後は、それを読み取ったり、アプリケーションで使用したりすることはできません。情報が不足しているようです(おそらくエンコード技術に関連して、私はそれについてあまり知りません)

サーバー側コマンド (c++ コード内):

....
gst_rtsp_media_factory_set_launch (factory, "( v4l2src device=/dev/video0 ! videorate !         
video/x-raw-yuv,width=320,height=240,framerate=30/1 ! videoscale ! ffmpegcolorspace !
theoraenc ! rtptheorapay name=pay0 pt=96 )");

gst_rtsp_media_factory_set_shared (factory, TRUE);

/* attach the test factory to the /test url */
gst_rtsp_media_mapping_add_factory (mapping, "/stream", factory);
....

クライアント側コマンド (端末コマンド) :

gst-launch -v rtspsrc location=rtsp://192.168.0.115:8554/stream ! 
rtptheoradepay name=pay0 ! oggmux ! filesink location=/home/jean/Desktop/stream.ogv

どんな種類の助けも大歓迎です!

ジャン

4

1 に答える 1

0

次のようにパイプラインをデコードして表示できますgst-launch -v rtspsrc location="rtsp://localhost:8554/test" name=demux demux. ! queue ! rtptheoradepay ! theoradec ! ffmpegcolorspace ! autovideosink

それをデコードするには

gst-launch -v rtspsrc location="rtsp://localhost:8554/test" ! application/x-rtp, payload=96 ! rtptheoradepay ! theoradec ! videorate ! ffmpegcolorspace ! theoraenc ! oggmux ! filesink location=GIBBERISH.ogg

ファイルに書き込む前に、それをデコードし、videorate でエンコードし直します。同じことを実行するためのより最適な方法があるかもしれませんが、それは単なる回避策です。

于 2013-03-09T22:03:54.417 に答える