Примітка. Ця інформація заснована на кодуванні FFmpeg Wiki для кодування VP9 . Будь ласка, зверніться до цієї статті для отримання додаткової інформації - вона буде постійно підтримуватися та поширюватися. Для найкращих результатів слід скористатись останньою версією ffmpeg
, завантаживши її з їх веб-сайту (достатньо статичної збірки; вона містить 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 Мбіт / с:
ffmpeg -i input.mp4 -c:v libvpx-vp9 -minrate 5M -maxrate 5M -b:v 5M output.webm
Подивіться на вихід і збільшуйте або зменшуйте швидкість передачі бітів на свій смак (або обмеження розміру файлу). Наприклад, ви можете використовувати 500K
or 5M
, et cetera.
Ви повинні вказати -minrate
, -maxrate
і бітрейт -b:v
для того , щоб кодер використовувати CBR. Всі вони повинні мати однакове значення - інакше він вибере інший цільовий бітрейт замість цього і зробить кодування VBR, але з поганою якістю.
Аудіо
Поточним аудіокодеком для кодування VP9 є Opus. FFmpeg вибере необхідний кодер і його параметри за замовчуванням. Якщо ви хочете чітко встановити -c:a libopus
, ви також можете це зробити. Для отримання додаткових варіантів зверніться до libopus
документації .