Streaming
ffmpeg 繼續監聽埠
我正在嘗試配置 restream 伺服器,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
當輸入失敗時,它會再次啟動該過程。