Различия
Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия Следующая версия Следующая версия справа и слева | ||
wiki:ffmpeg [2017/06/10 19:20] |
wiki:ffmpeg [2017/06/11 11:14] [кодеки и энкодеры для видео, без потерь (lossless)] |
||
---|---|---|---|
Строка 12: | Строка 12: | ||
Вы также можете обратиться к руководству [[https://trac.ffmpeg.org/wiki/CompilationGuide/Generic|Generic FFmpeg Compilation Guide]], для получения дополнительной информации при самостоятельной компиляции проекта. Эта страница содержит некоторые общие указания, начиная с исходного кода пакета под UNIX и так же его производных. Обратите так же внимание, что основные принципы являются общими для большинства дистрибутивов Linux/Unix и MinGW. \\ | Вы также можете обратиться к руководству [[https://trac.ffmpeg.org/wiki/CompilationGuide/Generic|Generic FFmpeg Compilation Guide]], для получения дополнительной информации при самостоятельной компиляции проекта. Эта страница содержит некоторые общие указания, начиная с исходного кода пакета под UNIX и так же его производных. Обратите так же внимание, что основные принципы являются общими для большинства дистрибутивов Linux/Unix и MinGW. \\ | ||
Разработчики FFmpeg рекомендуют использовать только последние версии п.о. О выходе последней статической сборки (билда) можно узнать на сайте [[http://ffmpeg.org/download.html | FFmpeg.org]] в разделе страницы FFmpeg Releases. На данный момент актуальна версия: [[http://ffmpeg.org/releases/ffmpeg-3.3.2.tar.xz|FFmpeg 3.3.2 "Hilbert"]]. \\ | Разработчики FFmpeg рекомендуют использовать только последние версии п.о. О выходе последней статической сборки (билда) можно узнать на сайте [[http://ffmpeg.org/download.html | FFmpeg.org]] в разделе страницы FFmpeg Releases. На данный момент актуальна версия: [[http://ffmpeg.org/releases/ffmpeg-3.3.2.tar.xz|FFmpeg 3.3.2 "Hilbert"]]. \\ | ||
- | Последний статический билд (сборка), также доступен и для ленивых людей и для тех, кто не владеет навыками сборки пакетов. Статический билд ограничен в элементах и не поддерживает несвободные кодеры. \\ | + | Последний статический билд (сборка), также доступен и для ленивых людей и для тех, кто не владеет навыками сборки пакетов. Статический билд ограничен в элементах и не поддерживает несвободные кодеры. \\ |
+ | Проекты и программы основанные на FFmpeg: [[http://ffmpeg.org/projects.html|FFmpeg-Based Projects]]; FFmpeg WikiStart: [[https://trac.ffmpeg.org/wiki|FFmpeg.org-wiki]]. Альтернативные ссылки на релизы FFmpeg и FFmpeg GUIs/Frontends: [[http://www.videohelp.com/tools/ffmpeg|videohelp.com-ffmpeg]]; FFmpeg-Ubuntu-GUI [[http://zenway.ru/page/tragtor|traGtor]] \\ | ||
* Для любителей репозиториев, - установка не официального, но рекомендованного разработчиками репозитория: | * Для любителей репозиториев, - установка не официального, но рекомендованного разработчиками репозитория: | ||
<code bash> | <code bash> | ||
Строка 20: | Строка 22: | ||
</code> | </code> | ||
Следите за более новыми сборками для репозитория по этой ссылке: [[https://launchpad.net/~mc3man/+archive/ubuntu/trusty-media|Canonical Group Ltd (GB) - launchpad.net]] ... Так же смотрите страницу оригинального сайта ffmpeg.org, в разделе Downloads, для Ubuntu - http://ffmpeg.org/download.html#build-linux ... \\ | Следите за более новыми сборками для репозитория по этой ссылке: [[https://launchpad.net/~mc3man/+archive/ubuntu/trusty-media|Canonical Group Ltd (GB) - launchpad.net]] ... Так же смотрите страницу оригинального сайта ffmpeg.org, в разделе Downloads, для Ubuntu - http://ffmpeg.org/download.html#build-linux ... \\ | ||
- | Проекты и программы основанные на FFmpeg: [[http://ffmpeg.org/projects.html|FFmpeg-Based Projects]]; FFmpeg WikiStart: [[https://trac.ffmpeg.org/wiki|FFmpeg.org-wiki]]. Альтернативные ссылки на релизы FFmpeg и FFmpeg GUIs/Frontends: [[http://www.videohelp.com/tools/ffmpeg|videohelp.com-ffmpeg]]; FFmpeg-Ubuntu-GUI [[http://zenway.ru/page/tragtor|traGtor]] \\ | ||
===== Управление FFmpeg через терминал ===== | ===== Управление FFmpeg через терминал ===== | ||
Строка 112: | Строка 113: | ||
| -inter_matrix | %%<code>%% | Установка матрицы кодирования P,B-кадров (внутренних интер-кадров) для mpeg2video - см. ниже в разделе для mpeg-2 | | | -inter_matrix | %%<code>%% | Установка матрицы кодирования P,B-кадров (внутренних интер-кадров) для mpeg2video - см. ниже в разделе для mpeg-2 | | ||
| -itsoffset | <offset> | Установка задержки одного потока относительно другого - аудио относительно видео, например: ffmpeg -i /home/user/video.mkv -itsoffset 00:00:00.500 -i /home/user/video.mkv -vcodec copy -acodec copy -map 0:0 -map 1:1 /home/user/video_out.mkv - сдвигает (задерживает) аудиопоток относительно видеопотока на 500 миллисекунд. Можно установить минус перед таймкодом, тогда поток аудио будет опережать видео на те же 500 миллисекунд. | | | -itsoffset | <offset> | Установка задержки одного потока относительно другого - аудио относительно видео, например: ffmpeg -i /home/user/video.mkv -itsoffset 00:00:00.500 -i /home/user/video.mkv -vcodec copy -acodec copy -map 0:0 -map 1:1 /home/user/video_out.mkv - сдвигает (задерживает) аудиопоток относительно видеопотока на 500 миллисекунд. Можно установить минус перед таймкодом, тогда поток аудио будет опережать видео на те же 500 миллисекунд. | | ||
- | | -metadata | | Устанавливает метаданные в файл, в паре ключ=значение. Например: FFmpeg -metadata title="мой титул". Для удаления метаданных достаточно выставить title пустым, например: -metadata title="". Актуальны так же следующие опции: artist="артист", album="название альбома", title="название трека", genre="жанр", track="номер трека", date="дата выхода альбома". ffmpeg -i /home/user/audio.wav -metadata artist="Gipsy Kings" -metadata title="Bambolero" -metadata album="Greatest Hits" -acodec libmp3lame -q:a 1 -b:a 128k -f mp3 /home/user/audio.mp3 \\ Дополнительную информацию по опциям < -metadata > можно посмотреть в главе [[http://help.ubuntu.ru/wiki/ffmpeg#%D0%BA%D0%BB%D1%8E%D1%87%D0%B8_%D0%BF%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%80%D0%BE%D0%B2_ffmpeg_%D0%B4%D0%BB%D1%8F_%D0%B0%D1%83%D0%B4%D0%B8%D0%BE|Ключи параметров FFmpeg для Аудио]] параграф 8. Работа с MP3 тегами. | | + | | -metadata | | Устанавливает метаданные в файл, в паре ключ=значение. Например: FFmpeg -metadata title="мой титул". Для удаления метаданных достаточно выставить title пустым, например: -metadata title="". Актуальны так же следующие опции: artist="артист", album="название альбома", title="название трека", genre="жанр", track="номер трека", date="дата выхода альбома". ffmpeg -i /home/user/audio.wav -metadata artist="Gipsy Kings" -metadata title="Bambolero" -metadata album="Greatest Hits" -acodec libmp3lame -q:a 1 -b:a 128k -f mp3 /home/user/audio.mp3 \\ Дополнительную информацию по опциям < -metadata > можно посмотреть в главе [[http://help.ubuntu.ru/wiki/ffmpeg#%D0%BA%D0%BB%D1%8E%D1%87%D0%B8_%D0%BF%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%80%D0%BE%D0%B2_ffmpeg_%D0%B4%D0%BB%D1%8F_%D0%B0%D1%83%D0%B4%D0%B8%D0%BE|кодеки и енкодеры FFmpeg для аудио]] параграф 8. Работа с MP3 тегами. | |
| -target | | Устанавливает тип стандарта видеофайла (VCD,SVCD,DVD,DV,DV50,PAL-VCD,NTSC-SVCD - и т.п.). Все параметры форматов, такие как битрейт, кодеки, размеры буферов и пр. при этом устанавливаются автоматически, соответственно выбранному стандарту. Вы можете просто указать тип. | | | -target | | Устанавливает тип стандарта видеофайла (VCD,SVCD,DVD,DV,DV50,PAL-VCD,NTSC-SVCD - и т.п.). Все параметры форматов, такие как битрейт, кодеки, размеры буферов и пр. при этом устанавливаются автоматически, соответственно выбранному стандарту. Вы можете просто указать тип. | | ||
| -deinterlace | -deinterlace | Включаем опцию деинтерлейсинга. Эта опция устарела, поскольку деинтерлейсинг очень низкого качества. Используйте опцию [[http://ffmpeg.org/ffmpeg-filters.html#yadif|yadif]] из ассортимента видеофильтров ffmpeg: < -vf yadif=value >, смотрите также главу данного мануала [[http://help.ubuntu.ru/wiki/ffmpeg#%D0%BF%D0%BE%D0%BB%D0%B5%D0%B7%D0%BD%D1%8B%D0%B5_%D1%84%D0%B8%D0%BB%D1%8C%D1%82%D1%80%D1%8B_-vf_-af|Полезные фильтры -vf,-af]], параграф 6. Yadif | | | -deinterlace | -deinterlace | Включаем опцию деинтерлейсинга. Эта опция устарела, поскольку деинтерлейсинг очень низкого качества. Используйте опцию [[http://ffmpeg.org/ffmpeg-filters.html#yadif|yadif]] из ассортимента видеофильтров ffmpeg: < -vf yadif=value >, смотрите также главу данного мануала [[http://help.ubuntu.ru/wiki/ffmpeg#%D0%BF%D0%BE%D0%BB%D0%B5%D0%B7%D0%BD%D1%8B%D0%B5_%D1%84%D0%B8%D0%BB%D1%8C%D1%82%D1%80%D1%8B_-vf_-af|Полезные фильтры -vf,-af]], параграф 6. Yadif | | ||
Строка 126: | Строка 127: | ||
Данные настройки необходимы для более точного задания характеристик выходного видео. Желательно использовать, только если вы уже знакомы с основами кодирования, иначе есть вероятность сделать выходное видео только хуже. Но темне менее, для тех кому приступы любознательности и шаловливые ручки не оставляют особого выбора, мы попробуем в данной статье развить вопрос о том, что же такое цифровое видео, кодирование и как с ним работать примененяя опции и возможности консольного кодировщика FFmpeg. Для начинающих рекомендовано сперва ознакомится со статьями: [[http://ru.wikipedia.org/wiki/%D0%92%D0%B8%D0%B4%D0%B5%D0%BE|Видео]]; [[http://ru.wikipedia.org/wiki/%D0%9C%D0%B5%D0%B4%D0%B8%D0%B0%D0%BA%D0%BE%D0%BD%D1%82%D0%B5%D0%B9%D0%BD%D0%B5%D1%80|Медиаконтейнер]]. К тому же, некоторые необходимые ссылки на сопутствующие и полезные статьи, будут указываться в тексте по ходу толкования. Параллельно читайте и изучайте их. \\ | Данные настройки необходимы для более точного задания характеристик выходного видео. Желательно использовать, только если вы уже знакомы с основами кодирования, иначе есть вероятность сделать выходное видео только хуже. Но темне менее, для тех кому приступы любознательности и шаловливые ручки не оставляют особого выбора, мы попробуем в данной статье развить вопрос о том, что же такое цифровое видео, кодирование и как с ним работать примененяя опции и возможности консольного кодировщика FFmpeg. Для начинающих рекомендовано сперва ознакомится со статьями: [[http://ru.wikipedia.org/wiki/%D0%92%D0%B8%D0%B4%D0%B5%D0%BE|Видео]]; [[http://ru.wikipedia.org/wiki/%D0%9C%D0%B5%D0%B4%D0%B8%D0%B0%D0%BA%D0%BE%D0%BD%D1%82%D0%B5%D0%B9%D0%BD%D0%B5%D1%80|Медиаконтейнер]]. К тому же, некоторые необходимые ссылки на сопутствующие и полезные статьи, будут указываться в тексте по ходу толкования. Параллельно читайте и изучайте их. \\ | ||
- | ===== кодеки и энкодеры без потерь (lossless) ===== | + | ===== кодеки и энкодеры для видео, без потерь (lossless) ===== |
[[https://trac.ffmpeg.org/wiki/Encode/FFV1|FFV1]] - означает «FF видеокодек 1», представляет собой видеокодек без потерь внутри кадра. Он может использовать кодирование с переменной длиной слова (vlc) или производить арифметическое кодирование (ac) для энтропийного кодирования. Кодер и декодер являются частью бесплатной библиотеки libavcodec с открытым исходным кодом в проекте FFmpeg с июня 2003 года. \\ | [[https://trac.ffmpeg.org/wiki/Encode/FFV1|FFV1]] - означает «FF видеокодек 1», представляет собой видеокодек без потерь внутри кадра. Он может использовать кодирование с переменной длиной слова (vlc) или производить арифметическое кодирование (ac) для энтропийного кодирования. Кодер и декодер являются частью бесплатной библиотеки libavcodec с открытым исходным кодом в проекте FFmpeg с июня 2003 года. \\ | ||
Строка 144: | Строка 145: | ||
/home/user/video-out.avi | /home/user/video-out.avi | ||
</code> | </code> | ||
+ | Так же по тематике смотрите: [[https://ru.wikipedia.org/wiki/%D0%9A%D0%BE%D0%B4%D1%8B_%D0%93%D0%BE%D0%BB%D0%BE%D0%BC%D0%B1%D0%B0|Коды Голомба]], [[https://ru.wikipedia.org/wiki/%D0%AD%D0%BA%D1%81%D0%BF%D0%BE%D0%BD%D0%B5%D0%BD%D1%86%D0%B8%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B9_%D0%BA%D0%BE%D0%B4_%D0%93%D0%BE%D0%BB%D0%BE%D0%BC%D0%B1%D0%B0|Экспоненциальный код Голомба]], [[https://software.intel.com/ru-ru/blogs/2011/12/28/range-encoding|Интервальное кодирование (Range encoding)]] \\ | ||
__**FFV1 version 3**__ \\ | __**FFV1 version 3**__ \\ | ||
Параметры кодирования, специфичные для третьей версии: | Параметры кодирования, специфичные для третьей версии: | ||
<code bash> | <code bash> | ||
- | Threads < -threads > - Потоки кодирования (нити) - (по ум. = 1) | + | Threads < -threads > - Потоки кодирования (нити) - (по ум. = в зависимости от ядер прецессора) |
Slices < -slices > - Разбиение потока на части при кодировании - допустимо: < 4,6,9,12,16,24,30 > | Slices < -slices > - Разбиение потока на части при кодировании - допустимо: < 4,6,9,12,16,24,30 > | ||
- | Error < -slicecrc > - Детектор/корректор ошибок частей - < 0,1 >, где 0 = включено, 1 = выключено. Опция добавляет информацию CRC на каждый фрагмент (slice). | + | Error < -slicecrc > - Детектор/корректор ошибок частей - < 0,1 >, где 0 = отключено, 1 = включено. Опция добавляет информацию CRC на каждый фрагмент (slice). |
Это позволяет декодеру обнаруживать ошибки в потоке, а не слепо декодировать сломанный срез. | Это позволяет декодеру обнаруживать ошибки в потоке, а не слепо декодировать сломанный срез. | ||
Multi-pass < -pass > - Выставление числа проходов для кодирования - < 1,2 > | Multi-pass < -pass > - Выставление числа проходов для кодирования - < 1,2 > | ||
Строка 155: | Строка 157: | ||
</code> | </code> | ||
- | __**Немного теории - gop**__ \\ GOP Settings – для удобства кодирования видеоданных для кодирования с потерями (lossy) весь видеопоток разбивается на группы, называемые GOP (Group of Pictures - группой изображений) и состоят из I,P,B типов кадров, подробнее [[http://ru.wikipedia.org/wiki/%D0%A2%D0%B8%D0%BF%D1%8B_%D0%BA%D0%B0%D0%B4%D1%80%D0%BE%D0%B2| wiki-Типы кадров ]]. Структуру GOP обычно описывают в виде дроби M/N, для которой: M сообщает общее число кадров в GOP, а N - каким по счету будет очередной P кадр после предыдущего. GOP зависит от выставленного значения M Frames. Если сцены содержат частую смену освещения, быстрое движение, смены цветов, то лучше выбирать более короткую GOP. Для MPEG-2-PAL максимальное значение GOP (Group Of Pictures) - 15 кадров. Например, при импорте видео с GOP = 18 в программу Adobe Encore можно получить ошибку: "Sorry, an abnormal condition has been detected". Для DVD принято использовать структуру 15/3 (IBBPBBPBBPBBPBB) или 12/3 (IBBPBBPBBPBB) - то же самое для закрытого "closed" GOP 13/3 (IBBPBBPBBPBBP) - M=13, N=3. Чем больше длина GOP, тем сильнее сжатие, но увеличение длины GOP уменьшает качество материала. | + | __**Немного теории - gop**__ \\ GOP Settings – для удобства кодирования видеоданных, при использовании энкодеров и кодеков с потерями (lossy), весь видеопоток разбивается на группы, называемые GOP (Group of Pictures - группой изображений), которые состоят из I,P,B типов кадров, подробнее [[http://ru.wikipedia.org/wiki/%D0%A2%D0%B8%D0%BF%D1%8B_%D0%BA%D0%B0%D0%B4%D1%80%D0%BE%D0%B2| wiki-Типы кадров ]]. Структуру GOP обычно описывают в виде дроби M/N, для которой: M сообщает общее число кадров в GOP, а N - каким по счету будет очередной P кадр после предыдущего. GOP зависит от выставленного значения M Frames. Если сцены содержат частую смену освещения, быстрое движение, смены цветов, то лучше выбирать более короткую GOP. Для MPEG-2-PAL максимальное значение GOP (Group Of Pictures) - 15 кадров. Например, при импорте видео с GOP = 18 в программу Adobe Encore можно получить ошибку: "Sorry, an abnormal condition has been detected". Для DVD принято использовать структуру 15/3 (IBBPBBPBBPBBPBB) или 12/3 (IBBPBBPBBPBB) - то же самое для закрытого "closed" GOP 13/3 (IBBPBBPBBPBBP) - M=13, N=3. Чем больше длина GOP, тем сильнее сжатие, но увеличение длины GOP уменьшает качество материала. |
Для рипов DivX, XviD, mpeg4, x264.mkv - используется более свободный и независимый подход в отношении GOP, но тут так же становится важным - не "переборщить". Смотрите также тематическую статью [[http://ru.wikipedia.org/wiki/%D0%9A%D0%B0%D0%B4%D1%80%D0%BE%D0%B2%D0%B0%D1%8F_%D1%87%D0%B0%D1%81%D1%82%D0%BE%D1%82%D0%B0 | wiki-Кадровая частота]] | Для рипов DivX, XviD, mpeg4, x264.mkv - используется более свободный и независимый подход в отношении GOP, но тут так же становится важным - не "переборщить". Смотрите также тематическую статью [[http://ru.wikipedia.org/wiki/%D0%9A%D0%B0%D0%B4%D1%80%D0%BE%D0%B2%D0%B0%D1%8F_%D1%87%D0%B0%D1%81%D1%82%D0%BE%D1%82%D0%B0 | wiki-Кадровая частота]] | ||
- | ===== аналоги ключей ffmpeg для x264 ===== | + | ===== кодеки и энкодеры с потерями (lossy) - аналоги ключей ffmpeg для x264 ===== |
Аналоги основных ключей параметров кодирования ffmpeg для x264. Для просмотра полного списка параметров кодирования кодека x264, следуйте по ссылке в графе таблицы, - это один из лучших мануалов для x264. \\ | Аналоги основных ключей параметров кодирования ffmpeg для x264. Для просмотра полного списка параметров кодирования кодека x264, следуйте по ссылке в графе таблицы, - это один из лучших мануалов для x264. \\ | ||
Строка 306: | Строка 308: | ||
===== ключи параметров ffmpeg для других кодеков формата mpeg-4 ===== | ===== ключи параметров ffmpeg для других кодеков формата mpeg-4 ===== | ||
- | Ключи параметров для кодека MPEG-4 ISO/IEC < -vcodec mpeg4 >. Могут быть совместимы с другими кодеками стандарта [[http://ru.wikipedia.org/wiki/MPEG-4|MPEG-4]] - DivX, XviD, Quicktime. Так же смотрите здесь - [[https://trac.ffmpeg.org/wiki/Encode/MPEG-4|ffmpeg-wiki-MPEG-4]]. Некоторые из ключей могут быть применимы для x264. FFmpeg использует по умолчанию часть стандарта MPEG-4, именуемую как Advanced Simple Profile (ASP), или иначе - MPEG-4 Part 2 (Visual), или иначе - ISO 14496-2 (Видео), которого так же придерживаются XviD и DivX) \\ | + | Ключи параметров для кодека MPEG-4 ISO/IEC < -vcodec mpeg4 >. Некоторые из этих ключей могут быть совместимы с другими кодеками стандарта [[http://ru.wikipedia.org/wiki/MPEG-4|MPEG-4]] - DivX, XviD, Quicktime. Так же смотрите информацию здесь - [[https://trac.ffmpeg.org/wiki/Encode/MPEG-4|ffmpeg-wiki-MPEG-4]]. Некоторые из ключей могут быть применимы для x264. FFmpeg использует по умолчанию часть стандарта MPEG-4, именуемую как Advanced Simple Profile (ASP), или иначе - MPEG-4 Part 2 (Visual), или иначе - ISO 14496-2 (Видео), которого так же придерживаются XviD и DivX) \\ |
**MPEG4 ISO/IEC:** | **MPEG4 ISO/IEC:** | ||
^Ключ^ Описание ^По умолчанию^ | ^Ключ^ Описание ^По умолчанию^ | ||
Строка 453: | Строка 455: | ||
| -apre <preset> | Установка указанного пресета для аудиодорожки | | | -apre <preset> | Установка указанного пресета для аудиодорожки | | ||
| -aframes <number> | Установка количества кадров аудиозаписи. Эта опция является псевдонимом с опцией < -frames:a > | | | -aframes <number> | Установка количества кадров аудиозаписи. Эта опция является псевдонимом с опцией < -frames:a > | | ||
+ | |||
+ | ===== кодеки и енкодеры FFmpeg для аудио ===== | ||
__**1. [[http://ru.wikipedia.org/wiki/WAV|Audio Encoders. Waveform Audio File Format]]**__ \\ | __**1. [[http://ru.wikipedia.org/wiki/WAV|Audio Encoders. Waveform Audio File Format]]**__ \\ |