Назад | Перейти на главную страницу

ffmpeg продолжить прослушивание порта

Я пытаюсь настроить сервер перезапуска, ffmpeg прослушивает rtmp: // ip: port и выводит на несколько потоковых служб (youtube, twitch ... и т. Д.) Проблема в том, что я прекращаю потоковую передачу OBS (используя это на локальном компьютере) 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 services:

[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

Когда ввод не удается, он снова запускает процесс.