В настоящее время я использую FFMPEG для потоковой передачи на виртуальном сервере CENTOS. Я использую следующий скрипт для потоковой передачи на YouTube.
ffmpeg -re -i program.01.mp4 -flags +global_header -acodec libmp3lame -ac 1 -ar 44100 -ab 192k -s 1280x720 -vcodec libx264 -pix_fmt yuv420p -g 60 -vb 1700k -profile:v baseline -preset:v faster -r 30 -f flv "rtmp://a.rtmp.youtube.com/live2/xxxxx"
Ранее я использовал один и тот же сценарий потока FFMPEG для потоковой передачи на выделенном сервере CENTOS более года без технических проблем.
Я пытался использовать тот же сценарий FFMPEG на виртуализированном сервере. Когда я использую скорость кодирования 1700k - я получаю следующую ошибку в выводе:
[flv @ 0x56da380] Failed to update header with correct duration.
[flv @ 0x56da380] Failed to update header with correct filesize.
Инвестор YouTube также жалуется, что входной поток (поступающий с сервера CENTOS) медленный и что поток будет буферизироваться.
Я проверил доступную пропускную способность, к которой имеет доступ виртуальный сервер CENTOS.
- Загрузить: 57.12 Мбит / с
- Загрузка: 96,57 Мбит / с
Я вынужден использовать гораздо более низкую скорость кодирования видео и размер вывода
ffmpeg -re -i program.01.mp4 -f-flags +global_header -acodec libmp3lame -ac 1 -ar 44100 -ab 128k -s 640x360 -vcodec libx264 -pix_fmt yuv420p -g 60 -vb 425k -profile:v baseline -preset:v faster -r 30 -f flv "rtmp://a.rtmp.youtube.com/live2/xxxxx"
Я не понимаю, в чем может быть проблема, поскольку у меня есть доступ к более чем достаточной требуемой пропускной способности.