Ffmpeg. Truques e truques

Introdução

FFmpeg é um processador multimídia, um conjunto de bibliotecas que permitem gravar, processar e converter materiais de vídeo e / ou áudio em vários formatos. Com esta ferramenta, você pode fazer edição de vídeo de quase qualquer complexidade. Ele é usado por muitos jogadores, conversores, editores e bibliotecas de visão computacional. Neste artigo, compartilharei alguns dos truques e truques do FFmpeg que costumo usar em meu trabalho.





Cortar vídeo por tempo

Freqüentemente, você precisa cortar um pequeno fragmento de n a m segundos de um vídeo . Para fazer isso, você precisa especificar o segundo com o qual cortar e a duração.





ffmpeg -i i.mp4 -ss 00:01:00 -t 00:02:00 -c copy o.mp4
      
      



O parâmetro -ss



indica o ponto de partida e -t



a duração.





Nota importante! Se a duração do vídeo for de 5 minutos, indicaremos o ponto de partida às 00:04:00, e a duração às 00:02:00, a duração do vídeo final será de 1 minuto.





Aqui e mais adiante no texto do artigo, i.mp4



está o caminho para o arquivo de entrada e o.mp4



- para a saída.





Criar vídeo a partir de fotos

Suponha que temos uma câmera de vigilância que tira uma foto a cada minuto durante o dia, e queremos obter um vídeo contínuo.





, .jpg , 10 FPS, H.264 .





ffmpeg -framerate 10 -pattern_type glob -i '*.jpg' -c:v libx264 o.mp4
      
      



— .





ffmpeg -i o.mp4 -r 1 -q:v 2 -f image2 img-3%d.jpeg
      
      



, list.txt , , :





file 'video1.mp4'
file 'video2.mp4'
file 'videoN.mp4'
      
      



:





ffmpeg -f concat -i list.txt -c copy o.mp4
      
      



, , , :





for f in ./*.mp4; do echo "file '$f'" >> list.txt; done
      
      



:





printf "file '%s'\n" ./*.mp4> list.txt
      
      



:





ffmpeg -i i.mp4 -c:v copy -an o.mp4
      
      



:





ffmpeg -i i.mp4 -vn 0.wav
      
      



, , 16:9 3:4, .





ffmpeg -i i.mp4 -filter:v "crop=w:h:x:y" o.mp4
      
      



crop , , .





(stack video)

, , , :





  • .





  • .





:





ffmpeg -i i0.mp4 -i i1.mp4 -filter_complex hstack=inputs=2 o.mp4
      
      



:





ffmpeg -i i0.mp4 -i i1.mp4 -filter_complex vstack=inputs=2 o.mp4
      
      



2x2:





ffmpeg \
-i i0.mp4 -i i1.mp4 -i i2.mp4 -i i3.mp4 \
-filter_complex \
"[0:v][1:v]hstack=inputs=2[top]; \
[2:v][3:v]hstack=inputs=2[bottom]; \
[top][bottom]vstack=inputs=2[v]" \
-map "[v]" \
o.mp4
      
      



3x2:





ffmpeg \
-i i0.mp4 -i i1.mp4 \
-i i2.mp4 -i i3.mp4 \
-i i4.mp4 -i i5.mp4 \
-filter_complex \
"[0:v][1:v][2:v]hstack=inputs=3[top];\
[3:v][4:v][5:v]hstack=inputs=3[bottom];\
[top][bottom]vstack=inputs=2[v]" \
-map "[v]" \
o.mp4
      
      



ffmpeg -i i.mp4 -vf "transpose=0" o.mp4
      
      



transpose :





  • 0 - 90 . .





  • 1 - 90 .





  • 2 - Gire 90 graus no sentido anti-horário.





  • 3 - Gire 90 graus no sentido horário e gire verticalmente.





Posfácio

FFmpeg é uma ferramenta de processamento de vídeo muito poderosa. Com sua ajuda, tendo uma folha de dicas sobre seus recursos, você pode economizar muito tempo - é muito mais rápido inserir alguns comandos para processar um vídeo do que iniciar um editor.





Se você conhece mais truques e truques úteis - sinta-se à vontade para compartilhá-los nos comentários. Obrigado!








All Articles