Você não está copiando o fluxo de vídeo.
Forneça as opções acodec
e vcodec
após a opção i
. Basta pensar em como você os processaria. Primeiro, leia o arquivo, decida como codificar e, em seguida, imprima. Se você não fizer isso, as opções serão analisadas de forma diferente 1 , o que explicaria a diferença na entrada e saída de acordo com o seu log:
Input: Stream #0.0(und): Video: h264, yuv420p, 720x576 [PAR 64:45 DAR 16:9]
Output: Stream #0.0(und): Video: libx264, yuv420p, 720x576 [PAR 89:44 DAR 445:176]
Observe a diferença no Pixel Aspect Ratio (PAR)? Atualmente, você está tentando decodificar o vídeo com o codec copy
, que obviamente não existe. Colocação de opções no FFmpeg realmente importa às vezes. 2
Isto também é o que o manual diz:
Select an encoder (when used before an output file) or a decoder (when used before an input file) for one or more streams
Então, para resumir - metadados deixados para legibilidade:
ffmpeg -ss 01:00:00 -i input_file_h264.mp4 -vcodec copy -acodec copy -t 00:06:00 output_file.mp4
1 - Com as versões mais recentes do FFmpeg, o comando teria falhado porque um decodificador copy
não existe.
2 - Além disso, coloque a opção t
após o processo de codificação e deixe ss
no início. Colocar ss
no início garante que o arquivo seja lido até a hora e, em seguida, comece a codificação. Se você colocasse ss
após i
, isso codificaria o arquivo desde o início, o que poderia levar um longo tempo.