Архивы: Июль 2012

Семь трюков с ffmpeg

FFmpeg, имеющий большое количество параметров и возможностей, можно считать швейцарским армейским ножом среди аудио- и видео-приложений. У вас, наверное, он уже установлен на компьютере в виде зависимости для программы, предназначенной для просмотра видео или прослушивания музыки. В настоящей статье мы рассмотрим, как использовать этот пакет из командной строки без обращения к графическим приложениям.

FFmpeg является проектом свободного программного обеспечения с открытым исходным кодом, в рамках которого создаются библиотеки и программы для обработки мультимедийных данных. Наиболее известными частями FFmpeg являются: libavcodec — библиотека аудио / видео кодеков, используется несколькими другими проектами, libavformat — библиотека для работы с аудио / видео контейнерами и программа ffmpeg, работающая из командной строки и предназначенная для перекодирования мультимедийных файлов. FFmpeg опубликован под лицензиями GNU Lesser General Public License 2.1 + или GNU General Public License 2 + (в зависимости от того, какие используются возможности).

Сначала проверьте поддерживаемые форматы

ffmpeg -formats

В результате будет выдан длинный список форматов, слева от каждого формата будет указано E (означает, что можно кодировать в этот формат) и / или D (означает, что можно декодировать из этого формата).

1. Преобразование аудиозаписей

Скажем, у вас есть аудио файл с именем my_audio.wav и вы хотите преобразовать его в mp3.

ffmpeg -i my_audio.wav  my_audio.mp3

Параметр -i указывает входной файл.

Невероятно просто, не так ли? Изменить расширение выходного файла на расширение любого поддерживаемого формата и выполнить преобразование в другой формат!

2. Преобразование видеозаписей

Основной принцип использования похож на пример, показанный для аудиопреобразования, так что вы можете просто написать:

ffmpeg -i my_video.mpeg -s 500×500 my_video.flv

В параметре -s ‘size’ (‘размер’) устанавливается разрешение видео (ширина x высота).

В результате вы сможете преобразовать файл my_video.mpeg в файл my_video.flv и разрешение будет изменено на 500 × 500.

3. Извлечение изображений из видеозаписи

Иногда полезно из видеозаписи извлечь несколько изображений и это можно легко сделать с помощью ffmpeg:

ffmpeg -i test.mpg image%d.jpg

Для каждой секунды видео можно создать 25 изображений, но с помощью параметра -r можно указать создавать большее или меньшее количество изображений.

Параметр -r устанавливает количество кадров, генерируемых в буфере кадров (по умолчанию — 25 кадров).

ffmpeg -i test.mpg -r 1 image%d.jpg

С помощью этой команды вы каждую секунду будет получать одно изображение.

Задание продолжительности записи

Вы также можете указать момент в записи, с которого будет начата обработка и длительность обработки с помощью следующих флагов:

  • с помощью -ss указывается начальная позиция в секундах; также поддерживается формат «hh:mm:ss[.xxx]».
  • с помощью -t ограничивается продолжительность преобразования / захвата, указываемая в секундах; также поддерживается формат «hh:mm:ss[.xxx]».

Следующая команда будет создавать 25 изображений каждую секунду, начиная с десятой секунды и в течение 5 секунд.

ffmpeg -i test.mpg -r 25 -ss 00:00:10 -t 00:00:05 images%05d.png

4. Извлечение аудиодорожки из видеозаписи

С помощью ffmpeg вы также можете микшировать видео и аудио и можете извлекать из видеозаписи аудиодорожку в формате mp3:

ffmpeg -i video.avi -f mp3 audio.mp3

В этом примере мы использовали флаг -f.

С помощью -f принудительно указывается формат записи.

Чтобы получить тот же самый результат, также можно использовать возможность отключения захвата видео; для отключения записи видео используется параметр -vn :

ffmpeg -i video.avi -vn audio.mp3

5. Создание демороликов

С помощью ffmpeg также можно создать простой ролик, использующий скриншоты с вашего рабочего стола.

Для этого мы будем использовать некоторые из флагов, показанные в первом примере:

ffmpeg -f x11grab -r 25 -s wxga -i :0.0 /tmp/outputFile.mpg

Примечание: 0.0 является номером display.screen (дисплея.экрана) для вашего сервера X11 точно также, как это указано в переменной окружения DISPLAY.

Вы сможете сохранять по 25 кадров в секунду c вашего экрана wxga (или с помощью параметра -s вы можете указать разрешение, например, 1024 × 768) и поместить видео mpg в /tmp.

6. Преобразование изображений в видеозапись

Скажем, у вас много изображений с именами «img001.jpg»‘, «img002.jpg» и далее в такой же самой последовательности. Вы можете преобразовать их в видеозапись с помощью следующей команды:

ffmpeg -f image2 -i img%d.jpg /tmp/a.mpg

7. Получение видеозаписи с вебкамеры

Чтобы сделать запись видео, запустите ffmpeg со следующими параметрами:

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

Чтобы записать аудио и видео, используйте:

ffmpeg -f oss -i /dev/dsp -f video4linux2 -s 320x240 -i /dev/video0 out.mpg

Это всего лишь несколько примеров; с помощью ffmpeg можно выполнять разнообразное редактирование аудио и видеозаписей, и в сети есть много тому примеров.

Ссылки:

Проект сайта с документацией http://www.ffmpeg.org/ffmpeg-doc.html.