Eu tenho um vídeo longo com cenas diferentes. Quero extrair e concatenar 2 cenas do vídeo (que não iniciam em um quadro I) usando o ffmpeg 2.1.4.
Para argumentar, digamos que eu queira 5 segundos entre 01:00 e 02:00.
Eu posso fazer isso:
ffmpeg -ss 01:00 -i in.mkv -ss 02:00 -i in.mkv -filter_complex "
[0:v]select='lt(t,5)'[v0];
[0:a]aselect='lt(t,5)'[a0];
[v0][a0][1:v][1:a]concat=n=2:v=1:a=1
" -c:a libvorbis -t 10 out.mkv
Isso me dá o filme que eu quero, mas selecionar na verdade força o ffmpeg a decodificar o resto do filme. Então, como eu digo para truncar o primeiro filme em vez de decodificá-lo?
Eu preferiria fazer isso com um filtro complexo ffmpeg, se possível. Sei que posso usar apenas -t
para recodificar filmes separados primeiro, mas a etapa extra de codificação é muito lenta no meu caso e também perde uma boa quantidade de qualidade para este vídeo.
Não consigo encontrar um filtro que trunque o comprimento de um vapor. Existem nós de filtro que correspondem aos parâmetros -t
ou -ss
?
-filter_complex
funciona, mas osconcat
arquivos não - ou seja, o primeiro vídeo parece bom, mas a qualidade do segundo é horrível. Observe que copiei esses comandos exatamente para ambos (exceto para o arquivo de entrada).Isso deve funcionar mais rápido ...
Não há necessidade de especificar -t na saída. Não há necessidade de dividir o áudio e o vídeo antes da concat.
fonte