Кое-что про FFmpeg


ffmpegFFmpeg — это набор свободных библиотек с открытым исходным кодом, которые дают возможность пользователю кодировать, обрабатывать аудио-видео файлы, склеивать, извлекать звук из видео файлов, делать запись экрана и много, много других полезных вещей.

Приложения для Linux, с графическим интерфейсом, в последнее время появляются очень часто. Но проверенная временем консоль, не сдает свои позиции. Данная статья покажет всю мощь и эффективность FFmpeg.

Установим свежую версию FFmpeg командами в Терминале:

sudo apt-add-repository ppa:jon-severinsson/ffmpeg
sudo apt-get update
sudo apt-get install ffmpeg

Синтаксис работы с программой такой:

ffmpeg [[опции для входного файла][-i входной файл]]… {[опции для выходного файла] выходной файл}…

Ну а теперь самое интересное, опции и примеры.
Самые основные параметры (ключи):

-i — входящий файл
-b — битрейт видео
-ar — частота дискретизации звука в Гц
-ab — битрейт звука в кБ/c
-ac — количество аудиоканалов
-vcodec — кодек для видео
-acodec — кодек для аудио
-с:v — псевдоним для видео кодека
-c:a — псевдоним для аудио кодека
-f — формат входного/выходного файла
-s — размер выходного файла
-y — перезаписать выходной файл, если он уже присутствует в рабочей директории
-r — количество кадров в секунду
-ss — установка времени старта кодирования. Например: -ss 00:10:50
-t — установка продолжительность кодирования. Например: -t 00:18:20
-vn — не кодировать видео
-an — не кодировать аудио
-vol — изменение уровня громкости аудио файла, где 256=normal. Пример: -vol 256
-threads — использование многопоточности, для многоядерных CPU. Пример: -threads auto
-sameq — сохраняем видео в том же качестве
-aspect — указывает соотношение сторон выходного файла. Пример: -aspect 4:3
-pass — количество проходов во время кодирования. Пример: -pass 2



Информационные команды:

ffmpeg -h — справка программы
ffmpeg -h full — полная справка программы
ffmpeg -codecs -информация по возможным кодекам в FFmpeg
ffmpeg -filters -информация по возможным фильтрам в FFmpeg
ffmpeg -formats — информация по поддерживаемым форматам и кодекам
ffmpeg -version — версия программы и библиотек

Рабочие команды на разные случаи жизни:

Узнаем информацию про файл:

ffmpeg -i input.avi

Для извлечения изображений из видео (1 кадр с каждой секунды видео и разрешением 160×128):

ffmpeg -i input.avi -r 1 -s 160x128 -f image2 images%04d.png

либо так:

ffmpeg -i video.mpg image%d.jpg

Поддерживаются следующие графические форматы: PGM, PPM, PAM, PGMYUV, JPEG, GIF, PNG, TIFF, SGI.

Кодирование из .avi в .3gp для старых «мобилок»:

ffmpeg -i input.avi -s 176x144 -vcodec h263 -vb 250k -acodec mp3 -ac 1 -ar 8000 -r 15 -ab 64k -y output.3gp

Входной файл input.avi, разрешение выходного файла должен быть 176×144, используется видеокодек h263, видео битрейт — 250k, аудиокодек — mp3, количество аудиоканалов — 1 (моно), частота дискретизации звука равна 8000, частота кадров — 15, аудио битрейт равен 64k, выходной файл output.3gp

либо такая команда:

ffmpeg -i input.avi -s 176x144 -r 15 -vb 120k -acodec libamr_nb -ar 8000 -ac 1 -ab 12.2k output.3gp

Для более новых «мобилок» команда будет следующей:

ffmpeg -i input.avi -s 320x240 -vcodec mpeg4 -r 15 -acodec libfaac -ac 1 -ar 22000 -ab 56k output.3gp

Кодирование .3gp в .avi:

ffmpeg -i input.3gp -f avi -vcodec xvid -acodec mp3 -ar 22050 output.avi

Кодирование .mov в .flv

ffmpeg -i input.mov -s 640x360 -b 1700k -vcodec flv -ar 44100 output.flv

Кодирование видео для Apple iPod/iPhone:

ffmpeg -i input.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 output.mp4

Извлечение звука из видео в формате MP3:

ffmpeg -i input.avi -vn -ar 44100 -ac 2 -ab 192 -f mp3 output_sound.mp3

Кодирование .avi в .mpg:

ffmpeg -i input.avi output.mpg

Кодирование .wav в .mp3:

ffmpeg -i input.wav -vn -ar 44100 -ac 2 -ab 192 -f mp3 output.mp3

Кодирование .mpg в .avi:

ffmpeg -i input.mpg output.avi

Кодирование .avi-файла в несжатый анимированный .gif:

ffmpeg -i input.avi output.gif

Микширование аудио и видео файлов в один:

ffmpeg -i input.wav -i input.avi output.mpg

Кодирование .avi в .flv:

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

Кодирование Ogg Theora в Mpeg dvd:

ffmpeg -i input.ogm -s 720x576 -vcodec mpeg2video -acodec mp3 output.mpg

Создаем скриншот из видео файла с точно указанным временем:

ffmpeg -i input.flv -r 1 -ss 00:00:13.750 -vframes 1 -t 1 output.jpg

Запись видео с web-камеры:

ffmpeg -f video4linux2 -s 320x240 -i /dev/video0 output.mpg

Удалем звук из видео файла:

ffmpeg -i input.mp4 -an -vcodec copy output.mp4


Кое-что про FFmpeg: 2 комментария

  1. Возможно ли как нибудь вшить c помощью ffmpeg субтитры в конечный видео файл.
    Дано вайл вильма и файл субтитров в формате srt
    Кстати изначально стояла задача сделать из матрешки файл .*avi сохранив 2 аудио и вшив в него субтитры (извлеченные из этой же матрешки. Извлекать пришлось отдельно c помощью mkvextract (в ffmpeg я так и не нашел опции извлечения субтитров)
    Конечная задача сделать это одним скриптом…

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *