FFMPEG - Converta um vídeo em timelapse

FFMPEG - Converta um vídeo em timelapse

Estou usando o ffmpeg no flash builder (Action script 3) para converter um vídeo em um lapso de tempo do vídeo. Eu descobri como usar setpts para fazer isso, mas o arquivo de saída resultante tem o mesmo comprimento que a entrada (com apenas o último quadro exibido após o lapso de tempo), quero que a duração seja alterada com base nas configurações passadas para ffmpeg.

Estou tentando o seguinte através da linha de comando primeiro:

ffmpeg -i input.mp4 -filter:v "setpts=0.5*PTS" output.mp4

Qualquer ajuda seria muito apreciada!

Responder1

Problema resolvido. Eu não estava removendo o áudio, então provavelmente ele estava reproduzindo o arquivo de áudio quase vazio durante todo o vídeo.

ffmpeg -i input.mp4 -filter:v "setpts=0.5*PTS" -an output.mp4

-an remove o áudio do vídeo.

Responder2

Mais alguns detalhes aqui sobre como acelerar o áudio. Você pode fazer até 2x, mas pode enganá-lo para acelerar ainda mais (fonte):

Acelerando/desacelerando o áudio

Você pode acelerar ou desaceleraráudiocom o filtro de áudio atempo. Para dobrar a velocidade do áudio:

ffmpeg -i input.mkv -filter:a "atempo=2.0" -vn output.mkv

O filtro atempo está limitado a usar valores entre 0,5 e 2,0 (para que possa desacelerá-lo para não menos que metade da velocidade original e acelerar para não mais que o dobro da entrada). Se necessário, você pode contornar essa limitação agrupando vários filtros de atempo. O seguinte com o quádruplo da velocidade de áudio:

ffmpeg -i input.mkv -filter:a "atempo=2.0,atempo=2.0" -vn output.mkv

Usando um filtro gráfico complexo, você pode acelerar vídeo e áudio ao mesmo tempo:

ffmpeg -i input.mkv -filter_complex "[0:v]setpts=0.5*PTS[v];[0:a]atempo=2.0[a]" -map "[v]" -map "[a]" output.mkv

informação relacionada