ffmpeg mp4ファイルをrtmpでストリーム配信する
nginx-rtmpをテストするとき、OBSを使用しているのですが、もっとお手軽に試せないか調べてみました。ffmpegでmp4ファイルを読み取り、rtmp配信するのが良さそうです。
コマンド
調べた結果、こんなコマンドになりました。
ffmpeg -re -stream_loop -1 -i [mp4ファイル] -vcodec libx264 -vprofile baseline -g 30 -acodec aac -strict -2 -f flv [rtmpサーバーの配信ポイント]
「-re」でソースのフレームレートをエミュレート
※これを指定しないと一気に処理されます。
「-stream_loop -1」でずっと繰り返し
「-i」で使用するmp4ファイルを指定
[-f flv」で出力先のrtmpサーバーを指定します。
コマンドの実例はこのようになります。
ffmpeg -re -stream_loop -1 -i sample.mp4 -vcodec libx264 -vprofile baseline -g 30 -acodec aac -strict -2 -f flv rtmp://192.168.11.102/live/livekey
https://pixabay.com/ja/videos/
こちらから動画ファイルをお借りしました。
コマンド実行後、vlcの[メディア]-[ネットワークストリームを開く]で「rtmp://192.168.11.102/live/livekey」を指定。
mp4ファイルの内容が配信されていることが確認できました。
【参考URL】
Setting up HLS live streaming server using NGINX + nginx-rtmp-module on Ubuntu
ffmpegでrtmp配信を行う
最新ffmpegのオプションまとめ
FFMPEG で無限入力が可能に
https://pixabay.com/ja/videos/
コメント