ffmpeg действительно мощный видеокодер/декодер. Он работает в командной строке, а не в графическом интерфейсе. Командная строка - это то черное окно, которое вы найдете, щелкнув и набрав cmd , затем нажмите enter. Это также называется «командной строки». После настройки вы вводите команды ffmpeg в одном из этих окон, чтобы использовать его.

Вот основные шаги, чтобы «установить» и использовать его:

Установка

ffmpeg теперь «установлен». Командная строка теперь распознает команды ffmpeg и попытается запустить их.

Обновление FFmpeg

Чтобы обновить FFmpeg, просто вернуться на страницу загрузки в шаге 1 и загрузите файл почтового индекса. Распакуйте файлы и скопируйте их поверх старых файлов в папке, созданной на шаге 2.

Использование FFmpeg

Использование FFmpeg требует, чтобы вы открыть окно командной строки, а затем введите FFmpeg определенные команды. Вот типичная команда FFmpeg:

Ffmpeg -i video.mp4 -vn -ar 44100 -ac 1 -b:a 32k -f mp3 audio.mp3

Эта команда состоит из четырех частей:

  1. ffmpeg - Эта команда сообщает CMD, что мы хотим запустить FFmpeg команды. cmd сначала ищет ffmpeg.exe в одной из папок с шага 6 в разделе «Установка». Если он найден, он попытается выполнить команду.
  2. -i video.mp4 - Это входной файл. Мы будем работать над этим файлом.
  3. -vn -ar 44100 -ac 1 -b:a 32k -f mp3 - Это «аргументы». Эти символы похожи на мини-команды, которые точно определяют, что мы хотим делать. В этом случае говорится, что нужно создать mp3-файл из источника ввода.
    • -vn - Оставьте из видеопотока
    • -ar 44100 - Определяет аудио разрешение в герцах.
    • -ac 1 - Аудиоканалы, только 1. Это эффективно «сделать моно».
    • -b:a 32k - Битрейт аудио, установлен на 32 кбит/с.
    • -f mp3 - Принудительное преобразование MP3. Без этой команды ffmpeg пытается интерпретировать то, что вы хотите, на основе расширения, которое вы используете в имени выходного файла.
  4. audio.mp3 - Это выходной файл.

Как вы можете догадаться, эта короткая команда делает аудиофайл MP3 из файла MP4.

Чтобы выполнить эту команду, если у вас есть файл MP4, чтобы попробовать это на, выполните следующие действия:

  1. Нажмите клавишу Windows + R.
  2. Тип cmd затем введите.
  3. Изменить путь к файлу, над которым вы хотите работать. Тип cd . Он должен выглядеть примерно как cd C:\Users\name\Desktop\ .
  4. Теперь введите команду ffmpeg с именем вашего входного файла. Команда будет работать с некоторой обратной связью. Когда это будет сделано, cmd будет доступен для большего количества команд.

Это основной способ использования ffmpeg. Команды могут быть намного сложнее, но это только потому, что у программы столько энергии. Используя the ffmpeg documentation , вы можете узнать все команды и создать очень мощные скрипты. После этого вы можете сохранить эти сценарии в файл.bat, чтобы вам просто нужно дважды щелкнуть файл, а не набирать всю команду каждый раз. Например, this answer contains a script that will create MP3"s from all the MP4"s in a folder . Затем мы будем комбинировать мощность ffmpeg с мощностью cmd, и это приятное место, когда вам нужно делать профессиональное видео/аудио кодирование в горных файлах.

FFmpeg - это набор библиотек для обработки видео и аудио файлов. FFmpeg сконвертирует mov в mp4, наложит водяной знак, склеит несколько видео файлов в один, поменяет разрешение, перекодирует потоковое видео, создаст поток сам. FFmpeg полезен для тех, кто профессионально работает с видео, разрабатывает медиа приложения или просто обрабатывает домашние записи.

FFmpeg не имеет графического интерфейса и управляется командами из консоли. Многие пользователи работают с ним, копируя нужные команды из интернета, не понимая, что значит тот или иной флаг. Научимся осознанно работать с FFmpeg на примере нескольких полезных команд.

Сегодня мы пройдем путь от получения информации о файле до применения нескольких фильтров одновременно, решая задачи, с которыми часто сталкиваешься при работе с видео. Установим ffmpeg и вперед!

Получаем информацию о файле

ffmpeg -i file.mp4

Тут все просто, вводим путь к файлу, получаем информацию о нем: кодеки, количество дорожек, разрешение, битрейт и фреймрейт. Мы указываем пути к файлам флагом -i (input):

I file1.mp4 -i file2.mp4 .

Конвертируем в mp4

Допустим у нас есть сайт, на котором видео проигрывалось через Flash плеер. Мы хотим поменять его на HTML5 Video. Для этого конвертируем видео файлы на сервере из flv формата в mp4.

  • output.mp4 - путь к сконвертированному файлу.
  • -vcodec libx264 - указываем какой видео кодек хотим получить. В нашем случае это H264, который поддерживается большинством браузеров .
  • -acodec libvo_aacenc - аудио кодек AAC .

Список поддерживаемых вашим ffmpeg кодеков можно получить через ffmpeg -codecs .

Вместо -vcodec встречается запись -codec:v и -c:v . Если не указать кодеки для конвертации ffmpeg -i flashvideo.flv output.mp4 , то ffmpeg установит дефолтные кодеки для формата файла на выходе .

При конвертации задают не только кодеки. Увеличим число настроек:

Ffmpeg -i flashvideo.flv -b:v 700k -r 25 -pix_fmt yuv420p -vcodec libx264 \ -b:a 128k -ar 44100 -acodec libvo_aacenc -y output.mp4

Мы установили битрейт для видео -b:v и аудио -b:a в 700 и 128 кб/c. Битрейт можно обозначить другими флагами: -vb и -b для видео или -ab для аудио.

Оставшиеся три параметра - это фреймрейт -r 25 в кадрах в секунду, цветовая модель YUV равная обычному значению yuv420p и частота дискретизации звука 44100 Гц. Флаг -y нужен для перезаписи файла, если он уже существует.

Вырезаем фрагмент видео

ffmpeg -ss 10 -t 20 -i source_video.mp4 -vcodec copy -acodec copy result.mp4

Флагом -ss указываем с какого момента исходного видео обрезаем, -t - продолжительность. На выходе мы получим двадцати секундное видео, которое начнется с десятой секунды исходного. Запись -ss 00:00:10.250 -t 00:00:20.120 пригодится для указания более точного промежутка времени. До версии 2.1 FFmpeg в обоих случаях обрезал видео по ближайшему ключевому кадру . В новых версиях итоговое видео максимально близко к указанному интервалу.

Мы добавили -vcodec copy -acodec copy , чтобы сохранить кодеки исходного видео. Иначе ffmpeg перекодировал бы их в кодеки по умолчанию. Сейчас видео не перекодируется и команда выполнится быстро. Дальше упростим эту запись флагом -c copy .

Если расположить флаги -ss и -t после входящего видео, то итоговое видео будет таким же, но команда будет выполняться дольше. Флаги будут относиться к итоговому видео и FFmpeg будет декодировать фрагмент видео до -ss . В первом случае эта часть будет проигнорирована.

Флаг -t можно заменить на -to , указав вместо продолжительности конечную точку. Этот флаг нельзя применить к входящему видео:

Ffmpeg -ss 10 -i source_video.mp4 -to 30 -c copy result.mp4

Команда дала нам другой результат: тридцати секундное видео с десятой секунды исходного. Это произошло, потому что -to использовал временную шкалу result.mp4 , тридцатая секунда на котором равна сороковой секунде source_video.mp4 . Чтобы использовать исходную шкалу добавим флаг -copyts . Так мы получим такое же видео, как от первой команды:

Ffmpeg -ss 10 -i source_video.mp4 -to 30 -copyts -c copy result.mp4

Фильтры. Меняем разрешение

Один из самых мощных инструментов ffmpeg - фильтры. Они могут добавлять эффекты, накладывать разные видео друг на друга, сшивать несколько файлов в один. Увидеть список установленных фильтров мы можем по команде ffmpeg -filters . Изменим с их помощью разрешение видео:

Ffmpeg -i source_video.avi -vf scale=640:480 source_preview.avi

Мы использовали флаг -vf , указав фильтр scale и разрешение 640:480 . Этот фильтр может сохранять пропорции и вычислять разрешение динамически .

Объединение фильтров. Ускоряем воспроизведение

ffmpeg -i source_video.mp4 \ -filter_complex "setpts=0.5*PTS;atempo=2.0" accelerated.mp4

Мы объединили несколько фильтров в один флагом filter_complex и получили ускоренный в два раза файл. Чтобы разобраться применим фильтры по одиночке.

Ffmpeg -i source_video.mp4 -vf setpts=0.5*PTS accelerated_video.mp4

Мы ускорили воспроизведение видео дорожки фильтром setpts . Однако аудиодорожка не изменилась, и файл получится той же продолжительности что и был: видео проиграется в 2 раза быстрее, а последний кадр будет висеть всю вторую половину файла. Если убрать аудио дорожку флагом -an , то длительность итогового файла будет определяться по видео дорожке и будет в два раза меньше исходной.

Наоборот, если нужна только ускоренное аудио без видео, воспользуемся фильтром atempo , а флагом vn уберем видео дорожку.

Ffmpeg -i source_video.mp4 -af atempo=2.0 -vn accelerated_audio.mp3

Добавив filter_complex и применив оба фильтра, мы ускорили файл целиком.

Выполним ту же операцию другим методом:

Ffmpeg -f concat -i list.txt -c copy output.mp4

В FFmpeg есть элементы, которые читают или записывают медиа в определенных форматах. Они называются демультиплексор и мультиплексор . -f concat - это демультиплексор, который принимает текстовый файл, со списком медиа файлов и склеивает их в один. Посмотреть другие элементы можно командой ffmpeg -formats .

Содержимое list.txt:

File "input1.mp4" file "input2.mp4"

Такой метод удобен, если у нас много файлов и надо склеить их друг за другом. Он не перекодирует видео и работает быстрее первого метода.

Но первый метод применяется чаще. Во-первых, он может принять на вход видео с разными кодеками. Во-вторых, дает большую гибкость. Например, если нужна только часть первого видео, мы можем воспользоваться флагами -ss и -t . Обратите внимание, эти флаги действуют только на первый файл input1.mp4 .

Ffmpeg -ss 5 -t 2 -i input1.mp4 -i input2.mp4 \ -filter_complex " concat=n=2:v=1:a=1 [v] [a]" \ -map "[v]" -map "[a]" -y result.mp4

Водяной знак

Последний пример, который мы рассмотрим - это наложение водяного знака. Фильтр overlay принимает на вход координаты расположения водяного знака на итоговом видео.

Расположим водяной знак по центру. Зная размер исходного видео и png картинки, можно вычислить координаты самим. Например при видео 1280×720 и водяном знаке 200×200, положение по горизонтали x = (1280 - 200) / 2 = 540 и по вертикали y = (720 - 200) / 2 = 260 . Соответственно значение фильтра "overlay=540:260" . Однако удобнее написать универсальную команду, чтобы ffmpeg посчитал все за нас. Размер видео получим из параметров main_w и main_h , а водяного знака из overlay_w и overlay_h . Далее ту формулу, по которой мы вычисляли координаты запишем в значение фильтра "overlay=(main_w-overlay_w)/2:(main_h-overlay_h)/2" . Готово, мы получили команду для наложения водяного знака по центру:

Ffmpeg -i source_video.mp4 -i watermark.png \ -filter_complex "overlay=(main_w-overlay_w)/2:(main_h-overlay_h)/2" \ -codec:a copy video_protected.mp4

Твитнуть

— Удаляем пакеты x264, libx264-dev, и ffmpeg если они были установлены:

$ sudo apt-get purge ffmpeg x264 libx264-dev libmp3lame-dev

— Если включено автообновление пакетов в системе, запрещаем обновлять пакет ffmpeg:
Если файл «/etc/apt/apt.conf.d/50unattended-upgrades» существует то прописываем в секцию «Package-Blacklist» пакет ffmpeg, если файла нет, создаем его:

$ sudo echo -e "Unattended-Upgrade::Package-Blacklist {n "ffmpeg";n};" > /etc/apt/apt.conf.d/50unattended-upgrades

Для сборки x264 необходима последняя версия yasm . Проверим какая версия установленна:

$ yasm --version yasm 1.2.0 Compiled on Nov 20 2013.

Если версии совпадают то попускаем следующий шаг

$ apt-get remove yasm $ wget http://www.tortall.net/projects/yasm/releases/yasm-1.2.0.tar.gz $ tar xvfz yasm-1.2.0.tar.gz $ cd yasm-1.2.0 $ ./configure --prefix=/usr/local $ make $ sudo make install $ yasm --version yasm 1.2.0 Compiled on Nov 20 2013.

— Получаем зависимые пакеты необходимые для установки ffmpeg и x264:

$ sudo apt-get update $ sudo apt-get install build-essential subversion texi2html libfaac-dev libfaad-dev libmp3lame-dev libtheora-dev quilt libsdl1.2-dev libogg-dev libvorbis-dev liba52-dev libdts-dev libimlib2-dev libraw1394-dev libdc1394-22-dev libtheora-dev libgsm1-dev libfaac-dev libfaad-dev git-core checkinstall yasm libopencore-amrnb-dev libopencore-amrwb-dev libtheora-dev libvorbis-dev libx11-dev libxfixes-dev zlib1g-dev nasm python-chardet gstreamer1.0-libav gstreamer0.10-ffmpeg

Если в процессе установки получили ошибку на зависимости пакета gstreamer0.10-ffmpeg

добавим новый репозиторий и обновим индексы

Sudo add-apt-repository ppa:mc3man/trusty-media sudo apt-get update

после чего повторяем процесс установки пакетов

— Устанавливаем x264 из исходников

$ mkdir ~/src; cd ~/src $ git clone git://git.videolan.org/x264.git $ cd ./x264/ $ ./configure --prefix=/usr/local --enable-shared $ make $ sudo checkinstall --pkgname = x264 --pkgversion head -c 7`" --backup = no --deldoc = yes --fstrans = no --default sudo checkinstall --pkgname =x264 --pkgversion "2:0.`grep X264_BUILD x264.h -m1 | cut -d" " -f3` .`git rev-list HEAD | wc -l` +git`git rev-list HEAD -n 1 | head -c 7` " --backup =no --default $ sudo make install-lib-dev && sudo cp libx264.a /usr/local/lib/

— Устанавливаем x264_b10 из исходников

$ mkdir ~/src; cd ~/src $ git clone git://git.videolan.org/x264.git $ cd ./x264/ $ ./configure --prefix=/usr/local --enable-shared --bit-depth=10 $ make $ sudo checkinstall --pkgname = x264_b10 --pkgversion "2:0.`grep X264_BUILD x264.h -m1 | cut -d" " -f3`.`git rev-list HEAD | wc -l`+git`git rev-list HEAD -n 1 | head -c 7`" --backup = no --deldoc = yes --fstrans = no --default $ sudo make install-lib-dev $ sudo cp libx264.a /usr/local/lib/

Проверим какая версия lame установленна:

$lame -h LAME 64bits version 3.99.5 (http://lame.sf.net)

Если получили ответ что версия старше 3.99 то пропускаем следующий шаг

— Устанавливает поддержку кодека lame

$cd ~/src $ sudo mkdir -p /usr/local/share/doc/lame $ wget http://downloads.sourceforge.net/project/lame/lame/3.99/lame-3.99.5.tar.gz $ tar xzvf lame-3.99.5.tar.gz $ cd lame-3.99.5 $ ./configure --enable-nasm --disable-shared $ make $ sudo checkinstall --pkgname=lame-ffmpeg --pkgversion="3.99.5" --backup=no --default --deldoc=yes

— Устанавливаем libxvid из исходников

$ cd ~/src $ wget http://downloads.xvid.org/downloads/xvidcore-1.3.3.tar.gz $ tar xzvf xvidcore-1.3.3.tar.gz $ cd ./xvidcore/build/generic $ ./configure --prefix=/usr/local $ make $ sudo make install apt-get install libopencore-amrnb-dev libopencore-amrwb-dev libgsm1-dev libfaac-dev libtheora-dev libvorbis-dev libx264-dev libdc1394-22-dev libxext-dev libxfixes-dev

— Устанавливаем ffmpeg с поддержкой кодека x264:

$ cd ~/src $ git clone git://git.videolan.org/ffmpeg.git $ cd ffmpeg/ $ ./configure --prefix=/usr/local --enable-gpl --enable-postproc --enable-swscale --enable-pthreads --enable-x11grab --enable-libdc1394 --enable-libfaac --enable-libgsm --enable-libmp3lame --enable-libtheora --enable-libvorbis --enable-libx264 --enable-libxvid --enable-nonfree --enable-version3 --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-shared $ make $ sudo checkinstall --pkgname=ffmpeg --pkgversion="7:$(date +%Y%m%d%H%M)-git" --backup=no --deldoc=yes --fstrans=no --default $ hash x264 ffmpeg ffplay ffprobe $ldconfig -v

  • устанавливаем необходимые утилиты кодирования

$ sudo apt-get install mkvtoolnix gpac mencoder dvdrip avidemux

Проверим установку

$ which ffmpeg /usr/local/bin/ffmpeg

$ ffmpeg -encoders|grep -E «mp3|xvid|aac|gsm|amr|x264|theora|vorbis»
ffmpeg version N-55691-gca7f637 Copyright 2000—2013 the FFmpeg developers
built on Aug 21 2013 15:44:17 with gcc 4.6 (Ubuntu/Linaro 4.6.3-1ubuntu5)
configuration: --prefix=/usr/local --enable-gpl --enable-version3 --enable-nonfree --enable-shared --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libfaac --enable-libgsm --enable-libmp3lame --enable-libtheora --enable-libvorbis --enable-libx264 --enable-libxvid
libavutil 52. 42.100 / 52. 42.100
libavcodec 55. 29.100 / 55. 29.100
libavformat 55. 14.100 / 55. 14.100
libavdevice 55. 3.100 / 55. 3.100
libavfilter 3. 82.100 / 3. 82.100
libswscale 2. 5.100 / 2. 5.100
libswresample 0. 17.103 / 0. 17.103
libpostproc 52. 3.100 / 52. 3.100
V... libx264 libx264 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 (codec h264)
V... libx264rgb libx264 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 RGB (codec h264)
V... libxvid libxvidcore MPEG-4 part 2 (codec mpeg4)
V... libtheora libtheora Theora (codec theora)
A...X... aac AAC (Advanced Audio Coding)
A... libfaac libfaac AAC (Advanced Audio Coding) (codec aac)
A... libopencore_amrnb OpenCORE AMR-NB (Adaptive Multi-Rate Narrow-Band) (codec amr_nb)
A... libgsm libgsm GSM (codec gsm)
A... libgsm_ms libgsm GSM Microsoft variant (codec gsm_ms)
A... libmp3lame libmp3lame MP3 (MPEG audio layer 3) (codec mp3)
A...X... vorbis Vorbis
A... libvorbis libvorbis (codec vorbis)

Примеры использования

Кодирование в один проход:

Ffmpeg -i input. avi -acodec libfaac -ab 128k -ac 2 -vcodec libx264 -vpre slow -crf 22 -threads 0 output. mp4

Чем ниже параметр -crf , тем выше качество, но больше файл. Разумными являются значения от 18 до 28.

Двухпроходное кодирование:

Ffmpeg -i input. avi -pass 1 -vcodec libx264 -vpre fast_firstpass -b 512k -bt 512k -threads 0 -f rawvideo -an -y /dev/null && ffmpeg -i input. avi -pass 2 -acodec libfaac -ab 128k -ac 2 -vcodec libx264 -vpre fast -b 512k -bt 512k -threads 0 output. mp4

Перекодирование для iPod (640×480):

Ffmpeg -i input. avi -acodec libfaac -aq 100 -ac 2 -vcodec libx264 -vpre slow -vpre ipod640 -crf 26 -map _meta_data 0 : 0 -vf scale = 640 : -1 -threads 0 output. mp4

1. Получение информации о видеофайле

ffmpeg -i video.avi

2. Превратить набор картинок в видео

ffmpeg -f image2 -i image%d.jpg video.mpg Эта команда преобразует все картинки из текущей директории (названные image1.jpg, image2.jpg и т.д.) в видеофайл video.mpg (примечание переводчика: мне больше нравится такой формат: ffmpeg -r 12 -y -i "image_%010d.png" output.mpg здесь задаётся frame rate (12) для видео, формат «image_%010d.png» означает, что картинки будут искаться в виде image_0000000001.png, image_0000000002.png и тд, то есть, в формате printf)

3. Порезать видео на картинки

ffmpeg -i video.mpg image%d.jpg

Эта команда создаст файлы image1.jpg, image2.jpg и т.д., поддерживаются так же форматы PGM, PPM, PAM, PGMYUV, JPEG, GIF, PNG, TIFF, SGI.

4. Конвертировать видео в формат iPod/iPhone

ffmpeg -i source_video.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 final_video.mp4

Пояснения:

  • Источник: source_video.avi
  • Аудио кодек: aac
  • Битрейт аудио: 128kb/s
  • Видео кодек: mpeg4
  • Битрейт видео: 1200kb/s

5. Конвертировать видео в формат PSP

ffmpeg -i source_video.avi -b 300 -s 320x240 -vcodec xvid -ab 32 -ar 24000 -acodec aac final_video.mp4

Пояснения:

  • Источник: source_video.avi
  • Аудио кодек: aac
  • Битрейт аудио: 32kb/s
  • Видео кодек: xvid
  • Битрейт видео: 1200kb/s
  • Размер видео: 320 на 180 пикселей
  • Полученное видео: final_video.mp4

6. Извлечь звуковую дорожку из видео и сохранить в mp3

ffmpeg -i source_video.avi -vn -ar 44100 -ac 2 -ab 192 -f mp3 sound.mp3

Пояснения:

  • Источник: source_video.avi
  • Битрейт аудио: 192kb/s
  • Выходной формат: mp3
  • Полученный аудиофайл: sound.mp3

7. Конвертировать wav в mp3

ffmpeg -i son_origine.wav -vn -ar 44100 -ac 2 -ab 192 -f mp3 son_final.mp3

8. Конвертировать.avi в.mpg

ffmpeg -i video_origine.avi video_finale.mpg 

9. Конвертировать.mpg в.avi

ffmpeg -i video_origine.mpg video_finale.avi

10. Конвертировать.avi в.gif (без сжатия)

ffmpeg -i video_origine.avi gif_anime.gif

11. Добавить звук к видео

ffmpeg -i son.wav -i video_origine.avi video_finale.mpg

12. Конвертировать.avi в.flv

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

13. Конвертировать.avi в.dv

ffmpeg -i video_origine.avi -s pal -r pal -aspect 4:3 -ar 48000 -ac 2 video_finale.dv

Ffmpeg -i video_origine.avi -target pal-dv video_finale.dv

14. Конвертировать.avi в mpeg для DVD-плееров

ffmpeg -i source_video.avi -target pal-dvd -ps 2000000000 -aspect 16:9 finale_video.mpeg

Пояснения:

  • Выходной формат: pal-dvd
  • Максимальный размер для выходного файла: 2000000000 (2 Gb)
  • Широкоэкранный формат: 16:9

15. Сжать.avi в DivX

ffmpeg -i video_origine.avi -s 320x240 -vcodec msmpeg4v2 video_finale.avi

16. Сжать OGG Theora в mpeg DVD

ffmpeg -i film_sortie_cinelerra.ogm -s 720x576 -vcodec mpeg2video -acodec mp3 film_termin.mpg

17. Сжать.avi в SVCD mpeg2

ffmpeg -i video_origine.avi -target ntsc-svcd video_finale.mpg

Формат PAL:

Ffmpeg -i video_origine.avi -target pal-svcd video_finale.mpg

18. Сжать.avi в VCD mpeg2

Формат NTSC:

Ffmpeg -i video_origine.avi -target ntsc-vcd video_finale.mpg

Формат PAL:

Ffmpeg -i video_origine.avi -target pal-vcd video_finale.mpg

19. Многопроходное кодирование с помощью ffmpeg

ffmpeg -i fichierentree -pass 2 -passlogfile ffmpeg2pass fichiersortie-2

20. Конвертировать.m4b в.mp3

ffmpeg -i filename.m4b -acodec libmp3lame -ar 22050 filename.mp3 или find -iname "*.m4b" -print0 | xargs -0 -I {} ffmpeg -i {} -acodec libmp3lame -ar 22050 {}.mp3

Обновление

Удаляем ранее установленные пакеты:

Sudo apt-get remove ffmpeg x264 libx264-dev

Обновляем x264 :

Cd ~ /src/x 264 make distclean git pull

Обновляем FFmpeg :

Cd ~ /src/ffmpeg make distclean svn update

В обоих случаях повторяем процедуру установки FFmpeg и x264 , как было описано ранее, только с места «./configure ля-ля-ля...»

Отмена всех изменений, проделанных по данной инструкции

sudo apt-get remove x264 ffmpeg build-essential subversion git-core checkinstall yasm texi2html libfaac-dev libmp3lame-dev libsdl1.2 -dev libtheora-dev libvorbis-dev libvpx-dev libx11-dev libxfixes-dev libxvidcore-dev zlib1g-dev rm -rf ~/src/x264 ~/src/ffmpeg

Дополнение

если необходимо установить x264 для работы с видео в 10 бит. Тогда да. Стоит все это проделывать. Теперь по поводу библиотеке libx264. ffmpeg в убунту работает не с кодеком x264 а непосредственно с библиотекой кодирования libx264.so.123 она расположена в директории с архитектурно зависимыми библиотеками. Вопервых для нормальной конфигурации x264 к работе в связке с ffmpeg (получения видео потока для кодирования от ffmpeg) перед началом конфигурации x264 необходимо установить следующие пакеты: libavformat-dev, libffms2-dev, libgpac-dev, libswscale-dev. После установки этих пакетов выполнив./configure мы увидим следующее:

/scr/x264$ ./configure

platform: X86_64
system: LINUX
cli: yes
libx264: internal внутренняя библиотека кодирования libx264
shared: no — системная билиотека libx264.so.*** собираться не будет. а именно ее использует ffmpeg для кодирования и обработки видео.
static: no
asm: yes — сборка, оптимизированная для процессора, установленного на компе
interlaced: yes — включена поддерка работы с черестрочным видео
avs: no — отключена поддержка работы с avisync на линуксе его нету
lavf: yes — включена поддержка входных файлов всех форматов, которые понимает ffmpeg
ffms: yes — тоже включение поддержки ffmpeg что конкретно — неведаю. Вроде поддержка форматов, которые ffmpeg может обрабатывать некорректро или что-то вроде того.
gpac: yes
gpl: yes
thread: posix

debug: no
gprof: no
strip: no
PIC: no
visualize: no
bit depth: 8 кодирование в видео файлы с глубиной цвета только 8 бит
chroma format: all

И так мы видим, что у нас x264 будет собираться с поддержкой всего, что только можно, но ffmpeg сним работать не будет. Теперь что необходимо сделать, что бы обеспечить работу ffmpeg непосредственно именно с собраным нами кодеком. Для этого необходимо конфигурировать x264 со следующими ключами:

Prefix=/usr — все компилированные файлы будут располагаться в программной директории /usr
— bindir=/usr/bin — поместит кодек x264 в программную папку /usr/bin а не в папку собранных локально программ /usr/local/bin установленной по умолчаню.
— libdir=/usr/lib/x86_64-linux-gnu — поместит библиотеку кодирования libx264.so.*** в директорию архитектурно зависимых библиотек (обращаю ваше внимание, что у меня 64 разрядная система и соответственно используется директория «x86_64-linux-gnu» для других архитектур следует использовать и друкую директорию)
— enable-shared — включает создание динамической библиотеки кодирования libx264.so.*** которую и будет искать ffmpeg при конфигурации с включенной поддержкой кодека x264 (насколько я знаю ее надо включать ключем конфигурации а там кто его знает я еще не пробовал компилить сам ffmpeg возможно для связки ffmpeg c libx264.so.*** придется включать еще какие нибудь ключи конфигурации)
— enable-static — включает создание статических библиотек libx264.so (примечание ffmpeg работает с динамической а не статической библиотекой. У динамической библиотеки в названии файла в конце стоит еще и номер версии. Именно поэтому после установки новой версии кодека x264 для обеспечения работы с ним ffmpeg его(ffmpeg) каждый раз приходиться пересобирать поновой.
— bit-depth=10 — включается конфигурация кодека для сборки только 10 битного видео (в том числе и библиотеки. Воспроизводиться будет как 8-ми битное видео, так и 10-битное, а вот создаваться этим кодеком будет только 10 битное видео. если эта опция не нужна — тогда не ставьте ее и будет собран кодек, который будет создавать только 8-ми битное видео.

Вот, что мы получим при конфигурации кодека с данными ключами:

/scr/x264$ ./configure --prefix=/usr --bindir=/usr/bin --libdir=/usr/lib/x86_64-linux-gnu --enable-shared --enable-static --bit-depth=10
fatal: Not a git repository (or any of the parent directories): .git
platform: X86_64
system: LINUX
cli: yes — работа в командной строке
libx264: internal — создание внутренних библиотек
shared: yes — создание динамических библиотек
static: yes — создание статических библиотек
asm: yes — оптимизация для процессора (перед сборкой нужно установить yasm
interlaced: yes — работа с черезстрочным видео
avs: no — avisync побоку
lavf: yes — поддержка форматов ffmpeg
ffms: yes — поддержка друких форматов
gpac: yes — оптимизация работы с OpenSourse Multimedia
gpl: yes
thread: posix
filters: resize crop select_every
debug: no
gprof: no
strip: no
PIC: yes
visualize: no
bit depth: 10 — Создание токлько 10 битного видео (профили кодирования High10, High422 и High444
chroma format: all

Более подробную информацию о ключах конфигурации кодека x264 можно просмотреть набрав в директории с исходными кодами x264 команду./configure -h

в принципе вот вам ее содержание:

/scr/x264$ ./configure -h
Usage: ./configure
Help:
— h, --help print this message
Standard options:
— prefix=PREFIX install architecture-independent files in PREFIX
— exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
— bindir=DIR install binaries in DIR
— libdir=DIR install libs in DIR
— includedir=DIR install includes in DIR
— extra-asflags=EASFLAGS add EASFLAGS to ASFLAGS
— extra-cflags=ECFLAGS add ECFLAGS to CFLAGS
— extra-ldflags=ELDFLAGS add ELDFLAGS to LDFLAGS
Configuration options:
— disable-cli disable cli
— system-libx264 use system libx264 instead of internal
— enable-shared build shared library
— enable-static build static library
— disable-gpl disable GPL-only features
— disable-thread disable multithreaded encoding
— enable-win32thread use win32threads (windows only)
— disable-interlaced disable interlaced encoding support
— enable-visualize enable visualization (X11 only)
— bit-depth=BIT_DEPTH set output bit depth (8-10)
— chroma-format=FORMAT output chroma format (420, 422, 444, all)
Advanced options:
— disable-asm disable platform-specific assembly optimizations
— enable-debug add -g
— enable-gprof add -pg
— enable-strip add -s
— enable-pic build position-independent code
Cross-compilation:
— host=HOST build programs to run on HOST
— cross-prefix=PREFIX use PREFIX for compilation tools
— sysroot=SYSROOT root of cross-build tree
External library support:
— disable-avs disable avisynth support (windows only)
— disable-swscale disable swscale support
— disable-lavf disable libavformat support
— disable-ffms disable ffmpegsource support
— disable-gpac disable gpac support

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

FFMPEG (1) FFMPEG (1)

НАИМЕНОВАНИЕ

FFmpeg - FFmpeg видео конвертер

СИНТАКСИС

FFmpeg [[Опции_входного_файла] [-i INFILE ]]... {[Опции_выходного_файла] OUTFILE} ...

ОПИСАНИЕ

Как правило, применяются параметры на любой указанный файл.

Таким образом, порядок важен, вы можете использовать одну и ту же опцию в

Командной строке несколько раз. В каждом случае применяются к

Входному или выходному файлу.

* Чтобы установить видео битрейт выходного файла в 64 Кбит / с:

FFmpeg -i input.avi -b 64K output.avi

* Чтобы установить частоту кадров выходного файла до 24 кадров в секунду:

FFmpeg -i input.avi -r 24 output.avi

* Чтобы установить частоту кадров входного файла (действителен только для сырых форматов)

1 кадр в секунду, а частоту кадров выходного файла 24 кадра в секунду:

Ffmpeg -r 1 -i input.m2v -r 24 output.avi

Опции формата могут быть необходимы для входных файлов.

По умолчанию, FFmpeg пытается преобразовать без потерь, в качестве возможного образца он

Использует те же аудио и видео параметры выхода как и у входа.

ВАРИАНТЫ ОПЦИЙ

*Общие опции*

Эти опции доступны из инструментов ffmpeg *.

L Показать лицензии.

H, -?,-help, --help.

Показать справку.

Version

Показать версию.

Formats

Показать доступные форматы.

Поля предыдущего формата имеют следующие значения:

D декодирование доступно

E Кодировка доступна

Codecs

Показать доступные кодеки.

Поля названия кодеков, имеют следующие значения:

D декодирование доступно

E Кодировка доступна

V / A / S

Видео / аудио / субтитров кодек

S кодек поддерживает ломтики

D Кодек поддерживает прямой рендеринг

T кодек может обрабатывать входные усечения в случайных местах, а не

Только в границе кадров

Bsfs

Показать доступных битов фильтров.

Protocols

Показать доступные протоколы.

Filters

Показать доступные libavfilter фильтры.

Pix_fmts

Показать доступные форматы пиксела.

LogLevel LogLevel

Установить уровень ведения журнала используется библиотека LogLevel, число или

Строка, содержащая одно из следующих значений:

Quiet

Panic

Fatal

Error

Warning

Info

Verbose

Debug

Основные опции:

F fmt

Группа форматов.

I файла

Входное имя файла

У Переписать выходной файл.

T Продолжительность

Ограничить транскодирование / захватывание видео последовательности с длительностью,

Которое указываются в секундах. "Чч: мм: [. XXX] SS" синтаксис также поддерживается.

Fs limit_size

Устанавливает предельный размер файла.

Ss позиция

Стремитесь данный момент положение в считанные секунды. "Чч: мм: [. XXX] SS" Синтаксис

Также поддерживается.

Itsoffset

Установите входное смещение по времени в секундах. "[-] Чч: мм: сс ". Синтаксис

Также поддерживается. Этот параметр влияет на все входные файлы, которые

Следовавшие за ним. К смещению добавляется метки из входных

Файлов. Указание положительного смещение означает, что соответствующие

Потоки с задержкой "compensation" секунд.

Timestamp время

Установить метку.

Metadata Значение метаданных <ключ ="значение">

Устанавливает метаданные в паре ключ / значение.

Например, для установки титул в выходной файл:

FFmpeg -i in.avi -metadate Title = "мой титул" out.flv

V число

Установить регистрации уровень подробности.

Target Целевого типа

Укажите целевой тип файла ("VCD", "SVCD", "DVD", "DV", "DV50",

"PAL-VCD", "NTSC-SVCD", ...). Все варианты формата (битрейт,

Кодеков, размер буфера) при этом устанавливается автоматически. Вы можете просто

Указать тип:

FFmpeg -i myfile.avi -target VCD /tmp/vcd.mpg

Тем не менее вы можете указать дополнительные параметры, как вы знаете

Они не конфликтуют со стандартными, как и в:

FFmpeg -i myfile.avi -target VCD -bf 2 /TMP/vcd.mpg

Dframes число

Устанавливает число кадров данных для записи.

Scodec кодек

Группа субтитров кодека ("copy", чтобы скопировать поток).

Newsubtitle

Slang код

Устанавливает код языка ISO 639 (3 буквы) из текущей строки

Потока.

Параметры видео

B битрейт

Устанавливает скорость передачи видео в бит/с (по умолчанию = 200 Кб/с).

Vframes число

Устанавливает число кадров видео для записи.

R fps

Устанавливает частоту кадров (Гц значения, доли или аббревиатура), (по умолчанию =

25).

S размер

Устанавливает размер кадра. Формат WxH (ffserver по умолчанию = 160x128, ТВМ-

Привязки по умолчанию = такие же, как и исходного). Следующие сокращения

Признаны:

SQCIF

128x96

QCIF

176x144

352x288

4CIF

704x576

16cif

1408x1152

QQVGA

160x120

QVGA

320x240

640x480

SVGA

800x600

1024x768

UXGA

1600x1200

QXGA

2048x1536

SXGA

1280x1024

Qsxga

2560x2048

Hsxga

5120x4096

WVGA

8520x480

WXGA

1366x768

WSXGA

1600x1024

WUXGA

1920x1200

Woxga

2560x1600

Wqsxga

3200x2048

Wquxga

3840x2400

Whsxga

6400x4096

Whuxga

7680x4800

320x200

640x350

Hd480

852x480

Hd720

1280x720

Hd1080

1920x1080

Aspect аспект

Устанавливает соотношение сторон (4:3, 16:9 или 1,3333, 1,7777).

Croptop размер

Установить верхний размер группы культур (в пикселях).

Cropbottom размер

Устанавливает нижний размер группы культур (в пикселях).

Cropleft размер

Обрезать левую полосу (в пикселях).

Cropright размер

Установить правильный размер группы культур (в пикселях).

Padtop размер

Установите верхнюю площадку размером группы (в пикселях).

Padbottom размер

Установить нижний размер группы панели (в пикселях).

Padleft размер

Левый размер площадки (в пикселях).

Padright размер

Установить правильный размер группы площадки (в пикселях).

Padcolor hex_color

Установить цвет проложенной полосы. Соотношение padcolor выражается как

Шесть цифр шестнадцатеричного числа, где первые две цифры представляют

Красный, две средние цифры зеленого и последние две цифры синий (по умолчанию

000000 (черный)).

Отключить запись видео.

Bt толерантности

Установите скорость передачи видео (в битах, по умолчанию 4000K). С минимальным и

Максимальным значением: (target_bitrate / target_framerate). В 1-проходном режиме,

Битрейт толерантности определяет, как далеко <битпоток> готов делить

С битрейтом среднее значение цели. Это не связано с

Мин / макс битрейтом. Снижение толерантности слишком негативно влияет

На качество.

Maxrate битрейт

Установить максимальную скорость передачи видео (в бит / с). Требуется что бы

Bufsize быть установлен.

Minrate битрейт

Установить минимальный видео битрейт (в бит / с). Самые полезные в создании кодирования:

FFmpeg -i myfile.avi -b 4000K -minrate 4000k -maxrate 4000K -bufsize 1835k out.m2v

Это мало пользы elsewise.

Bufsize размер

Устанавливает видео буфер верификатор размера буфера (в битах).

Vcodec кодек

Вызовите видео кодек для кодека. Используйте "copy" что бы задать особое значение с

RAW Codec данные должны быть скопированы, как есть.

Sameq

Использование качество видео в качестве источника (подразумевает VBR).

Pass n

Выберите передать номер (1 или 2). Он используется, чтобы передавать видео

Кодировки. Статистика видео записываются в первом

Перейти в лог-файл (см. также опцию -passlogfile), а в

Второй проход, что лог-файл используется для создания видео,

Точное запрошенный битрейт. На проход 1, вы можете просто отключить звук

И установить выход к нулю, примеры для Windows и Unix:

FFmpeg -i foo.mov -vcodec libxvid -pass -an -f rawvideo -y NULL

FFmpeg -i foo.mov -vcodec libxvid -pass -an -f rawvideo -y /dev/null

Passlogfile префикса

Установить двухпроходной имя файла журнала префикса имени файла по умолчанию

Префикс `` ffmpeg2pass"". Полное имя файла будет PRE-

FIX-N.log, где N это номер конкретной в выходной поток.

Newvideo

Добавить новый поток видео на текущий выходной поток.

Vlang код

Установите ISO 639 код языка (3 буквы) текущего видео

Потока.

Функции Advanced Video

Pix_fmt формат

Установить формат пикселей. "list" используется в качестве параметра для отображения

Всех поддерживаемых пиксель форматов.

Sws_flags флаги

Установить SwScaler флаги.

G gop_size

Установить группы размер фотографии.

Intra

Используйте только внутри кадра.

Vdt n

Отмена порога.

Qscale q

Использование фиксированного масштаба видео (VBR).

Qmin q

Минимальный масштаб видео (VBR)

Qmax q

Максимальный масштаб видео (VBR)

Qdiff q

Максимальная разница между квантователя веса (VBR)

Qblur размытия

Видео квантователя масштаб размытия (VBR) (диапазон 0,0 - 1,0)

Qcomp сжатия

Масштаб сжатия видео(VBR) (по умолчанию 0,5). Постоянная

Lmin лямбда

Минимальный коэффициент Лагранжа видео (VBR)

Lmax лямбда

Максимальный видео множитель Лагранжа (VBR)

Mblmin лямбда

Минимальный масштаб квантователь макроблоков (VBR)

Mblmax лямбда

Максимальный масштаб квантователь макроблоков (VBR)

Эти четыре варианта (Lmin, Lmax, mblmin, mblmax) единиц "lambda" использования,

Но вы можете использовать значение постоянной QP2LAMBDA легко конвертировать из "Q"

Единиц:

Ffmpeg -i src.ext-Lmax 21 * QP2LAMBDA dst.ext

Rc_init_cplx сложности

Начальные сложности для прохода одной кодировки

B_qfactor-фактор

Qp фактором между P- и B-кадром

I_qfactor-фактор

Qp фактором между Р- и I-кадром

B_qoffset смещение

Qp смещение между P- и B-кадром

I_qoffset смещение

Qp смещение между Р- и I-кадром

Rc_eq уравнения

Установить курс управления уравнение (по умолчанию = "text ^ qComp").

Rc_override переопределить

Контроль переопределение скорости в определенные промежутки времени

Me_method метод

Установить метод оценки движения к методу. Доступные методы

(От самого низкого до самого лучшего качества):

Zero

Попробуйте просто (0, 0) вектор.

Phods

Epzs

(По умолчанию метод)

Full

Исчерпывающий поиск (медленно и незначительно лучше, чем epzs)

Dct_algo алгоритм

Установить DCT алгоритм. Возможные значения:

0 FF_DCT_AUTO (по умолчанию)

1 FF_DCT_FASTINT

2 FF_DCT_INT

3 FF_DCT_MMX

4 FF_DCT_MLIB

5 FF_DCT_ALTIVEC

Idct_algo алгоритм

Установить IDCT алгоритм. Возможные значения:

0 FF_IDCT_AUTO (по умолчанию)

1 FF_IDCT_INT

2 FF_IDCT_SIMPLE

3 FF_IDCT_SIMPLEMMX

4 FF_IDCT_LIBMPEG2MMX

5 FF_IDCT_PS2

6 FF_IDCT_MLIB

7 FF_IDCT_ARM

8 FF_IDCT_ALTIVEC

9 FF_IDCT_SH4

10 FF_IDCT_SIMPLEARM

Er n

Установить устойчивость к ошибкам n:

1 FF_ER_CAREFUL (по умолчанию)

2 FF_ER_COMPLIANT

3 FF_ER_AGGRESSIVE

4 FF_ER_VERY_AGGRESSIVE

Ec bit_mask

Установить маскировки ошибок в bit_mask. bit_mask маски имеют

Следующие значения:

1 FF_EC_GUESS_MVS (по умолчанию = включено)

2 FF_EC_DEBLOCK (по умолчанию = включено)

Bf кадров

Используйте "frame" B-кадрах (поддерживаются MPEG-1, MPEG-2 и MPEG-4).

Mbd режим

Решения макроблоков

0 FF_MB_DECISION_SIMPLE: Используйте mb_cmp (не может изменить его еще в mmpeg).

1 FF_MB_DECISION_BITS: Выберите один, требующий меньшее количество

Бит.

2 FF_MB_DECISION_RD: соотношение сигнал-шум

Используйте четыре вектора движения на макро блоки (только MPEG-4).

Part

Использование секционирования данных (только MPEG-4).

Bug параметра

Обходить ошибки кодировщика, которые автоматически не обнаружены.

Strict строгости

Как строго следовать стандартам.

Включить расширенные внутри кодирования (h263 +).

Включить Неограниченные векторы движения (h263 +)

Deinterlace

Deinterlace фотографии.

Ilme

Группа поддержки в переплетении кодера (только MPEG-2 и MPEG-4). Используйте

Эту опцию, если входной файл с чересстрочной разверткой или вы хотите сохранить

Чересстрочный формат с минимальными потерями. Альтернативой является

Деинтерлейсинг входного потока с -deinterlace, но деинтерлейсинга

Вводит потерь.

Vstats

Дамп кодирования видео статистики vstats_HHMMSS.log.

Vstats_file файл

Дамп кодирования видео статистики в файл.

Top N

Вверху = 1/bottom = 0/auto =- 1 поле первое

Dc точности

Intra_dc_precision.

Vtag FourCC / теги

Вызовите видео теги / FourCC.

Qphist

Показать QP гистограммы.

Vbsf bitstream_filter

Bitstream_filter являются:

Dump_extra

Remove_extra

Noise

H264_mp4toannexb

Imxdump

Mjpegadump

*Аудио Функции*

Aframes aframes

Установить число кадров аудио записи.

Ar частота

Установите частоту дискретизации звука (по умолчанию = 44100 Гц).

Ab битрейт

Установить аудио битрейт в бит / с (по умолчанию = 64K).

Aq Q

Установите качество звука (кодек конкретных, VBR).

Ac каналы

Установите число аудио каналов (по умолчанию = 1).

An Отключить запись звука.

Acodec кодек

Группа аудио кодек для кодека. Используйте "copy" особое значение для указания

Что RAW Codec данные должны быть скопированы, как есть.

Newaudio

Добавить новую звуковую дорожку в выходной файл. Если вы хотите задать

Параметров, сделать это до надо примерно так: "-newaudio" ("-acodec", "-ab" и т.д..).

Отображение будет сделано автоматически, если количество выходных потоков

Равна числу входных потоков, иначе он будет выбирать до первого совпадения.

Вы можете изменить отображение с помощью "-map"

Как обычно.

Пример:

FFmpeg -i file.mpg -vcodec copy -acodec AC3 -ab 384k test.mpg -acodec MP2

Ab 192K -newaudio

Alang-код

Установите ISO 639 код языка (3 буквы) текущего аудио

Поток.

Advanced Audio вариантов:

Atag FourCC / теги

Группа тэг аудио / FourCC.

Absf bitstream_filter

Bitstream_filter являются:

Dump_extra

Remove_extra

Noise

Mp3comp

Добавлены возможности:

Scodec

Группа кодеков субтитров ("copy", чтобы скопировать поток).

Newsubtitle

Добавить новый поток субтитров на текущий выходной поток.

Alang код

Установите ISO 639 код языка (3 буквы) из текущей строки

Потока.

Sn Отключение записи субтитров.

Sbsf bitstream_filter

Bitstream_filer являются:

Mov2textsub

Text2movsub

Ffmpeg -i file.mov -an -vn -sbsf mov2textsub -scodec copy -f rawvideo sub.txt_

* Аудио / Видео варианты захвата*

Vc канал

Установить канал видео захвата (только DV1394).

Tvstd стандарт

Установите телевизионный стандарт (NTSC, PAL (SECAM)).

Isync

* Дополнительные параметры:*

Map input_stream_id [: sync_stream_id]

Установить поток отображение входных потоков в выходные потоки. Просто enu

Merate входных потоков в порядке, вы хотите их на выходе.

Sync_stream_id если указанные множества входного потока для синхронизации против.

Map_meta_data OUTFILE: INFILE

Перенос мета-данных информации от INFILE в OUTFILE.

Debug

Печатать конкретную информацию отладки.

Benchmark

Показать сравнения информации в конце кодирования. Показывает процессор

Время используются и максимальное потребление памяти. Максимальный объем памяти потребления,

(не поддерживается на всех системах). Если он не поддерживается выдается как 0.

Dump

Дамп каждого входного пакета.

Используется когда нужен сброс пакетов, а также свалки полезной нагрузки.

Bitexact

Используется только немного точные алгоритмы для тестирования кодека.

Ps Размер

Установить RTP размер полезной нагрузки в байтах.

Устройства.

Loop_input

Цикл для входного потока. В настоящее время он работает только для потоков

Изображений. Эта опция используется для автоматического тестирования ffserver.

Loop_output number_of_times

Неоднократные петли выхода для форматов, которые поддерживают циклы, таких как

Аминирование GIF (0 будет петли выхода бесконечно).

Threads кол

Нити

VSync параметр

Видео метод синхронизации:

0 Каждый кадр и его метка передается от демультиплексора на мультиплексор

1 Кадры будут дублироваться и выбрасываться для достижения постоянной частоты кадров.

2 Кадры проходят через свои метки или выбрасываются чтобы предотвратить прохождение 2х

Кадров через одну метку.

1 Выбирает между 1 и 2 в зависимости от возможностей мультиплексора

Вы можете выбрать, из которого потока метки и они должны быть

Приняты. Вы можете оставить либо видео или аудио без изменений и синхронизации

Остальные поток (ов) к неизменным.

Async samples_per_second

Аудио метод синхронизации."Расширяет / сжимает" аудио поток в сеансе метки,

Значение максимального количества отсчетов в секунду, в которые звук изменялся.

Async 1 является частным случаем, где меняется только начальный аудио поток без

Каких-либо последующих изменений

Copyts

Копировать метки от входа до выхода.

Shortest

Готово кодировку при кратчайшие входного потока заканчивается.

Dts_delta_threshold

Timestamp разрыва дельта порога.

Muxdelay секунд

Установить максимальную задержку демультиплексированием-декодирования.

Muxpreload секунд

Установить начальную задержку демультиплексированием-декодирования.

Current файлов

Заданный файл содержит последовательность пары параметр = значение, по одному для каждой

Линии, с указанием последовательности вариантов, которые бы неудобно ложились

В командной строке. Строки, начинающиеся с символа ('#') хэш

Игнорируются и используются для комментариев. Проверьте ffpresets

Каталога в дереве FFmpeg источник примеров.

Текущих файлов указаны с "vpre", "apre", "spre", и "fpre"

Варианты. "Fpre" опция имеет имя файла из предустановленных вместо

Имя шаблона в качестве входных данных и может быть использован для любого вида кодека. Для

"Vpre", "apre", и "spre" опции, параметры, указанные в заданном

Файл применяются для выбранного кодека же типа,

Заданной опции.

Аргумент, передаваемый "vpre", "apre", и "spre" предустановленных параметров

Определяет заданный файл для использования в соответствии со следующими правилами:

Первый FFmpeg поиск файла с именем arg.ffpreset в каталогах

$ HOME / .ffmpeg, и в DATADIR определены во время конфигурации (обычно-

Союзника PREFIX / доли / FFmpeg) в таком порядке. Например, если аргумент

Является "libx264-макс", он будет искать файл libx264-max.ffpreset.

Если такой файл найден, то FFmpeg будет искать файл с именем

Codec_name-arg.ffpreset в вышеупомянутых каталогов, где

Codec_name это название кодека для которых предустановленных параметров файла

Будет применяться. Например, если вы выбираете видео кодек

"-Vcodec libx264" и использовать "vpre-макс", то он будет искать файл

Libx264-max.ffpreset.

@ Якорь {FFmpeg формула оценщика}

FFmpeg формула оценщика

При оценке строку контроля скорости, FFmpeg использует внутренние формулы

По оценке.

Следующие бинарные операторы доступны: "+", "-", "*", "/", "^".

Следующие унарные операторы доступны: "+", "-", "(...)".

Следующие инструкции доступны: "LD", "ST", "а".

Доступны следующие функции:

Sinh (х)

Cosh (х)

Tanh (х)

Sin (х)

COS (X)

Тan (х)

Atan (х)

Asin (х)

Acos (х)

Ехр (х)

Log (х)

Abc (X)

Squish (х)

Gauss (х)

Mod (х, у)

Mах (х, у)

Мin (х, у)

Eq (х, у)

Gte (х, у)

Gt (х, у)

Lte (х, у)

Lt (х, у)

Bits2qp (биты)

Qp2bits (QP)

Следующие константы доступны:

ITex

PTex

FCode

ICount

McVar

AvgQP

QComp

AvgIITex

AvgPITex

AvgPPTex

AvgBPTex

AvgTex

ПРИМЕРЫ

Видео и аудио захвата

FFmpeg можете захватить видео и аудио с устройств при условии, что вы укажете

Формат входных и устройства.

Ffmpeg -f OSS -i /dev/DSP -f video4linux2 -i /dev/video0 /tmp/out.mpg

Обратите внимание, что вы должны активировать права источника видеосигнала и канала до

Запуск ffmpeg с любой телезритель, таких как XawTV (

Sex.org / XawTV />) Герд Knorr. Вы также должны установить аудио записей

ING уровнях правильно с стандартного микшера.

X11 захвата

Ffmpeg -f x11grab -х CIF -i: 0,0 /tmp/out.mpg

Переменная среды.

Ffmpeg -f x11grab -х CIF -i: 0.0 +10,20 /tmp/out.mpg

0,0 представляет display.screen номер вашего сервера X11, так же как DISPLAY

Переменная среды. 10, X-смещение и 20 Y-смещение для

Захват.

Видео и аудио файлов формата преобразования

* FFmpeg можно использовать в любом из поддерживаемых форматов файлов и протоколов в качестве входных данных:

Примеры:

* Вы можете использовать YUV файлы в качестве входных данных:

Ffmpeg -i /tmp/испытание% d.Y /tmp/out.mpg

Она будет использовать файлы:

/ Tmp/test0.Y, / tmp/test0.U, / tmp/test0.V,

/ Tmp/test1.Y, / tmp/test1.U, / tmp/test1.V, и т.д. ..

У файлов использовать в два раза разрешение U и V файлов. Они сырья

Файлов, без заголовка. Они могут быть вызваны все порядочные видео

Декодеров. Вы должны указать размер изображения с S-вариант, если

FFmpeg не может догадаться.

* Вы можете ввести от сырья файл YUV420P:

Ffmpeg -i /tmp/test.yuv /tmp/out.avi

Test.yuv это файл, содержащий сырья плоских YUV данных. Каждый кадр COM-

Поставленные в плоскости Y следуют U и V самолетов на половине вертикальной

И горизонтальное разрешение.

* Вы можете вывести на сырье файл YUV420P:

Ffmpeg -i mydivx.avi hugefile.yuv

* Вы можете установить несколько файлов входных и выходных файлов:

FFmpeg -i /tmp/a.wav -х 640x480 -i /tmp/a.yuv /tmp/a.mpg

Конвертирует аудио a.wav файл и сырья видео YUV файл a.yuv в MPEG

Файл a.mpg.

* Вы также можете сделать аудио-и видео-преобразования в то же время:

Ffmpeg -i /tmp/a.wav -ar 22050 /tmp/a.mp2

Преобразует a.wav аудио MPEG при частоте дискретизации 22050 Гц.

* Вы можете кодировать несколько форматов в то же время и определить карту-

Пинг из входного потока в выходной потоки:

Ffmpeg -i /tmp/a.wav -ab 64k /tmp/a.mp2 -ab 128 /tmp/b.mp2 -map 0:0, 0:0 -map

Преобразует a.wav к a.mp2 при 64 кбит и b.mp2 в 128 кбит. '-map

Файл: индекс "указывает, какие входного потока используется для каждого выхода

Поток, в целях определения выходных потоков.

* Вы можете перекодировать расшифрованы VOB-файлы:

Ffmpeg -i snatch_1.vob -f AVI -vcodec MPEG4 -b 800к -g 300 -bf 2 -acodec libmp3lame -ab 128k snatch.avi

Это типичный пример копирования DVD; вход файл VOB,

Выходной файл AVI с MPEG-4 видео и MP3 аудио. Отметим, что в этом

Команда используется B-кадрах так MPEG-4 поток DivX5 совместимы, и

Республиканская партия размер составляет 300, что означает один внутри кадра каждые 10 секунд

29.97fps видеовход. Кроме того, аудиопоток MP3-кодированных так

Вам необходимо включить поддержку LAME, передав "- включить -libmp3lame" к

Настроить. Отображение особенно полезна для DVD транскодирования в

Получить желаемый язык аудио.

ПРИМЕЧАНИЕ: Чтобы увидеть поддерживаемых входных форматов, использование "FFmpeg-форматов".

* Вы можете извлекать изображения из видео, или создать видео из многих

Изображения:

Для извлечения изображений из видео:

Ffmpeg -i foo.avi -r 1 -s WxH -f -image2 Foo% 03d.jpeg

Это позволит извлечь один кадр в секунду из видео и будет

Выход их в файлы с именем Foo-001.jpeg, Фу-002.jpeg и т.д. Изображения будут

Быть пересчитаны для подходят новые значения WxH.

Если вы хотите извлечь только ограниченное число кадров, можно использовать

Выше команды в сочетании с -vframes или -t вариант, или в ком-

Бинации -ss начать извлечение из определенный момент времени.

Для создания видео из многих изображений:

Ffmpeg -f image2 -i -foo -%03d.jpeg -r 12 WxH foo.avi

Синтаксис "foo-03d.jpeg%" указывает на использование десятичной номер, состоящий

Из трех цифр дополняются нулями, чтобы выразить порядковый номер. Это

Это же синтаксис поддерживается функция Е С, но только форматы

Принимать нормальные целое подходят.

* Вы можете поместить много потоков того же типа, на выходе:

Ffmpeg -i test1.avi -i test2.avi -vcodec copy -acodec copy -vcodec copy

Acodec copy test12.avi -newvideo -newaudio

В дополнение к первым видео и аудио потоков, в результате выхода

Test12.avi файл будет содержать второе видео и второй аудио

Поток найти в списке входных потоков.

"Newvideo", "-newaudio" и "-newsubtitle" варианты должны быть

Указанного сразу после имя выходного файла, в который вы

Хотите добавить их.

ТАКЖЕ

Ffserver (1), ffplay (1) и документации HTML из FFmpeg.