Если мы часто снимаем видео, то столкнемся с дилеммой: видеофайлы слишком велики и требуют много места для хранения. Если вы напрямую используете инструмент сжатия видео для сжатия битрейта, вы будете беспокоиться о потере качества видео. Что делать?
В настоящее время мы можем использовать функцию кодирования hevc ffmpeg для достижения сжатия без потерь!
FFmpeg — известная в отрасли программа обработки изображений и видео с открытым исходным кодом. Он широко используется во многих программах для редактирования видео и обработки изображений, а также в программах для вещания, таких как OBS.
Среди форматов MP4, которые мы обычно используем, обычно используется формат кодирования H.264. Он был официально выпущен в 2003 году и широко используется в различных случаях.
Десять лет спустя, в 2013 году, была официально выпущена кодировка HEVC. HEVC — это аббревиатура высокоэффективного видеокодирования, также известная как H.265. По сравнению с H.264 он имеет более высокую степень сжатия. При одинаковом качестве изображения формат кодирования HEVC может сэкономить от 25% до 50% дискового пространства. Поэтому для видеофайлов, размер которых зачастую составляет несколько ГБ, для архивирования и хранения целесообразнее использовать кодировку HEVC.
По сравнению с H.264, формат кодирования HEVC требует больше аппаратных ресурсов в процессе кодирования и декодирования. Грубо говоря, скорость ниже. Поэтому, если на вашем компьютере нет хорошей видеокарты с поддержкой аппаратного ускорения формата HEVC, ваше видео будет сжиматься с очень медленной скоростью, и при воспроизведении могут возникнуть задержки.
А поскольку формат HEVC не так популярен, как H.264, история которого насчитывает почти 20 лет, некоторые программы воспроизведения не могут его воспроизвести. Но в ближайшем будущем эта проблема перестанет быть проблемой.
первый,мы открываемFFmpegофициальный сайтhttps://ffmpeg.org Затем нажмите кнопку «Загрузить», чтобы перейти на страницу загрузки и загрузить соответствующую версию. Затем установите его на свой компьютер. Windows также необходимо добавить каталог установки в переменные среды.
FFmpeg — это программа, имеющая только интерфейс командной строки, поэтому запускать ее нужно в консоли вашего компьютера.
В Windows нажмите Win+R на клавиатуре, а затем введите cmd, чтобы открыть интерфейс командной строки.
Введем в консоли следующую команду:
ffmpeg -h
Затем ffmpeg выведет справочную информацию. Поскольку информация на английском языке, чтобы ее прочитать, потребуется немного терпения. Вот два справочных сообщения, связанных с нашими целями:
Это информация о кодере и декодере, а затем мы можем ввести следующий код, чтобы просмотреть параметры кодера и декодера соответственно:
ffmpeg -decoders
ffmpeg -encoders
ffmpeg -codecs
Мы обнаружим, что выводится куча информации, которая нас ослепляет. Да, FFmpeg очень мощный и поддерживает множество кодеков.
Для сжатия мы используем библиотеку libx265 FFmpeg, для чего требуется всего несколько простых шагов:
По соображениям безопасности мы сначала копируем видео, которое нужно сжать, в новую папку, чтобы предотвратить потерю данных из-за неправильной эксплуатации. Затем откройте консоль в новой папке (под Windows для входа в соответствующую папку нужно использовать команду cd).
Затем мы создаем новую папку в папке с названием «Вывод». Видео, которое мы выведем позже, будет храниться в этой папке.
На данный момент папка должна выглядеть так:
Далее давайте изучим, как использовать ffmpeg для сжатия видео.
Мы можем использовать следующий формат команды для выводаВизуально без потерьвидео:
ffmpeg -i Введите имя файла -c:v libx265 -x265-params crf=18 имя выходного/выходного файла.mp4
Для файла на рисунке выше команда выглядит следующим образом:
ffmpeg -i demo.mp4 -c:v libx265 -x265-params crf=18 output/demo_1.mp4
Затем, после периода ожидания, мы видим результаты!
Слева — исходное видео, справа — сжатое видео. Мы видим, что это экономит 29,6% места! Более того, после моего тестирования визуально качество изображения двух видеороликов практически одинаковое.
Здесь мы объясним значение вышеуказанных настроек параметров. crf — константа Rate аббревиатура фактора,Чем меньше его значение, тем выше качество изображения и тем больше места оно занимает.Его варианты:0~51,По умолчанию — 28. Когда crf ниже 20.,Это может обеспечить отсутствие визуальных потерь.
также,FFmpeg также предоставляет нам некоторые предустановленные параметры. Мы можем быстро установить параметры, используемые при кодировании x265, с помощью предустановленной опции.
Параметры предустановок расположены в порядке от быстрой до медленной скорости кодирования следующим образом:
ultrafast
superfast
veryfast
faster
fast
medium
slow
slower
veryslow
placebo
Чем медленнее скорость кодирования, тем лучше эффект сжатия и качество изображения. Параметр по умолчанию для предустановленной опции — средний.
Вывод видео без визуальных потерь с максимальным эффектом сжатия
ffmpeg -i Введите имя файла -c:v libx265 -x265-params crf=18:preset=placebo имя выходного/выходного файла.mp4
Для видео выше мы можем использовать следующую команду сжатия:
ffmpeg -i demo.mp4 -c:v libx265 -x265-params crf=18:preset=placebo output/demo_2.mp4
Сравнение размеров до и после сжатия выглядит следующим образом:
Хотя на этот раз размер уменьшен всего на 13,1%, при просмотре видео невооруженным глазом очевидно, что качество видео ничем не отличается от исходного видео.
Рассчитанное таким образом видео размером 1 ГБ может сэкономить 131 МБ пространства при использовании сжатия без потерь высочайшего качества! Все равно очень впечатляет!
Поскольку описанный выше метод может сжимать видео только одно за другим,Для этого я просто написалpythonСкриптДля завершения функции автоматического сжатия всех видео в папке。
После установки Python и ffmpeg на ваш компьютер,Вы можете запустить этоСкрипт。Затем,существоватьСкриптМестосуществоватьизпапка Создано подinputпапки иoutputпапка。и сжатьвидеоместосуществоватьinputпапка Вниз。бегатьpythonСкриптпосле,начну сжимать видео,Выходные файлы помещаются в выходную папку.
СкриптЯ загрузил его на GitHub:https://github.com/fslongjin/Utility-gadgets/tree/main/cv/batch_transcode2HEVC
FFmpeg очень мощный и выходит далеко за рамки сжатия видео. Его функции еще предстоит изучить. Заинтересованные студенты могут проверить официальные документы и учебные пособия на официальном сайте FFmpeg, чтобы получить больше знаний ~
ПерепечаткаПожалуйста, укажитеисточник:https://longjin666.cn/?p=1443