Библиотека сайта rus-linux.net
Ошибка базы данных: Table 'a111530_forumnew.rlf1_users' doesn't exist
Обработка аудио- и видеофайлов с помощью FFmpeg
Оригинал: Manipulating, converting and editing audio and video from command line using ffmpegАвтор: Amjad Saleem
Дата публикации: 24 сентября 2009 г.
Перевод: Максим Белозеров
Дата перевода: 2 ноября 2009 г.
FFmpeg &mdash полноценное кроссплатформное решение для записи, конвертации и воспроизведения звука и видео. Это очень быстрый аудиовидеоконвертер, в состав которого входит лучшая библиотека аудио- и видеокодеков libavcodec
. Кроме того, FFmpeg подходит и для записи потокового звука и видео.
Интерфейс командной строки очень прост в обращении, так как программа интеллектуально распознает все стандартные параметры. Как правило, достаточно ввести имя исходного файла с параметром -i
и имя итогового файла. В этом уроке мы рассмотрим получение информации об аудио- или видеофайле, конвертацию из одного аудио- или видеоформата в другой, захват звука или изображения с устройства и извлечение звука или видео из мультимедийного файла с помощью FFmpeg.
Поддерживаемые форматы
FFmpeg поддерживает множество форматов, таких как avi, wav, asf, mp3, mov, mp4,ogg, vcd, wmv, а также многие другие. Для просмотра поддерживаемых форматов используйте параметр -formats
.
ffmpeg -formats File formats: E 3g2 3gp2 format E 3gp 3gp format D 4xm 4X Technologies format D RoQ Id RoQ format D aac ADTS AAC DE ac3 raw ac3 E adts ADTS AAC DE aiff Audio IFF DE alaw pcm A law format DE amr 3gpp amr file format DE asf asf format E asf_stream asf format DE au SUN AU Format DE audio_device audio grab and output DE avi avi format D avs avs format E crc crc testing format D daud D-Cinema audio format ....... .......
Получение информации об аудио- и видеофайлах
Получить информацию о конкретном мультимедийном файле очень просто. Достаточно параметра -i
и имени исходного файла.
В первой строке показана версия FFmpeg, в данном случае неизвестная, так как программа была собрана из svn. Затем указаны параметры, с которыми компилировалась программа. В следующих строках содержится информация о версии утилит и кодеков, используемых FFmppeg.
Нас интересуют эти строки:
Duration: 00:12:00.7, start: 0.000000, bitrate: 55 kb/s Stream #0.0: Audio: mp3, 22050 Hz, stereo, 56 kb/s
Они говорят нам, что длительность дорожки &mdash двенадцать минут семь десятых секунды, использован кодек mp3, частота дискретизации 22 050 Гц, два канала (стерео), а битрейт &mdash 56 кбит/с.
Конвертация формата видеофайлов
Предположим, у нас есть фильм в формате wmv и нам надо конвертировать его в avi. Следующая команда легко это сделает.
ffmpeg -i input_file.wmv output_file.avi
Здесь input_file
&mdash файл исходного формата, а output_file
&mdash формат, в который нам надо преобразовать файл.
Для конвертации avi в mp3 запустите следующую команду:
ffmpeg -i file.avi file.mp3
Для конвертации avi в dvd для NTSC (распространенный в Северной Америке стандарт), применяйте параметр -target
:
ffmpeg -i file.avi -target ntsc-dvd file.mpg
Можно указать и соотношение сторон параметром -aspect
:
ffmpeg -i file.avi -target ntsc-dvd -aspect 4:3 file.mpg
Если исходный видеофайл был в формате wmv, конвертируем его в dvd таким образом:
ffmpeg -i file.wmv -target ntsc-dvd -aspect 4:3 file.mpg
Аналогично, если исходный файл &mdash это флэш-видео, команда будет такой:
ffmpeg -i file.flv -target ntsc-dvd -aspect 4:3 file.mpg
Из asf конвертируем в avi:
ffmpeg -i file.asf file.avi
Аналогично из файла swf можно сделать mov для воспроизведения в Quicktime.
ffmpeg -i file.swf file.mov
Например, у нас есть фильм в avi и нам нужно сконвертировать его в vcd (Video CD) для воспроизведения на CD-проигрывателе:
ffmpeg -i movie.avi -target pal-vcd movie.mpg
В приведенных выше примерах мы могли использовать параметр -vcodec
для указания видеокодеков, -acodec
для аудиокодека, -s
для размера кадра, -r
для частоты кадров, -b
для битрейта видео, -ar
для частоты дискретизации звука, -ab
для битрейта аудио и -f
, чтобы принудительно использовать определенный формат. В следующем примере мы сконвертируем файл mpg в avi с использованием видеокодека mpeg4 с размером кадра 320×240 и битрейтом видео 300 кбит/с. Для звука используем кодек mp3 с битрейтом 64 кбит/с и частотой дискретизации 22 050 Гц. Кроме того, принудительно укажем формат файла avi.
ffmpeg -i file.mpg -vcodec mpeg4 -s 320x240 -b 300k -r 10 -acodec mp3 -ar 22050 -ab 64k -f avi file.avi
Если некоторые из этих параметров пропущены, FFmpeg будет использовать значения по умолчанию.
Кадрирование видео
Кадр можно обрезать сверху, снизу, слева или справа. Чтобы срезать по 25 пикселов сверху и снизу, запустим следующую команду:
ffmpeg -i file.avi -croptop 25 -cropbottom 25 file_crop.mpg
Чтобы дополнить изображение белыми полосами сверху и снизу по 20 и 30 пикселов соответственно, запустим следующую команду:
fmpeg -i file.mpg -padtop 20 -padbottom 30 -padcolor 000000 -f avi file_pad.avi
Извлечение звука из видеофайла
Это мой любимый пункт, так как я постоянно извлекаю аудиодорожки из юмористических передач. Чтобы извлечь звук из моей любимой передачи Джорджа Карлина в файле show.avi
, используем для FFmpeg параметр -vn
.
ffmpeg -i show.avi -vn show_audio.mp3
Захват звука и изображения
FFmpeg может использовать источники видео, совместимые с video4linux и источники звука, совместимые с OSS (Open Sound System). Для захвата звука или видео используется такая команда:
ffmpeg /tmp/out.mpg
Продолжение следует.