Crie um clipe a partir de um vídeo com o FFMPEG

0

Eu quero fazer um clipe de um vídeo com o FFmpeg com vídeo de 2 segundos a cada m minutos, onde

m = video_length / 5

Por exemplo, tenho um vídeo com 10 minutos de duração. O clipe de vídeo terá 10 segundos de duração total (5 segmentos por 2 segundos) e será composto desses intervalos de timestamp de vídeo:

00:00 - 00:02
02:00 - 02:02
04:00 - 04:02
06:00 - 06:02
08:00 - 08:02

Isso produzirá uma espécie de trailer do vídeo.

Eu sei que posso conseguir isso com o segmento, mas não consigo descobrir todo o processo.

    
por kollo 16.03.2017 / 23:13

2 respostas

4

Você pode fazer isso usando o filtro de seleção, de uma só vez

ffmpeg -i in.mp4
       -vf select='lt(mod(t,120),2)',setpts=N/FRAME_RATE/TB
       -af aselect='lt(mod(t,120),2)',asetpts=N/SR/TB
       out.mp4
    
por 17.03.2017 / 06:01
0

Eu sei de um método que você pode usar. É um pouco confuso, no entanto.

Extraia os clipes com um comando como este:

ffmpeg -i -ss <time to start> -t <duration> <output clip filename>

O que você faz é extrair os clipes com este formato, em que -ss é o início do clipe e -t é a duração do clipe. Depois de extrair esses dados, você poderá concatená-los com:

ffmpeg -i concat:"clip_file1|clip_file2|clip_file3" -c copy <your output file>

Por favor, note que esta forma de concatenação não funciona com todos os formatos de vídeo, e você pode ter que lançar alguns outros argumentos, como -bsf:a aac_adtstoasc para arquivos MP4. Mas isso deve te dar o vídeo que você deseja.

    
por 17.03.2017 / 00:42

Tags