Памятка по ffmpeg

Частичный перепост статьи с Хабра.

ffmpeg — это кроссплатформенная open-source библиотека для обработки видео- и аудиофайлов.

1. Получение информации о видеофайле

ffmpeg -i video.avi

или

ffprobe video.avi

Так же ffprobe поддерживает несколько форматов для вывода информации ini, json, xml

ffprobe -v 0 video.avi -print_format json -show_format ffprobe -v 0 video.avi -print_format xml -show_format ffprobe -v 0 video.avi -print_format ini -show_format

2. Превратить набор картинок в видео

ffmpeg -f image2 -i image%d.jpg video.mpg

Эта команда преобразует все картинки из текущей директории (названные image1.jpg, image2.jpg и т.д.) в видеофайл video.mpg
либо так:

ffmpeg -r 12 -y -i "image_%010d.png" output.mpg


здесь задаётся frame rate (12) для видео, формат «image_%010d.png» означает, что картинки будут искаться в виде image_0000000001.png, image_0000000002.png и тд, то есть, в формате printf)

3. Порезать видео на картинки

ffmpeg -i video.mpg image%d.jpg

Эта команда создаст файлы image1.jpg, image2.jpg и т.д., поддерживаются так же форматы PGM, PPM, PAM, PGMYUV, JPEG, GIF, PNG, TIFF, SGI.

Как вариант — вырезать один кадр из видео для создания, например, превью на сайте или в админке.
На последнем проекте использовал такую команду:

ffmpeg -ss 00:00:02 -i "file.flv" -f image2 -vframes 1  "file_out.jpg"

Вырезает первый кадр второй секунды из файла file.flv и сохранить её в файле file_out.jpg.

4. Конвертировать видео в формат iPod/iPhone

ffmpeg -i source_video.avi input -acodec aac -ab 128kb -vcodec mpeg4 -b 1200kb -mbd 2 -flags +4mv+trell -aic 2 -cmp 2 -subcmp 2 -s 320x180 -title X final_video.mp4

Пояснения:

  • Источник: source_video.avi
  • Аудио кодек: aac
  • Битрейт аудио: 128kb/s
  • Видео кодек: mpeg4
  • Битрейт видео: 1200kb/s
  • Размер видео: 320 на 180 пикселей
  • Полученное видео: final_video.mp4

5. Конвертировать видео в формат PSP

ffmpeg -i source_video.avi -b 300 -s 320x240 -vcodec xvid -ab 32 -ar 24000 -acodec aac final_video.mp4

Пояснения:

  • Источник: source_video.avi
  • Аудио кодек: aac
  • Битрейт аудио: 32kb/s
  • Видео кодек: xvid
  • Битрейт видео: 1200kb/s
  • Размер видео: 320 на 180 пикселей
  • Полученное видео: final_video.mp4

6. Извлечь звуковую дорожку из видео и сохранить в mp3

 

ffmpeg -i source_video.avi -vn -ar 44100 -ac 2 -ab 192 -f mp3 sound.mp3

Пояснения:

  • Источник: source_video.avi
  • Битрейт аудио: 192kb/s
  • Выходной формат: mp3
  • Полученный аудиофайл: sound.mp3

 

7. Конвертировать wav в mp3

 

ffmpeg -i son_origine.avi -vn -ar 44100 -ac 2 -ab 192 -f mp3 son_final.mp3

 

8. Конвертировать .avi в .mpg

 

ffmpeg -i video_origine.avi video_finale.mpg

 

9. Конвертировать .mpg в .avi

 

ffmpeg -i video_origine.mpg video_finale.avi

 

10. Конвертировать .avi в .gif (без сжатия)

 

ffmpeg -i video_origine.avi gif_anime.gif

 

11. Добавить звук к видео

 

ffmpeg -i son.wav -i video_origine.avi video_finale.mpg

 

12. Конвертировать .avi в .flv

 

ffmpeg -i video_origine.avi -ab 56 -ar 44100 -b 200 -r 15 -s 320x240 -f flv video_finale.flv

 

13. Конвертировать .avi в .dv

 

ffmpeg -i video_origine.avi -s pal -r pal -aspect 4:3 -ar 48000 -ac 2 video_finale.dv

или

ffmpeg -i video_origine.avi -target pal-dv video_finale.dv

 

14. Конвертировать .avi в mpeg для DVD-плееров

 

ffmpeg -i source_video.avi -target pal-dvd -ps 2000000000 -aspect 16:9 finale_video.mpeg

Пояснения:

  • Выходной формат: pal-dvd
  • Максимальный размер для выходного файла: 2000000000 (2 Gb)
  • Широкоэкранный формат: 16:9

 

15. Сжать .avi в DivX

 

ffmpeg -i video_origine.avi -s 320x240 -vcodec msmpeg4v2 video_finale.avi

 

16. Сжать OGG Theora в mpeg DVD

 

ffmpeg -i film_sortie_cinelerra.ogm -s 720x576 -vcodec mpeg2video -acodec mp3 film_termin.mpg

 

17. Сжать .avi в SVCD mpeg2

Формат NTSC:

ffmpeg -i video_origine.avi -target ntsc-svcd video_finale.mpg

Формат PAL:

ffmpeg -i video_origine.avi -target pal-svcd video_finale.mpg

 

18. Сжать .avi в VCD mpeg2

Формат NTSC:

ffmpeg -i video_origine.avi -target ntsc-vcd video_finale.mpg

Формат PAL:

ffmpeg -i video_origine.avi -target pal-vcd video_finale.mpg

 

19. Многопроходное кодирование с помощью ffmpeg

 

ffmpeg -i fichierentree -pass 2 -passlogfile ffmpeg2pass fichiersortie-2

20. Повернуть видео на 90°

ffmpeg -vf transpose=1 -i file.avi file1.avi


Опции transpose: 0 — против часовой стрелки и зеркально; 1 — по часовой стрелке; 2 — против часовой стрелки; 3 — по часовой стрелке и зеркально

21. Склейка 2х и более видео в один.
Если ролики в одинаковых форматах с одинаковыми параметрами:

ffmpeg -i "concat:input1.mpg|input2.mpg|input3.mpg" -c copy output.mpg

Если разные:

ffmpeg -i input1.mp4 -i input2.webm \
-filter_complex '[0:0] [0:1] [1:0] [1:1] concat=n=2:v=1:a=1 [v] [a]' \
-map '[v]' -map '[a]' <encoding options> output.mkv

22. Захват видео с экрана:

ffmpeg -f x11grab -s cif -r 25 -i :0.0+10,20 /tmp/out.mpg

здесь -s cif — размер, 0.0 — экран, 10,20 — это смещение относительно верхнего левого угла экрана

Закладка Постоянная ссылка.

Добавить комментарий

Ваш адрес email не будет опубликован.