Eu estava tentando remover alguns segundos do início de alguns arquivos mp4 sem recodificar. No início, usei a busca de saída, ou seja
E:\>ffmpeg -i input.mp4 -ss 00:00:05 -t 00:01:00 -c copy output.mp4
No entanto, o quadro foi congelado por alguns segundos no início do arquivo de saída (acho que estava relacionado à busca do quadro-chave, então tentei adicionar o sinalizador -copyinkf, mas não ajudou), então tentei usar o busca de entrada, ou seja
E:\>ffmpeg -ss 00:00:05 -i input.mp4 -t 00:01:00 -c copy output.mp4
O arquivo de saída resultante foi emocionante, pois foi reproduzido de maneira suave e precisa no início, exceto que as informações de duração do arquivo de saída eram diferentes do valor real. O comando acima deveria resultar em um arquivo de vídeo com duração 00:01:00. No entanto, recebi um arquivo com duração de 00:01:05 que contém o vídeo longo de 00:01:00. Eu também tentei com um valor de busca maior e deu certo.
E:\>ffmpeg -ss 00:00:10 -i input.mp4 -t 00:01:00 -c copy output10.mp4
E:\>ffmpeg -ss 00:00:15 -i input.mp4 -t 00:01:00 -c copy output15.mp4
Esta imagem indica a duração dos arquivos de saída
Não sei por que há diferença entre eles e espero que alguém possa me ajudar com isso. Eu apreciarei sua ajuda.
Notas:
- versão ffmpeg N-93439-gb073fb9eea, tentei algumas versões mais antigas e obtive os mesmos resultados.
- Os codecs de vídeo e áudio do arquivo de entrada são avc e aac respectivamente.