1

私はストリーミングプロジェクトに取り組んでいます。

VLCをサーバーとして実行し、mp4(h264 / aac)RTSPストリームをFlumotionサーバー(Gstreamerに基づく)にストリーミングしています。

VLC(Live555に基づく)とFlumotion(GStreamerに基づく)の間の互換性の問題か、RTSPストリームの受信に使用されるパイプラインが誤って記述されているかのいずれかだと思います。

flumotionで使用されるパイプラインは次のとおりであり、修正する必要があります(rtsp.pyの44〜49行目)。

return ("rtspsrc name=src location=%s ! decodebin name=d ! queue "
        " ! %s ffmpegcolorspace ! video/x-raw-yuv "
        " ! videorate ! video/x-raw-yuv,framerate=%d/%d ! "
        " @feeder:video@ %s ! @feeder:audio@"
        % (location, scaling_template, framerate[0],
           framerate[1], audio_template))

編集:問題は、flumotionのRTSP-ProducerコンポーネントがVLCストリームからデータを受信できないことです。エラーはなく、何もありません。「ウェイク」ステータスのままです。

flumotionで使用されるGStreamerパイプラインのバリエーションをいくつか試しましたが、機能させることができませんでした。

StackOverflowで同様の未解決の質問をたくさん見つけたので、互換性の問題だと思いました

私は物品サービス税ではありません!ですから、この闘いから私を助けてください。

4

1 に答える 1

0

さて、このコマンドは(通常)機能しているので:

gst-launch playbin uri="rtsp://127.0.0.1:8554/live"

互換性の問題はあり得ないと思いました!この問題は、「rtspsrc」と「decodebin」の代わりに「rtspdecodebin」を使用することで解決されました。

最後に、rtsp.pyでそれを変更しました::

return ("uridecodebin name=d uri=%s ! queue "
        " ! %s ffmpegcolorspace ! video/x-raw-yuv "
        " ! videorate ! video/x-raw-yuv,framerate=%d/%d ! "
        " @feeder:video@ %s ! @feeder:audio@"
        % (location, scaling_template, framerate[0],
           framerate[1], audio_template))

今それは動作します!(ほとんどの場合)そしてそれはおそらくストリームまたはQoSの何かです...

于 2012-05-19T19:57:13.973 に答える