o contêiner mp4 requer a capacidade de procurar dentro do arquivo. Um tubo é um fluxo e impossível de procurar dentro de. Tente usar um contêiner de streaming como ts ou flv.
Estou tentando usar o FFMPEG para transcodificar arquivos avi para mp4 e enviar os dados para stdout usando o seguinte comando (tecnicamente através do NodeJS, mas recebo o mesmo erro ao executar o seguinte comando diretamente na linha de comando):
ffmpeg -i myavi.avi -vcodec libx264 -acodec libvo_aacenc -f mp4 pipe:1
Este erro ocorrerá:
Could not write header for output file #0 (incorrect codec parameters ?): Error number -22 occurred.
Quando executo este próximo comando, tudo funciona conforme o esperado:
ffmpeg -i myavi.avi -vcodec libx264 -acodec libvo_aacenc -f mp4 newmp4.mp4
Observe que estou usando (ou tentando) o FFMPEG no Windows - Alguma idéia do que está acontecendo aqui?
Edit: Uma última nota, a versão do FFMPEG que estou usando é N-63439-g96470ca, construída em 25 de maio de 2014 (a versão mais recente do FFMPEG disponível para os arquivos estáticos do Windows em link ).
Tags command-line windows video ffmpeg stdout