Eu estou tentando concatenar vários arquivos de mídia. Cada arquivo contém vídeo e áudio. Eu preciso adicionar quadros silenciosos de tela preta após cada mediafile (exceto o último).
Quero dizer file + gap + file + gap + file
.
eu encontrei resposta muito útil aqui, mas funciona apenas para áudio.
Então mudei de comando. Funciona também, mas sem som. Aqui está o comando:
ffmpeg -i video-1489396334138.webm -i video-1-1489396340932.webm -i video-1489396346168.webm -f lavfi -i "color=c=black:s=640x480:r=25" \
-filter_complex "
[3]trim=duration=3.932[g0];[3]trim=duration=3.168[g1];
[0][g0][1][g1][2]concat=n=5:v=1:a=0"
output.webm
Eu sei que é por causa de a=0
. Mas quando eu mudo para a=1
, o ffmpeg lança um erro:
[Parsed_trim_0 @ 0x4448080] Incompatibilidade de tipo de mídia entre o bloco de saída do filtro 'Parsed_trim_0' 0 (vídeo) e o bloco de entrada do filtro 'Parsed_concat_2' 1 (áudio)
[AVFilterGraph @ 0x4447600] Não é possível criar o trim do link: 0 - & gt; concat: 1
Provavelmente é porque o nosso lavfi
entrada não contém nenhum áudio. Então, a questão é, como consertar isso?
Como concatenar vídeos com um intervalo de silêncio de 4 segundos entre cada um sobreposto por uma imagem
pic.jpg
:Voila, todos os seus arquivos de vídeo separados por algum silêncio. Se isso não funcionar para você, verifique se channel_layout, sample_rate, frame rate e outros atributos são idênticos para todos os vídeos, incluindo o silence.mp4. Audio e Video codec hell é um incêndio de aterro de ofuscação e abuso de pessoas tentando eliminar concorrentes do espaço de vídeo.
fonte