Примечание: эта информация основана на ffmpeg Wiki на VP9 кодировка. Пожалуйста, обратитесь к этой статье для получения дополнительной информации – она будет постоянно сохраняться и расширяться. Для достижения наилучших результатов, вы должны использовать последние версии ffmpeg
by загрузка с их сайта (статической сборки будет достаточно, она содержит libvps-vp9
энкодер).
Переменная Скорость
кодировка VBR дает вам оптимальное общее качество, в виду того что шифратор может свободно выбрать сколько битов назначить к рамке. Выберите этот режим, если вы не готовите видео для потоковой передачи с постоянным битрейтом.
Вариант 1: кодирование постоянного качества
как правило, если вы не хотите ориентироваться на определенный размер файла, вы должны позволить битрейту свободно меняться, так как это приведет к самому высокому качеству. Вы можете сделать это, установив скорость до 0 и постоянный коэффициент (CRF) до целевого уровня качества:
ffmpeg -i input.mp4 -c:v libvpx-vp9 -crf 30 -b:v 0 output.webm
значение CRF может быть от 0-63. Более низкие значения означают лучшее качество. Рекомендуемые значения находятся в диапазоне от 15-35, 31 рекомендуется для 1080p HD видео. Google имеет руководство с подробнее.
Вариант 2: двухпроходное кодирование с целевым битрейтом
если вы хотите, чтобы ваш файл имел определенный целевой битрейт или размер файла, вам нужно указать скорость и использовать два прохода кодирование (которое обеспечит оптимальное распределение качества). Здесь мы выбираем 5 Мбит / с, которых должно быть достаточно для 1080p контента.
ffmpeg -i input.mp4 -c:v libvpx-vp9 -b:v 5M -pass 1 -f webm /dev/null && \
ffmpeg -i input.mp4 -c:v libvpx-vp9 -b:v 5M -pass 2 output.webm
пользователи Windows должны использовать NUL
вместо /dev/null
и ^
вместо \
.
Постоянная Скорость
прежде всего, libvpx предлагает постоянный битрейт и переменный битрейт режимы кодирования. Постоянный битрейт следует избегать, когда это возможно (если вы не нацелены на конкретный файл размер или потоковый сценарий), так как среднее качество на размер файла будет хуже. Тем не менее, вы можете попробовать установить постоянный битрейт, если больше ничего не работает, например, с 1 MBit/s:
ffmpeg -i input.mp4 -c:v libvpx-vp9 -minrate 5M -maxrate 5M -b:v 5M output.webm
посмотрите на результат и увеличьте или уменьшите скорость передачи по своему вкусу (или ограничения размера файла). Например, можно использовать 500K
или 5M
и так далее.
необходимо указать -minrate
,-maxrate
и битрейт -b:v
для кодировщика для использования CBR. Они все они должны иметь одинаковое значение-в противном случае он будет выбирать другой целевой битрейт и кодировать VBR, но с плохим качеством.
Audio
текущий аудиокодек для кодирования VP9-Opus. FFmpeg выберет необходимый кодировщик и его опции по умолчанию. Если вы хотите явно задать -c:a libopus
, вы можете сделать это также. Обратитесь к libopus
документация дополнительные параметры.