Acelerar o vídeo x1.5, mas manter todos os quadros

1

Então, eu estou tentando acelerar todos os meus episódios de TV (porque alguns deles são muito lentos). A fonte é 30fps. E se já tentou fazer isso com o seguinte comando: (Estou fazendo x1.6 porque é mais fácil fazer o valor dos setpts (caso contrário seria 0.66666666666 ...)

ffmpeg -i VideoOriginal.mkv -r 48 -filter:v "setpts=0.625*PTS" VideoSpeedup.mkv

Mas o tamanho do arquivo aqui é bem menor (talvez eu também deva usar uma predefinição para a qualidade?) De qualquer jeito. O arquivo tem 40 minutos de duração e praticamente é quebrado depois de 10 minutos (o VLC começa a interpretar timestamps e o player é muito F * cked).

Além disso, o áudio não é acelerado com esse método.

Alguma dica de como melhorar isso?

(Razão pela qual eu quero 'manter todos os frames'. É porque desde que eu vou x1.6 eu posso fazer 48fps significando que eu realmente não perco ou tenho que gerar novos frames.)

EDIT: acabou de perceber que o fps do meu arquivo original é 23.97612 .... acho que isso torna as coisas mais complicadas ...?

    
por Thibault Molleman 05.09.2017 / 09:20

2 respostas

4

Ao alterar a velocidade do vídeo, você normalmente não precisa definir -r , mas apenas deixe que o ffmpeg altere os timestamps dos quadros. Isso pode levar a quedas de quadros, o que pode ser evitado definindo a taxa de quadros apropriada como você tentou, mas você precisa defini-lo após a especificação de entrada.

Para acelerar o vídeo e o áudio:

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

O andamento do áudio é o inverso do tempo que modifica os registros de data e hora do quadro. E com a mudança de framerate:

ffmpeg -i input.mkv -filter_complex "[0:v]setpts=0.625*PTS[v];[0:a]atempo=1.6[a]" -r 48 -map "[v]" -map "[a]" output.mkv

But the filesize here is WAY lower

Isso é porque tudo é recodificado. Geralmente, libx264 é usado para codificação de vídeo. A qualidade padrão deve ser boa, mas você pode alterá-la usando a opção -crf , por exemplo. Consulte o guia de codificação H.264 para saber mais.

Você também pode dizer ao VLC para acelerar a reprodução a partir do menu Reproduzir . Isso evita a conversão desnecessária e a codificação da mudança de velocidade.

    
por 05.09.2017 / 09:58
2

(Porque você mencionou o VLC em sua pergunta ...)

No VLC, acesse o menu Playback , selecione Speed/Faster ou Speed/Faster (fine) .

Edit: e @slhck concorda, então eu devo estar certo: -)

    
por 05.09.2017 / 09:54