私はリストリームサーバーを構成しようとしています、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
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
入力が失敗すると、プロセスが再び開始されます。