Estou usando ffmpeg e ffplay para transmitir um vídeo H.264 bruto entre dois computadores. Esta é a aparência da linha de comando de transmissão:
ffmpeg -i input.h264 -f mpegts udp:10.0.2.101:1234
E este é o lado receptor:
ffplay -f h264 -f mpegts udp://127.0.0.1:1234
O problema é que a reprodução no lado receptor mostra uma qualidade muito pior do que a que vejo ao reproduzir o arquivo de origem no lado remetente. A rede é na verdade uma rede simulada no meu computador (duas máquinas virtuais), então não há perda de pacotes nem nada.
O que eu fiz errado?
Responder1
Você está recodificando o fluxo de vídeo. Observe que se você não especificar um codec de vídeo, o ffmpeg escolherá um para você – no seu caso, MPEG-2 com suas configurações padrão, que de fato parecerão muito ruins.
Se você planeja copiar o bitstream, adicione a -c:v copy
opção ao seu comando de envio.