Различия
Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
wiki:ffmpeg [2017/06/10 19:28] [Установка и компиляция FFmpeg на Ubuntu] |
wiki:ffmpeg [2017/06/11 11:38] (текущий) [кодеки и энкодеры для видео, без потерь (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]] \\ | ||
* Для любителей репозиториев, - установка не официального, но рекомендованного разработчиками репозитория: | * Для любителей репозиториев, - установка не официального, но рекомендованного разработчиками репозитория: | ||
Строка 21: | Строка 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 через терминал ===== | ||
Строка 137: | Строка 137: | ||
Сontext < -context > - Используемый кадровый контекст - < 0,1 >, где 0 = small, 1 = large | Сontext < -context > - Используемый кадровый контекст - < 0,1 >, где 0 = small, 1 = large | ||
GOP size < -g > - Размер кадровой GOP-структуры - (по ум. = 1) | GOP size < -g > - Размер кадровой GOP-структуры - (по ум. = 1) | ||
- | Пример: | + | </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)]] \\ | ||
+ | Пример строки кодирования: | ||
+ | <code bash> | ||
ffmpeg -i /home/user/video-in.avi \ | ffmpeg -i /home/user/video-in.avi \ | ||
-vcodec ffv1 -level 1 \ | -vcodec ffv1 -level 1 \ | ||
Строка 148: | Строка 151: | ||
Параметры кодирования, специфичные для третьей версии: | Параметры кодирования, специфичные для третьей версии: | ||
<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 > | ||
Строка 156: | Строка 159: | ||
</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. \\ |