2017-02-07 23 views
0

Я запускаю ffmpeg в среде Linux, где я объединять аудиопоток из потока Icecast и статического изображения, чтобы иметь возможность передавать его на Youtube.ffmpeg shutdown down, когда поток отключен

Время от времени поток Icecast становится очень тихим, иногда почти на минуту. Это должно произойти из-за характера контента. Но, когда поток становится слишком тихим, ffmpeg просто выключается без уведомления.

Это, как я начинаю FFmpeg:

ffmpeg -loop 1 -r 30 -s 1280x720 -i /var/www/html/files/youtube/image.png -i http://my-stream-to-icecast:8000/my-mount -c:v libx264 -preset fast -tune stillimage -crf 18 -c:a copy -shortest -pix_fmt yuv420p -f flv rtmp://a.rtmp.youtube.com/live2/my-youtube-key 

Любые идеи о том, как решить эту проблему? И/или как оптимизировать вышеуказанное?

Большое спасибо!

ответ

1

Извините, пожалуйста, проигнорируйте этот ответ. Он будет применяться, если поток будет отправлен обратно на сервер Icecast, а не на Youtube.

Это, скорее всего, связано с тайм-аутом источника Icecast. Если вы используете высокоэффективные кодеки, тогда тишина закодирует «ничего», и сервер icecast не получит никаких данных и отключит источник.

Вы можете подтвердить это, глядя на Icecast error.log

В зависимости от используемого кодека вы можете настроить минимальный битрейт (кодек затем вставляет фиктивные данные), или вы должны будете вводить низкий уровень шума в сторону звука. Один или два наименее значимых бита достаточно и не воспринимаются людьми, но будут держать кодировщик занятым и битрейтом.

+0

ffmpeg - это просто копирование аудио, так что аудиокодер не активируется. Мы не знаем, находится ли что-то, что кормит icecast, под контролем OP. – Mulvya

+0

Собственно игнорируйте мой ответ полностью. Поскольку цель не Icecast снова, а YouTube. Должно быть, это пропустило. – TBR

0

Вы можете попытаться смешать его с фиктивным потока:

ffmpeg -loop 1 -framerate 30 -i /var/www/html/files/youtube/image.png 
-reconnect_streamed 1 -reconnect_delay_max 120 -i http://my-stream-to-icecast:8000/my-mount 
-f lavfi -i anullsrc 
-filter_complex "[1]aresample=async=1[i];[i][2]amix=2:shortest,volume=2[a]" 
-map 0:v -map "[a]" 
-c:v libx264 -s hd720 -preset fast -tune stillimage -crf 18 -pix_fmt yuv420p 
-c:a aac -shortest 
-f flv rtmp://a.rtmp.youtube.com/live2/my-youtube-key 

Я не как Amix будет обрабатывать его, если подача Icecast умирает. Вы должны будете проверить.

+0

Спасибо. Я попробовал это, но получаю только это: Нераспознанная опция 'reconnect_streamed'. Ошибка разделения списка аргументов: Опция не найдена Я использую v. 2.6.9. Есть идеи? –

+0

Вам нужно 3.0 или новее. – Mulvya

+0

Это решило вышеупомянутую проблему, спасибо. Но мне все равно не удастся решить это: [http @ 0x96e9320] Поток заканчивается преждевременно в 0, должен быть 18446744073709551615 http: // my-stream-to-icecast: 8000/my-mount: ошибка ввода/вывода Любые дальнейшие мысли? –