Streaming

ffmpeg 繼續監聽埠

  • May 17, 2017

我正在嘗試配置 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

當輸入失敗時,它會再次啟動該過程。

引用自:https://serverfault.com/questions/833198