Existe alguma maneira de transcodificar MPEG-PS com timecodes incorretos para MPEG-4 AVC com ffmpeg?

0

Eu tenho alguns arquivos de vídeo no formato MPEG-PS\MPEG-4 Visual\MPEG Audio , esses arquivos têm códigos de tempo corrompidos, o que resulta na incapacidade da maioria dos jogadores para jogá-lo corretamente. Quando eu estou tentando abri-lo com o VLC, ele reproduz o vídeo bem, mas o indicador de duração total do arquivo está mudando constantemente, indo e voltando.

Eu tentei simplesmente converter os arquivos para MPEG-4\AVC\AAC com este comando:

ffmpeg.exe -nostdin -y -loglevel info  -i "D:\input.mp4"  -f mp4  "D:\output.mp4"

Mas isso resultou em um arquivo com duração incorreta. A reprodução de fluxo de vídeo é boa, mas a duração geral do arquivo resultante é de algumas horas a mais do que deveria, o que significa que há algumas horas de quadros negros e silêncio no final.

Existe alguma maneira de converter MPEG-PS\MPEG-4 Visual\MPEG Audio para MPEG-4\AVC\AAC corrigindo ou criando uma nova linha do tempo?

    
por user3223738 27.05.2016 / 13:41

1 resposta

0

Você tem duas possibilidades:

  • use o parâmetro -t para parar no ponto final desejado
  • Use uma entrada concat : um clipe correto muito curto (por exemplo, 1 quadro preto) e, em seguida, o clipe com defeito. Com uma entrada concat , o ffmpeg usará os carimbos de data e hora da primeira entrada e, em seguida, adaptará os seguintes carimbos de data e hora a fim de serem anexados a ela sem problemas.

Você também pode querer usar o parâmetro -c copy para evitar a reencodação, se não for necessário.

    
por 27.05.2016 / 14:00