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の説明が必要ですか?はいの場合、どこに置く必要がありますか?
FFserver を使用して、RTSPを使用してビデオをストリーミングできます。
コンソール構文を次のように変更するだけです:
ffmpeg -i space.mp4 -vcodec libx264 -tune zerolatency -crf 18 http://localhost:1234/feed1.ffm
ffserver.config
ファイル( sample )HTTPPort
、RTSPPort
および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 のドキュメントです。
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