ffmpeg продолжить прослушивать порт
Я пытаюсь настроить сервер restream, прослушивание 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
2 ответа
Когда вы работаете с Linux, вы можете создавать системные службы:
[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
Когда ввод не удается, он начинает процесс снова.
вы также можете использовать udp вместо TCP
без установления соединения, это не завершает процесс