Converter um video de 240fps para 30fps com ffmpeg

Primeiramente, porque fazer isso, e a minha resposta é que a maioria das ferramentas somente funcionam com 30fps, principalmente as ferramentas no meu Android (Xiaomi Redmi Note 8).

Então, tendo um vídeo gravado pelo próprio celular em 240fps Slow Motion, ao tentar fazer uma edição, por exemplo, utilizando o PowerDirect ou o Kinemaster, o vídeo no aplicativo provavelmente sera convertido para 30fps em velocidade normal do vídeo, ou seja, nada de slow motion pra você meu bem.

Utilizando a ferramenta ffmpeg, onde utiliza linha de comando (cmd ou powershell) para fazer conversões de videos para várias situações, ex converter gif para mp4, e no nosso caso converter os 240fps de 1 segundo para um video de 30fps de 8 segundos.

O comando para converter seria:

ffmpeg -i input.mp4 -vf setpts=8*PTS -r 30 -crf 18 output.mp4

"input.mp4" - nome do arquivo de origem para ser convertido
"output.mp4" - nome do arquivo de saída que será criado apos a conversão.
Obs: colocar aspas entre os nomes do arquivo caso queira inserir um caminho completo para a pasta de entrada e saída.

O valor "setpts=" esta em 8*PTS, sendo esse valor 8 pois o vídeo esta em 240fps e ira para 30fps (240/30 = 8).
Caso queira converter um vídeo de 120fps para 30fps é basta utilizar o valor de "setpts=" para 4*PTS (120/30 = 4).

Isso me ajudou, espero que ajude quem ler isso arquivo.

Um xero no Kasko. Bye.

Links:

ffmpeg

https://www.ffmpeg.org/

PowerDirect

https://play.google.com/store/apps/details?id=com.cyberlink.powerdirector.DRA140225_01

Kinemaster

https://play.google.com/store/apps/details?id=com.nexstreaming.app.kinemasterfree

Comentários