Seção dividida do vídeo com ffmpeg

2

Estou tentando fazer isso funcionar e estou muito perto, mas algo ainda não está certo.

Eu tenho um clipe de 14 segundos que estou tentando remover de um vídeo mp4 mais longo. Eu peguei o vídeo para cortar no lugar certo com este comando:

ffmpeg -ss 00:05:13.0 -i ~/videos/trim_me.mp4 -vcodec h264 -acodec copy -t 00:00:14.0 ~/videos/trimmed.mp4

Se eu não especificasse -vcodec , estava começando de um "I-Frame" (eu acho) e não era o lugar certo. O áudio também está começando nesse ponto, então eu tentei definir -acodec da mesma maneira:

ffmpeg -ss 00:05:13.0 -i ~/videos/trim_me.mp4 -vcodec h264 -acodec aac -ac 2 -ab 225k -ar 48000 -strict -2 -t 00:00:14.0 ~/videos/trimmed.mp4

O que realmente não ajuda muito. A configuração de -async 1 faz com que demore mais e, em seguida, o áudio corresponde, mas não até 4 segundos no vídeo. : /

Idealmente, não gostaria de instalar mais nada e ter uma solução de linha de comando para isso.

    
por Rob 07.10.2012 / 05:11

1 resposta

1

h264 deve funcionar como um codec, mas geralmente é padronizado como libx264 . vcodec idealmente deve ser substituído pelo% não-reprovadoc:v.

O comando de trabalho foi

ffmpeg -i ~/videos/trim_me.mp4 -c:v libx264 -c:a aac -ac 2 -b:a 255k -ar 48000 \
-async 1 -strict -2 -y \
-ss 00:05:13.0 -t 00:00:14.0 ~/videos/trimmed.mp4

Mover o sinalizador -ss como um sinalizador de saída garantirá que o vídeo completo seja transcodificado, mas a saída só começa no ponto especificado por -ss . Caso contrário, quando -ss é colocado na frente de -i , o FFmpeg procuraria apenas o ponto de partida, o que pode ser impreciso.

Corrigindo o sinal -vcodec e colocando -async 1 funcionando, mas somente se for feito em conjunto.

    
por 07.10.2012 / 18:15

Tags