Atualmente estou usando o FFMPEG para transmitir em um servidor virtual CENTOS. Eu uso o seguinte script para transmitir ao vivo para o 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"
Anteriormente, usei o mesmo script de stream FFMPEG para transmitir em um servidor CENTOS dedicado por mais de um ano, sem problemas técnicos.
Tentei usar o mesmo script FFMPEG no servidor virtualizado. Quando uso a velocidade de codificação de 1700k, recebo o seguinte erro na saída:
[flv @ 0x56da380] Failed to update header with correct duration.
[flv @ 0x56da380] Failed to update header with correct filesize.
O ingeridor do YouTube também reclama que o fluxo de entrada (vindo do servidor CENTOS) é lento e que o fluxo será armazenado em buffer.
Verifiquei a largura de banda de saída disponível à qual o servidor virtual CENTOS tem acesso.
- Baixar: 57,12 Mbit/s
- Carregar: 96,57 Mbit/s
Sou forçado a usar uma velocidade de codificação de vídeo e tamanho de saída muito mais baixos
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"
Não consigo entender qual poderia ser o problema, já que tenho acesso a largura de banda necessária mais do que suficiente.