Рейтинг@Mail.ru
[Войти] [Зарегистрироваться]

Наши друзья и партнеры

UnixForum
Беспроводные выключатели nooLite

Lines Club

Ищем достойных соперников.

Книги по Linux (с отзывами читателей)

Библиотека сайта или "Мой Linux Documentation Project"

Ошибка базы данных:
На главную -> MyLDP -> Тематический каталог -> Графика, звук, видео в Linux

Обработка аудио- и видеофайлов с помощью 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

Продолжение следует.


Средняя оценка 5 при 1 голосовавших
Вы сможете оценить статью и оставить комментарий, если войдете или зарегистрируетесь.
Только зарегистрированные пользователи могут оценивать и комментировать статьи.

Комментарии

Денис Капустин пишет: 09.11.2009
Просто и ясно :) Спасибо, ждем продолжения. Вопрос: можно ли с помощью ffmpeg разрезать и склеивать видео- и звуковые файлы?