Em um Ubuntu 10.04, estou tentando codificar um vídeo bruto (formato YUV) para um vídeo codificado em H.264 usando os comandos abaixo ffmpeg:
ffmpeg -i input.mp4 output.h264
mas eu recebo um erro dizendo
Codec não suportado para o fluxo de saída # 0.0
Então, quando eu tento esta opção:
ffmpeg -i input.mp4 -formats h264 output.h264
ainda não codifica.
Agora eu entendi que o ffmpeg usa libx264 para codificar no formato H.264. Agora eu tenho o pacote x264 - fast H.264 encoder instalado neste Ubuntu.
Minhas perguntas:
- Existe alguma relação entre esta libx264 que o ffmpeg precisa e o programa x264?
- Como instalo a libx264 e faço com que o ffmpeg use isso para permitir que eu codifique um vídeo no formato H.264?
Respostas:
Primeiro de tudo, os comandos que você usa parecem sintaticamente incorretos. Para que o ffmpeg use x264, é necessário fornecer o
-c:v libx264
argumentoAgora, se você possui um arquivo YUV bruto, precisa informar ao ffmpeg qual formato de pixel, qual tamanho etc. é usado:
Altere-os de acordo com as especificações do seu arquivo YUV. Veja
ffmpeg -pix_fmts
uma lista dos formatos de pixel suportados. fourcc.org também é um bom recurso nisso.Se você deseja apenas o fluxo de bits H.264 bruto em um
.264
arquivo:fonte
-vcodec
informa qual codec usar.man ffmpeg
ajudará você a aprender mais.fonte