База знаний: Linux Server
Устанавливаем FFMPEG
Автор Алексей | HiTex.BY на 08 марта 2011 14:10
FFmpeg - это набор программ с помощью которых можно записывать, перекодировать и проигрывать аудио и видео файлы. Данные программы используют библиотеку libavcodec. FFmpeg изначально разрабатывался под Linux, но на данный момент эту программу можно использовать из-под большинства операционных систем, включая Windows. Стоит также заметить, что большинство разработчиков FFmpeg также участвуют и в разработке Mplayer, поэтому эти два проекта тесно связаны.

В случае Debian (Ubuntu) программу устанавливаем стандартным способом:
$sudo apt-get install ffmpeg
На самом деле это не одна программа, а пакет, состоящий из различных утилит:

ffmpeg - это утилита позволяющая конвертировать видео файлы в различные форматы. Также она позволяет захватывать и кодировать видео с TV-карт в режиме реального времени.

ffserver - это HTTP (RTSP is being developed) мультимедиа сервер для телевещания
ffplay - медиаплеер.
libavcodec, libavformat, libavutil, libpostproc, libswscale - различные библиотеки

Рассмотрим некоторые полезные примеры применения ffmpeg:

Вытягиваем аудио с видео файла:

Не буду сильно отклонятся от темы предыдущего поста, поэтому экспериментировать буду с файлами .flv.
В комментариях к предыдущему посту были упомянуты два расширения для Firefox, с помощью которых можно скачать видео файл в формате .flv, например с YouTube, а именно - UnPlug и Fast Video Download. Будем считать, что с первой половиной задания мы справились - файл скачали. Теперь извлекаем из него аудио:
ffmpeg -i video.flv -f mp3 -vn -acodec copy audio.mp3
где,
-i - задает файл, из которого будем извлекать аудио.
-f - задает формат аудио файла.
-vn - отключает запись видео.
-acodec - задает аудио кодек.

Полученный файл можно прослушать в ffplay:
$ffplay audio.mp3
Также можно перекодировать видео с .flv в .avi и после этого извлечь аудио с .avi c помощью mplayer:
mplayer -dumpaudio video.avi
(Извлечь напрямую с .flv у меня не получилось)

Еще можно воспользоваться услугами специально созданного для этого сайта http://flv2mp3.com/. Загружаем на сайт нужный файл или указываем его URL и ждем когда нам на E-mail придет аудио с этого файла.


Создаем thumbnail c видео-файла:

ffmpeg -i video.flv -an -ss 00:00:02 -an -vframes 1 -y %d.jpg
где
-an - запрещает перекодировку
-ss - время. В нашем случае это будет кадр на второй секунде (избегаем снимка черного экрана)
-vframes - устанавливает количество кадров
-y - переписать полученный файл

В результате выполнения данной программы, появится файл 1.jpg, представляющий собой кадр второй секунды видео.

Также, можно создать thumbnail и в PNG-формате:
ffmpeg -i video.flv -vcodec png -vframes 1 -an -f rawvideo  png.png
где
-vcodec - выставить видео кодек.


Создаем видео с набора JPG файлов:

Заходим в папку, в которой находятся изображения в формате JPG и запускаем следующую команду:
ffmpeg -r 5 -b 1800 -i %03d.jpg video.avi
(предполагается что названия файлов имеют следующий вид - 001.jpg, 002.jpg)

-r - задает количество кадров в секунду
-b - устанавливает видеобитрейт в килобитах в секунду (по умолчанию 200 кб/с)

Полученный файл просматриваем с помощью ffplay:
$ ffplay video.avi
Таким образом, на основе нескольких примеров я показал что можно сделать с помощью программы FFmpeg. Естественно, это лишь малая часть того, что может делать данная утилита. Для более подробной информации обратитесь к man ffmpeg или на сайте разработчика.

(1107 голос(а))
Эта статья полезна
Эта статья бесполезна

Комментарии (0)