Desativar eventos de movimento do arquivo

2

Estou trabalhando em um projeto de lapso de tempo atualmente tenho alguns vídeos longos onde há partes onde nada está acontecendo e eu estou querendo saber se há um programa que pode remover todas essas partes ou retirar todas as partes do movimento e colocar em um único arquivo, em vez de eu passar por horas de reprodução e cortá-los manualmente.

Eu li vlc pode detectar movimento na reprodução, mas não sei como fazer uso disso. Isso pode ser uma solução para o windows ou linux.

    
por BluGeni 29.09.2014 / 18:50

1 resposta

2

Eu tenho feito algumas experiências com ffmpeg e o filtro mpdecimate .

A saída é um vídeo com apenas as partes "ativas" e eu usei alguns truques com o FPS.

A saída será de 25fps para o player, mas será de 5fps no reallity (ajuste o número 5 nos filtros setpts e first fps para ajustar a velocidade. Se 25fps for bom para você (meu vídeo de teste mostrou alterações rápido demais para mim), elimine o último filtro e use -map [c] .

Se você precisar ajustar o limite, veja aqui : (fe: mpdecimate=hi=64*12:lo=64*8:frac=0.33 )

mpdecimate derrubaria os quadros, mas o comprimento é mantido. Com setpts , você o força a calcular uma duração fixa para cada quadro e o primeiro fps faz com que ele corresponda à velocidade "atual" definida por setpts . O último fps torna "jogável" (insere quadros duplicados para preencher o vídeo de 25 fps), (o vídeo de 5 fps no meu VLC não funciona muito bem, congelando de vez em quando)

ffmpeg -y -i input.mp4 -filter_complex "[0:v] mpdecimate [a] ; [a] setpts='N/(5*TB)' [b] ; [b] fps=5 [c] ; [c] fps=25 [d]" -map "[d]" -c:v libx264 ouput.mp4
    
por 29.09.2014 / 21:48