Похожие вопросы

При запуске ' rm-rf` можно ли исключить некоторые подкаталоги?
Как использовать терминал для входа на другой компьютер mac?
Почему я не могу создать символическую ссылку на каталог на том же уровне, что и каталог?
Как запустить скрипт цикла for в фоновом режиме через удаленный хост с помощью ssh?
Как удалить символическую ссылку на каталог?
команда rm: удалить файлы с именами, содержащими скобки
Linux Bash-как узнать, в каком каталоге я на самом деле с символическими ссылками?
Почему git ps1 больше не работает в bash на OSX с MacPorts?
Окно уведомлений
создать keystore файл в CentOS
Разделение архивов tar и их загрузка по одному
grep файл и передать выходные данные в sed и сохранить выходные данные sed в файле
Подсистема Windows для Linux без магазина Windows [дубликат]
Как запустить SAMBA на MAC OS X с терминала?
Как выполнить несколько команд в bash, некоторые в фоновом режиме

Преобразование видео в WebM с помощью ffmpeg/avconv

пока пытаюсь оптимизировать размер моего домашнего видео я преобразовал некоторые из них в WebM в качестве теста, используя Pitivi на Xubuntu. Разница в размера значительно. Полученный webm-файл составляет всего около 10% от исходного файла, в то время как качество изображения выглядит практически одинаково.

Я также попытался сделать преобразование с помощью avconv Так что я мог бы написать сценарий, но получившийся файл выглядит действительно паршиво. После просмотра настроек рендеринга в Pitivi I пробовал некоторые параметры: avconv -i -q 5 -qmin 0 -qmax 63 ${1%.*}.webm, но качество по-прежнему выглядит как дерьмо, поэтому кажется, что я пропускаю/использую неправильные параметры. Кто-нибудь знает, какие правильные параметры использовать для преобразования фильма h264 в webm и получить такое же качество, как от Pitivi?

Это настройки в Pitivi:
creating the Pitivi ProjectRendering to webm (html5 video)codec configuration

5
задан Community
источник

1 ответов

Примечание: эта информация основана на 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 документация дополнительные параметры.

53
отвечен slhck 2017-12-08 11:09:00
источник

Другие вопросы bash ffmpeg webm