web-dev-qa-db-ja.com

ffmpegはリスンポートを続行します

私はリストリームサーバーを構成しようとしています、ffmpegはrtmp:// ip:portでリッスンし、いくつかのストリームサービス(youtube、Twitch ...など)に出力します。問題は、OBSストリーミングを停止するときです(これをローカルPCで使用)ffmpegサーバーでダウンしていて、次にストリームするときに手動で実行する必要があります。 ffmpegドックにオプションが見つからないため、入力ソースがダウンしてもffmpegはリスニングを継続します。多分私はドキュメントに何かが足りないか、ffmpegを再起動するスクリプトを作成する時がきましたか?

私はこのコマンドをffmpegに使用しています:

ffmpeg -re -listen 1 -i rtmp://i.p:1234 -c:v libx264 -preset medium -maxrate 3500k -bufsize 6000k -pix_fmt yuv420p -g 50 -c:a aac -b:a 160k -ac 2 -ar 44100 -f flv rtmp://live-ams.Twitch.tv/app/key
3
Shadowraze

Linuxで作業する場合、systemdサービスを作成できます。

[Unit]
Description=ffmpeg listening and forward stream
After=syslog.target network.target

[Service]
PIDFile=/tmp/ffstreamer.pid
ExecStart= /usr/local/bin/ffmpeg -re -listen 1 -i rtmp://i.p:1234 -c:v libx264 -preset medium -maxrate 3500k -bufsize 6000k -pix_fmt yuv420p -g 50 -c:a aac -b:a 160k -ac 2 -ar 44100 -f flv rtmp://live-ams.Twitch.tv/app/key

ExecStop=/bin/kill -s QUIT $MAINPID
Restart=always
User=www-data

[Install]
WantedBy=multi-user.target

入力が失敗すると、プロセスが再び開始されます。

3
jb_alvarado