ffmpeg 继续监听端口

Sha*_*aze 4 ffmpeg streaming rtmp

我正在尝试配置重播服务器,ffmpeg 侦听 rtmp://ip:port 并输出到少数流服务(youtube、twitch 等),问题是当我停止 OBS 流媒体(在本地 PC 上使用它)时 ffmpeg在服务器出现故障时,我需要在下次流式传输时手动运行它。在 ffmpeg Dock 中找不到选项,即使输入源关闭,这也会使 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
Run Code Online (Sandbox Code Playgroud)

小智 5

当你使用 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
Run Code Online (Sandbox Code Playgroud)

当输入失败时,它会再次启动该过程。