Reduzir tamanho:¶
ffmpeg -i 20190224_181106.mp4 -vcodec libx264 -fs 20M -crf 20 -s 600X340 out.mp4
para o exemplo acima, o tamanho máximo do vídeo será 20 MB e terá um corte para a proporção 600×340 pixels
Girar:¶
ffmpeg -i in.mov -vf "transpose=1" out.mov
Para o parâmetro transpose
dá pra usar:
0 = girar 90 graus no sentido horário e espelhamento horizontal (padrão)
1 = 90 graus horário apenas
2 = 90 graus antihorário
3 = 90 graus horário com espelhamento vertical
Dá pra usar -vf "transpose=2,transpose=2"
para girar 180 graus.
Cortar¶
ffmpeg -ss 00:01:00 -i input.mp4 -to 00:02:00 -c copy output.mp4
Juntar vídeo com áudio¶
ffmpeg -y -loglevel ‘repeat+info’ -i ‘file:ARQUIVO_DE_VIDEO.mp4’ -i ‘file:ARQUIVO_DE_AUDIO.ogg’ -c copy -map ‘0:v:0’ -map ‘1:a:0’ ’file:ARQUIVO_DE_DESTINO.mkv
Onde:
-y
= “Copia por cima” se já houver um arquivo com o nome ARQUIVO_DE_DESTINO.mkv no diretório de origem. Eu uso isso porque por vezes faço vários testes, então evita de ter que ficar apagando ou recebendo mensagem de “deseja sobrescrever?”
-loglevel ‘repeat+info’
= garante que o log de erros vai ser o mais completo possível. É útil no caso de ter algum problema e precisar pedir ajuda, e uma vez ou outra esses logs já me ajudaram a entender e resolver a situação sozinho
-i
= O arquivo de entrada, de origem – esse “i” é de “input”
-c copy
= especifica que é para copiar a entrada para a saída, ou seja, não é para substituir os arquivos originais
-map
= Basicamente ela está dizendo para pegar todo o stream (o identificador “0”) do vídeo (“:v:”) e jogar em todo (“0”) o stream da saída, assim como pegar o primeiro stream (“1”) do arquivo de áudio (“:a:”) e jogar no stream de áudio (“0”) do arquivo de saída
Converter legenda VTT em SRT:¶
ffmpeg -i legenda.vtt legenda.srt
O FFMPEG é um programa fantástico para lidar com vídeo, muito legal você estar compilando algumas coisas sobre ele aqui. Se eu soubesse programar gostaria de fazer um editor simples baseado no FFMPEG, inicialmente me bastaria que ele cortasse e juntasse, se possível depois iria inserindo uma ou outra funcionalidade. Talvez trabalhar em cima do VSE do Blender seria uma boa, o único grande problema do VSE, pra mim, é que ele não tem precisão de frame, então a cada ação eu preciso esvaziar e atualizar o buffer senão os cortes saem todos errados… Tentando contribuir um pouco com a sua compilação, um comando que eu uso muito no FFMPEG é juntar um arquivo de vídeo (sem áudio) com um arquivo de áudio. A sintaxe é essa aqui: Os parâmetros são os seguintes:
Espero que tenha ajudado. Eu tenho mais algumas coisas que já usei do FFMPEG que foram úteis em algum momento, mas estão dentro de algum script que já não uso há tempos, vou ver se acho isso. |
|
que massa, Marcus. Nunca precisei juntar vídeo e áudio, mas é bom ter o comando na mão! |
|
Tive que fazer algumas conversões hoje, aí lembrei dessa página aqui e queria continuar a contribui, se não for um incômodo e na esperança de ajudar. A wiki do site do ffmpeg é bem interessante e uma boa fonte de consulta em caso de necessidade. Os argumentos
|
|
Acabei de esbarrar com isso github.com/mifi/lossless-cut, um editor que é basicamente uma interface gráfica para o FFMPEG, bem na pegada do que eu tinha vontade de fazer. Ainda não testei, tenho que baixar o código, compilar e tal, coisas que não vai dar pra fazer ao menos nos próximos dias, mas lembrei daqui e quis trazer. Parece que também não tem uma precisão de frame muito boa (github.com/mifi/lossless-cut/issues/330), mas se eu entendi mais ou menos o problema, exportando para um codec intraframe (como o ProRes) deve resolver. |
|