Aplicando vários filtros e entradas com o FFmpeg

0

Eu tenho dois vídeos: a.mp4 e b.mp4. Eu quero escalar a.mp4, aparar os primeiros 10 segundos e os últimos 10 segundos de b.mp4, em seguida, adicionar legenda a b.mp4, em seguida, mesclar dois vídeos (a.mp4 após a escala e b.mp4 após o corte / hardsub) em um. Este é o meu script:

ffmpeg -i a.mp4 -i b.mp4 -filter_complex '[0:v]scale=1280:720[in1];[1:v]trim=0:10,trim=110:120,ass=subtitle.ass[in2]; [in1][in2] concat=n=2:v=1:a=1 [out]' -map [out] -c:v libx264 output.mp4

(120 é o comprimento em segundos de b.mp4)

mas deu-me um erro:

Media type mismatch between the 'Parsed_ass_2' filter output pad 0 (video) and the 'Parsed_concat_3' filter input pad 1 (audio) [AVFilterGraph @ 0x406c3c0] Cannot create the link ass:0 -> concat:1

    
por Luvias 10.08.2017 / 13:59

1 resposta

0

Use

ffmpeg -i a.mp4 -i b.mp4
   -filter_complex '[0:v]scale=1280:720,setsar=1[in1];
                    [1:v]ass=subtitle.ass,trim=10:110,setpts=PTS-STARTPTS,setsar=1[in2];
                    [1:a]atrim=10:110,asetpts=PTS-STARTPTS[1a];
                    [in1][0:a][in2][1a] concat=n=2:v=1:a=1 [v] [a]'
   -map [v] -map [a] -c:v libx264 output.mp4

Como você também concorre com áudio, o filtro espera um fluxo de áudio emparelhado com cada fluxo de vídeo.

    
por 10.08.2017 / 14:32

Tags