Size: 483
Comment:
|
Size: 6027
Comment:
|
Deletions are marked like this. | Additions are marked like this. |
Line 1: | Line 1: |
= Частозадаваемые вопросы webm-треда в /s/ = | = Часто задаваемые вопросы WebM-треда в /s/ = |
Line 5: | Line 5: |
=== Медленно кодируется/используется только одно ядро === | |
Line 7: | Line 6: |
=== Превью не отображается/видео не проигрывается/зелёная полоса по краям/кривые цвета === | Все нижеследующие ключи относятся к FFmpeg, если не обозначено иное. === Рекомендуемый минимальный набор параметров === * VP9, умеренное качество, адекватная скорость: {{{ffmpeg -i in.mkv -c:v libvpx-vp9 -b:v ???k -threads 8 -frame-parallel 0 -pix_fmt yuv420p -c:a libopus -b:a 64k -sn -pass 1/2 -y out.webm}}} * VP9, лучшее качество, но медленно: {{{ffmpeg -i in.mkv -c:v libvpx-vp9 -b:v ???k -tile-columns 0 -speed 0 -frame-parallel 0 -pix_fmt yuv420p -c:a libopus -b:a 64k -sn -pass 1/2 -y out.webm}}} * VP8: {{{ffmpeg -i in.mkv -c:v libvpx -b:v ???k -threads 8 -speed 0 -g 9999 -auto-alt-ref 1 -pix_fmt yuv420p -c:a libopus -b:a 64k -sn -pass 1/2 -y out.webm}}} === Медленно кодируется VP9/используется только одно ядро === 1. Убедиться, что присутствует ключ {{{-threads 8}}} (или больше) 2. Убедиться, что используется версия {{{libvpx >= 1.4.0}}} === Процессор всё ещё не полностью загружен при транскодинге в VP9 === libvpx-vp9 [[http://permalink.gmane.org/gmane.comp.multimedia.webm.devel/2339|использует tile-columns multithreading]], поэтому число потоков энкодера зависит от разрешения видео. В общем случае число потоков считается как {{{2^floor(log2((w+63)/256))}}}, где {{{w}}} — ширина итогового видео. Т.е.: * Ширина <=448px = 1 тред * Ширина >448px = 2 треда * Ширина >960px = 4 треда * Ширина >1984px = 8 тредов * Ширина >4032px = 16 тредов и т.д. При этом треды энкодера не обязательно будут загружать ядра на 100% в силу ограничений алгоритмов распараллеливания. Если процессор изрядно простаивает, имеет смысл кодировать видео по частам в отдельных процессах FFmpeg (используя опции {{{-ss}}} и {{{-t}}}), склеивая полученные файлы на уровне демуксера. === Почему миниатюра чёрная/как сделать превью === === Превью не отображается/видео не проигрывается/зелёная полоса по краям/некорректные цвета === Вероятнее всего, используется некорректная [[https://en.wikipedia.org/wiki/Chroma_subsampling|цветовая субдискретизация]]. Следует добавить ключ {{{-pix_fmt yuv420p}}} |
Line 10: | Line 40: |
=== Не работает/тормозит перемотка === В libvpx-vp9 по умолчанию нет ограничений на частоту появления ключевых кадров ([[https://arhivach.org/thread/120883/#1496522|что экономит битрейт]]), поэтому в видео с редкими сменами сцен они могут появляться редко, делая перемотку неудобной (эффективная смена позиции в видео возможна только по границам ключевых кадров). Если быстрая перемотка важнее итогового размера, следуется использовать ключ {{{-g}}}. Например, при {{{-g 120}}} и видео 24 fps, ключевые кадры будут появляеться не реже, чем каждые 5 секунд. === Как прикрепить субтитры === === При использовании ключа -ss энкодинг начинается не сразу/ключ -to работает некорректно === === Рекомендуемые настройки ресайза === Mitchell-Netravali ({{{-param0 1/3 -param1 1/3}}}) обеспечивает минимальное количество артефактов ресемплинга, при этом облегчая энкодеру задачу — фильтры типа Lanczos сохраняют слишком много деталей, которые трудно сжимать. См. также: * https://arhivach.org/thread/120883/#1496241 * http://avisynth.nl/index.php/Resize#LanczosResize * http://www.imagemagick.org/Usage/filter/ * http://www.imagemagick.org/Usage/filter/nicolas/ {{attachment:cubic_survey.gif}} === Бесплатные видео-редакторы === === VBR vs CRF === В [[http://arhivach.org/thread/109411/#1434939|некоторых случаях]] 2pass CRF выдаёт чуть лучшее качество, чем 2pass VBR, при том же размере файла. Поэтому на низких битрейтах может иметь смысл подогнать значение ключа {{{-crf}}} под требуемый размер файла. Например: {{{-b:v 0 -crf 30}}} === Прочие ссылки === * [[https://trac.ffmpeg.org/wiki/Capture/Desktop|Захват видео с экрана]] * [[https://arhivach.org/thread/120883/#1478504|WebM с ютуба]] * [[https://arhivach.org/thread/120883/#1482277|Оптимальные параметры кодирования статичной картинки]] * [[https://arhivach.org/thread/120883/#1477181|Кодирование GIF]] |
Часто задаваемые вопросы WebM-треда в /s/
Почему консоль?
Все нижеследующие ключи относятся к FFmpeg, если не обозначено иное.
Рекомендуемый минимальный набор параметров
VP9, умеренное качество, адекватная скорость: ffmpeg -i in.mkv -c:v libvpx-vp9 -b:v ???k -threads 8 -frame-parallel 0 -pix_fmt yuv420p -c:a libopus -b:a 64k -sn -pass 1/2 -y out.webm
VP9, лучшее качество, но медленно: ffmpeg -i in.mkv -c:v libvpx-vp9 -b:v ???k -tile-columns 0 -speed 0 -frame-parallel 0 -pix_fmt yuv420p -c:a libopus -b:a 64k -sn -pass 1/2 -y out.webm
VP8: ffmpeg -i in.mkv -c:v libvpx -b:v ???k -threads 8 -speed 0 -g 9999 -auto-alt-ref 1 -pix_fmt yuv420p -c:a libopus -b:a 64k -sn -pass 1/2 -y out.webm
Медленно кодируется VP9/используется только одно ядро
Убедиться, что присутствует ключ -threads 8 (или больше)
Убедиться, что используется версия libvpx >= 1.4.0
Процессор всё ещё не полностью загружен при транскодинге в VP9
libvpx-vp9 использует tile-columns multithreading, поэтому число потоков энкодера зависит от разрешения видео. В общем случае число потоков считается как 2^floor(log2((w+63)/256)), где w — ширина итогового видео. Т.е.:
Ширина <=448px = 1 тред
Ширина >448px = 2 треда
Ширина >960px = 4 треда
Ширина >1984px = 8 тредов
Ширина >4032px = 16 тредов
и т.д. При этом треды энкодера не обязательно будут загружать ядра на 100% в силу ограничений алгоритмов распараллеливания. Если процессор изрядно простаивает, имеет смысл кодировать видео по частам в отдельных процессах FFmpeg (используя опции -ss и -t), склеивая полученные файлы на уровне демуксера.
Почему миниатюра чёрная/как сделать превью
Превью не отображается/видео не проигрывается/зелёная полоса по краям/некорректные цвета
Вероятнее всего, используется некорректная цветовая субдискретизация. Следует добавить ключ -pix_fmt yuv420p
Как вырезать участок видео без перекодирования
Не работает/тормозит перемотка
В libvpx-vp9 по умолчанию нет ограничений на частоту появления ключевых кадров (что экономит битрейт), поэтому в видео с редкими сменами сцен они могут появляться редко, делая перемотку неудобной (эффективная смена позиции в видео возможна только по границам ключевых кадров). Если быстрая перемотка важнее итогового размера, следуется использовать ключ -g. Например, при -g 120 и видео 24 fps, ключевые кадры будут появляеться не реже, чем каждые 5 секунд.
Как прикрепить субтитры
При использовании ключа -ss энкодинг начинается не сразу/ключ -to работает некорректно
Рекомендуемые настройки ресайза
Mitchell-Netravali (-param0 1/3 -param1 1/3) обеспечивает минимальное количество артефактов ресемплинга, при этом облегчая энкодеру задачу — фильтры типа Lanczos сохраняют слишком много деталей, которые трудно сжимать. См. также:
Бесплатные видео-редакторы
VBR vs CRF
В некоторых случаях 2pass CRF выдаёт чуть лучшее качество, чем 2pass VBR, при том же размере файла. Поэтому на низких битрейтах может иметь смысл подогнать значение ключа -crf под требуемый размер файла. Например: -b:v 0 -crf 30