Size: 9886
Comment:
|
Size: 10688
Comment:
|
Deletions are marked like this. | Additions are marked like this. |
Line 74: | Line 74: |
Простые редакторы (cut, crop): * [[http://fixounet.free.fr/avidemux/|avidemux]] * [[http://www.virtualdub.org/|VirtualDub]] (Windows only) * [[https://mpv.io/|mpv]] + юзер-скрипт типа [[https://github.com/Kagami/mpv_slicing|slicing.lua]] Полнофункциональные: * [[https://www.blender.org/|Blender VSE]] * [[http://www.shotcut.org/|Shotcut]] * [[https://kdenlive.org/|Kdenlive]] (Linux only) |
|
Line 83: | Line 94: |
* [[http://keepvid.com/|Скачать видео с ютуба]] * [[https://kagami.github.io/webm.js/|Конвертер 1]] * [[http://video.online-convert.com/convert-to-webm|Конвертер 2]] * [[http://convert-video-online.com/|Конвертер 3]] + [[http://online-video-cutter.com/|Cutter]] (требует флеш) |
Часто задаваемые вопросы WebM-треда в /s/
Данный FAQ подразумевает, что читающий владеет навыками работы с FFmpeg хотя бы на уровне webm-thread wiki. Все нижеследующие ключи относятся к FFmpeg, если не обозначено иное.
Почему консоль?
Преимущество FFmpeg состоит в том, что он предоставляет достаточно низкоуровневый доступ к процессу кодирования, обладая при этом огромным функционалом. Дело не в том, что консольный интерфейс чем-то лучше, а в возможности управлять каждым параметров энкодера, добиваясь максимально качественного результата. GUI, как правило, данной способности лишены и сильно ограничивают гибкость настройки. Развёрнутый ответ.
Рекомендуемый минимальный набор параметров
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 -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), склеивая полученные файлы на уровне демуксера.
При использовании ключа -ss энкодинг начинается не сразу/ключ -to работает некорректно
При использовании ключа -ss после -i, FFmpeg декодирует видео покадрово до указанного момента. Если опции -ss указана перед -i, будут использоваться ключевые кадры, что значительно ускорит процесс. Однако, ключ -to в таком случае начинает работать как -t. Подробнее. Оптимальное решение: использовать -ss перед -i, не использовать -to.
Почему миниатюра чёрная/как сделать превью
Превью не отображается/видео не проигрывается/зелёная полоса по краям/некорректные цвета
Вероятнее всего, используется некорректная цветовая субдискретизация. Следует добавить ключ -pix_fmt +yuv420p
Как вырезать участок видео без перекодирования
Не работает/тормозит перемотка
В libvpx-vp9 по умолчанию нет ограничений на частоту появления ключевых кадров (что экономит битрейт), поэтому в видео с редкими сменами сцен они могут появляться редко, делая перемотку неудобной (эффективная смена позиции в видео возможна только по границам ключевых кадров). Если быстрая перемотка важнее итогового размера, следуется использовать ключ -g. Например, при -g 120 и видео 24 fps, ключевые кадры будут появляеться не реже, чем каждые 5 секунд.
Как прикрепить субтитры
Браузеры не поддерживают софтсаб в формате WebVTT, поэтому единственный переносимый вариант — использовать хардсаб.
Базовый синтаксис: -vf "subtitles=sub.ass" (работает и с файлами типа mkv, mp4)
Для хардсаба на Windows необходимо предварительно настроить Fontconfig
Если в используемой команде FFmpeg ключ -ss стоит перед -i, требуется добавить фильтр setpts со сдвигом на то же число секунд: -vf "setpts=PTS+123/TB,subtitles=sub.ass,setpts=PTS-STARTPTS" (баг)
Если в файле несколько треков с субтитрами, выбрать нужный можно с помощью опции si, например: -vf "subtitles=video.mkv:si=1" (выберет второй трек с субтитрами; индекс относительный и начинается с нуля)
Правила экранирования специальных символов (проще переименовать файл)
На Windows при указании полного пути до файла с субтитрами, следует использовать синтаксис: -vf "subtitles=C\\:/dir/sub.ass" (проще переместить в текущий каталог)
Рекомендуемые настройки ресайза
Mitchell-Netravali (-param0 1/3 -param1 1/3) обеспечивает минимальное количество артефактов ресемплинга, при этом облегчая энкодеру задачу — фильтры типа Lanczos сохраняют слишком много деталей, которые трудно сжимать. См. также:
Бесплатные видео-редакторы
Простые редакторы (cut, crop):
VirtualDub (Windows only)
mpv + юзер-скрипт типа slicing.lua
Полнофункциональные:
Kdenlive (Linux only)
VBR vs CRF
В некоторых случаях 2pass CRF выдаёт чуть лучшее качество, чем 2pass VBR, при том же размере файла. Поэтому на низких битрейтах может иметь смысл подогнать значение ключа -crf под требуемый размер файла. Например: -b:v 0 -crf 30
Онлайн-утилиты
Нативные программы обеспечивают максимальный контроль за процессом кодирования, однако не всегда есть возможность их использовать. Ниже приведены некоторые полезные онлайн-сервисы:
Конвертер 3 + Cutter (требует флеш)