web-dev-qa-db-ja.com

FFmpegからRTSPをストリーミングするにはどのような手順が必要ですか?

FFmpegからRTSPをストリーミングするにはどのような手順が必要ですか?

UDPのストリーミングは問題ではありませんが、RTSPストリームをネイティブに読み取ることができるモバイルデバイスにストリーミングしたいので、正確に何が必要かを示すセットアップが見つかりませんでした。 LIVE555のようなRTSPストリーミングサーバーが必要ですか、またはFFmpegのみを使用できますか?

私のコマンド:

ffmpeg -i space.mp4 -vcodec libx264 -tune zerolatency -crf 18 -f rtsp -muxdelay 0.1 rtsp://192.168.1.200:1234

入出力エラーが発生します。

RTSPを使用するにはSDPの説明が必要ですか?はいの場合、どこに置く必要がありますか?

14
user1767754

FFserver を使用して、RTSPを使用してビデオをストリーミングできます。

コンソール構文を次のように変更するだけです:

ffmpeg -i space.mp4 -vcodec libx264 -tune zerolatency -crf 18 http://localhost:1234/feed1.ffm

ffserver.configファイル( sampleHTTPPortRTSPPortおよびSDPストリームを宣言します。設定ファイルは次のようになります(いくつかの重要なものが欠落している可能性があります)。

HTTPPort 1234
RTSPPort 1235

<Feed feed1.ffm>
        File /tmp/feed1.ffm
        FileMaxSize 2M
        ACL allow 127.0.0.1
</Feed>

<Stream test1.sdp>
    Feed feed1.ffm
    Format rtp
    Noaudio
    VideoCodec libx264
    AVOptionVideo flags +global_header
    AVOptionVideo me_range 16
    AVOptionVideo qdiff 4
    AVOptionVideo qmin 10
    AVOptionVideo qmax 51
    ACL allow 192.168.0.0 192.168.255.255
</Stream>

このようなセットアップでは、次のように入力して、VLCでストリームを視聴できます。

rtsp://192.168.0.xxx:1235/test1.sdp

こちらが FFserver のドキュメントです。

17
grzebyk

FFServerの代わりに使用した代替手段はRed5 Proで、Ubuntuでは次の行を使用しました:ffmpeg -f Pulse -i default -f video4linux2 -thread_queue_size 64 -framerate 25 -video_size 640x480 -i /dev/video0 -pix_fmt yuv420p -bsf:v h264_mp4toannexb -profile:v baseline -level:v 3.2 -c:v libx264 -x264-params keyint=120:scenecut=0 -c:a aac -b:a 128k -ar 44100 -f rtsp -muxdelay 0.1 rtsp://localhost:8554/live/paul

0
Paul Gregoire