Vlc не может декодировать формат vp09

Обновлено: 07.07.2024

VLC не проигрывает файл mkv с кодеком H.264 (V_MPEG4/ISO/AVC по данным утилиты Mediainfo).

VLC под Windows и Ubuntu проигрывает без проблем.

При попытке проиграть в GUI пишет ниже следующее:

Ocean

New member

Разобрался в чём проблема.

В Astra Orel 2.12 используется репозиторий со старым софтом (от Debian 9).

Для корректного проигрывания MPEG4/H.264 (в моём случае) нужно использовать библиотеки libvaformat58, а в Astra Orel 2.12 версия 57.

В версии Astra Orel 2.13 уже используется репозиторий от Debian 10 и там нужная версия библиотек и всё корректно проигрывается, но 2.13 это пока эксперементальная версия и думаю в продакшен её не стоит.

Montfer

New member
некоторые пакеты из дебиан 10 ставятся на орла 2.12. если подключить репозиторий, установить только нужную библиотеку и отключить?
да, при установке libavformat58 будет удалена библиотека ia32-lib, что может привести к каким то последствиям в будущем

Ocean

New member
некоторые пакеты из дебиан 10 ставятся на орла 2.12. если подключить репозиторий, установить только нужную библиотеку и отключить?

Пока для себя решил вопрос установкой snap пакета VLC. Тормозно, избыточно но работает.

Печально, что в Астре такой древний софт. но другой дистр использовать не могу.

Montfer

New member

Пока для себя решил вопрос установкой snap пакета VLC. Тормозно, избыточно но работает.

Печально, что в Астре такой древний софт. но другой дистр использовать не могу.

у меня не возникло проблем: отключил репозиторий орла, подключил - дебиан 10. установил только библиотеку. потом отключил репозиторий дебиана. никаких проблем с зависимостями не возникло

Ocean

New member
у меня не возникло проблем: отключил репозиторий орла, подключил - дебиан 10. установил только библиотеку. потом отключил репозиторий дебиана. никаких проблем с зависимостями не возникло

Да, попробовал на свежеустановленном Орле. Тоже смог поставить libavformat58 но VLC всё равно подхватывает версию 57.

Поставил весь VLC из репозитория Debian 10. Вроде всё Ок, видео начинает проигрывать, но Атсра постоянно вываливается в окно авторизации с запросом логина и пароля.

Например открываю "Мой компьютер" или пытаюсь просмотреть видео, рабочий стол закрывается и открывается окно авторизации с запросом логина и пароля.

Или Астра глючит на VMware или новая VLC при установке сломала какие-то библиотеки.

Вообще не один плеер не проигрывает видео, уже полазил куча бреда по устанавливал и всё равно не работает!



Пишет если через терминал:


это часть ffmpeg.

Поставь ffmpeg и посмотри будет ли проигрываться

Jopich1 ☆ ( 02.12.18 22:44:59 )
Последнее исправление: Jopich1 02.12.18 22:45:37 (всего исправлений: 2)


Что не помогло? ffprobe где?

В Suse VLC из-за американских законов не умеет декодировать собственнические форматы вроде H.264, который обычно бывает в контейнерах m4v. Ставь VLC из репозитория packman.


Та и установил этот репозиторий, только как поставить с него хз, уже по на устанавливал всего и нечего не помогает

В сузе выпилили яст ?


Меня бы любой плеер устроил, главное что бы показывало, но не работает не на одном: mpv (выключается как только добавлю) gragon (не реагирует) smplayer


Он там как то не так уже работает!


Как в нем установить правильно?


Через яст пробовал короче нечего не меняется! Проблема еще в том, что во всех видеоплеерах не работает вообще не одно мое видео!


В VLC только звук слышно и все !


Все решено, надо было поставить vlc-codecs в YaST2 поставил!

Мультимедиа пакеты надо тоже на packman репозиторий перевести.

Во вторых почитай инструкции ОпенСусе, как ставить пакеты из разных источников.

И в третьих - вообще привыкни читать, перед тем как писать. Читать и думать.


Если тебе не нравится, не читай!



Там только когда понял, тогда пробовал, но только помогло vlc-codecs


> Там только когда понял, тогда пробовал

Я тебя не понимаю

> но только помогло vlc-codecs

Я рад, что всё наконец-то работает. Советую также сделать так, как на картинке. Кстати, на картинке Qt-интерфейс YAST. А в GTK-интерфейсе такого может не быть

Годы идут, ничего не меняется.

Свали уже на винду, всем только лучше от этого станет.


Давай совет тем кто этого просит!

У меня на Linux Mint 18 (Ubuntu 16.04 LTS) была такая же проблема - все плееры, включая VLC, в лучшем случае воспроизводили только звук и не могли декодировать любое видео. Оказалось дело в драйверах видеокарты NVidia. Стояли 380-какие-то, откатился на версию 340 и все заработало как положено. Может поможет кому.


Доброго времени суток!
Я уже как почти пол года обладатель игрового ноутбука ASUS TUF GAMING. Его характеристики выглядят следующим образом:
Ryzen 5, 8GB, GTX 1650 + Vega 8
На производительность совсем не жалуюсь, но вот есть один нюанс.
Я себе брал ноут ради игры Dead By Daylight, ну и многих других в догонку, ведь с 2012 ни во что не играл. Так получилось. Теперь навёрстываю.
Дёрнуло меня заливать катки DBD в YouTube. поскольку не то, что считаю себя скилловым, скорее просто интересно и грамотно держусь в той или иной ситуации.
Вообще, начальная идея в том, чтобы катки заливать в YouTube и людям потом кидать ссылки.Неожиданно радовать их, да и вообще, на память.
Мой экран - Full HD, и на большее чем 1080р запись через Shadow Play мне не надеяться.
Вижу, исходник хорош, ну очень хорош. Ни одного пикселя, ни одной подтёкшей архитектурки. Что же на деле - YouTube даёт ролику кодек avc1, и, что примечательно, даже на настройках 1080р жуткие просадки, ну, очень некачественная картинка, кардинально отличительная от исходника, который я записывал в 1080р 60 fps и битрейтом 50. Я пытался записывать через shadow play и в 2К и в 4К, он всё равно мне 1080р только записывает, хулиган какой.
Загуглив, в общем, это дело, я выяснил, что ролики придётся рендерить. Как же неприятно я был удивлён, когда vegas pro 13 показал мне, что потребуется 4 часа на 20-минутный ролик. Я подглядел с ютуба как и что надо настроить, после чего, да, увидел 4 часа. Ну, думаю, нафиг оно надо. Это же нереальная нагрузка процессора и видеокарты, ведь так?
Посмотрел как выглядят ролики на телефоне - почти как исходник. Я не понимаю почему.
На телефоне - темно, но нормальное качество, на ноутбуке - светло и пиксельно.
Снёс 13-ый Вегас. Качал его, вроде, на rutor
Надо ставить 15 или 16, либо Adobe Premiere, либо movavi. Дело лишь за их поисками.
Кореш на работе говорит:" я знаю только два нормальных трекера, это - nnmclub и rutracker, а про твой rutor я первый раз слышу."
Ну зашёл я на этот nnm, ассортимент от рутора ничем не отличается. Тоже где-то у кого-то вирусы поймало, где-то что-то ещё не работает.
На YouTube тоже этих роликов с ссылками хватает. Не знаю кому верить.
Кто-то разбирается из вас? Могли бы помочь советом, что делать конкретно сейчас? Что лучше и сколько времени, нагрузки на процессор и видеокарту займёт процесс рендеринга?
Мне просто нужно добиться кодека vp09. Разница между исходником и тем, что загружается на YouTube - нереальная. 1080p на ютубе нагло сожран, зажат и пережат чуть ли не шакально.
Видео я могу скинуть, конечно, это не обсуждается. Сравнить с тем что на смартфоне тоже не составит труда.


george-92 написал:
. кардинально отличительная от исходника, который я записывал.


Ютуб пережимает видео для экономии места - в зависимости от качества и разрешения заливаемого видео будет больший или меньший пережим. От разрешения так же зависит в каком качестве потом будет залитое видео доступно - чем оно выше, тем у видео на выходе будет больший битрейт. Может перекодирование в VP9 немного и улучшит ситуацию, но если это занимает столько времени, нужно ли оно, с учётом того что Ютуб всё равно качество "порежет"?

. пытался записывать через shadow play и в 2К и в 4К, он всё равно мне 1080р.


Если в игре разрешение 1080р а записать видео в 4К - качество не будет значительно лучше, получится "растягивание" более низкого разрешения на более высокое. Поставить в какой-нибудь игре разрешение ниже чем у монитора и будет примерно так же - чем больше разница в разрешениях, тем хуже качество изображения.


SonyK_2
Я таки вчера зарендерил, и стало намного лучше. Хоть и микро-пиксели есть, в основном они почему-то только на персонаже, окружение чистое. Но насколько я понял, так и не дало мне vp09


george-92
Попробуй записывать через obs, если не даст поставить 4к, включай dsr, ставь разрешение моника 4 к, в настройках обс тоже 4 к, применяй сохраняй, выходи. Убирай dsr, все ты можешь гейплей записывать в 4к.
Можно так же и стримить в 4к.


george-92
Через OBS всё спокойно апскейлится до любого разрешения. Для vp09 достаточно 2к разрешение. Обработка ролика на YouTube занимает около 2-3 дней


dilat
Lex-one
Стоило подождать и ютуб дал заветный кодек и 1440р.
Вообще, лучше чем было раньше
вот результат :


Какой ужас давал ютуб до этого, тоже на канале. Полностью переделаю. Уже понятно как рендерить.

Open-SUSE . RU - Русскоязычное сообщество пользователей дистрибутива openSUSE

Вы здесь

Аватар пользователя Nika-7

Доброго времени суток.

Во первых хочу сказать, что я вернулась.
Сюда и на СуСи. Соскучилась по вам., и ОС красивая.

У меня возникла проблема с VLC - поставила быстрым способом через Yast и теперь VLC
запускается и не воспроизводит видео.
просто пишет, что он не поддеоживает формат.

Хотя в 11,2 все работало.
Я знаю, что ответ на поверхности, но я его пока не вижу..
Подскажите мне пожалуста!

  • 9383 просмотра
  • Войдите или зарегистрируйтесь, чтобы отправлять комментарии

Аватар пользователя lecksys

в других плеерах пробывали?



Профессиональный тролль. Работаю за еду.

Аватар пользователя Nika-7

кофеин тоже не работает.
Но у меня стоит репозитарий VLC и он устанавливался с библиотеками.

Аватар пользователя alv

Скорее всего не установился кодек для данного формата, как-то у меня такое было. А кстати, какой именно формат не хочет поддержать?
Можно поискать нужный кодек в репозиториях.
Но я обычно ставлю Mplayer - практически всегда он вытягивает всё необходимое как зависимости.

Алексей Федорчук aka alv

Аватар пользователя CyberDaemon

Аватар пользователя alv

а VLC его разве не тянет за собой? Mplayer тянет

Алексей Федорчук aka alv

Аватар пользователя Nika-7

Раньше все это проигрывалось VLC
Устанавливалось"В один клик" может действиельно нет этих кодеков.

А какие нужно поставить и откуда?

Аватар пользователя alv

По идее всё это хозяйство должно быть в нём. Или поищите по "домашним" каталогам.
У меня навскидку в OBS нашлось такое:

h264enc is an advanced and powerful interactive menu-driven shell script written for the GNU/Linux

Логично предположить, что раз существует кодер, должен быть и декодер

Алексей Федорчук aka alv

Аватар пользователя Nika-7

У меня есть
libx264-128 - A free h264/avc encoder - encoder binary
x264 - X264 - a free h264/avc encoder
vlc - VLC - Video Lan Client
vlc-qt - VLC: VideoLAN Client - Qt interface
vlc-noX - VLC: VideoLAN Client - without X dependencies
vlc-gnome - VLC: VideoLAN Client - Gnome Access Modules
vlc-aout-pulse - VLC Audio Out for Pulse Audio
libvlccore5 - Shared library libvlc
libvlc5 - Shared library libvlc

MP4 проигрывается без изображения

Аватар пользователя taib

Пришлось поставить mplayer для просмотра, дело в том что до какого то момента работал VLC а потом перестал с ошибкой "VLC не поддерживает аудио или видео формат "mp4v". Тот же фильм выводится через mplayer без ошибок.

openSUSE 12.2 Linux desktop 3.4.6-2.10-desktop

Аватар пользователя Nika-7

mplayer работает, но мне очень непривычно и неудобно.

Очень хочу вернуть VLC

Аватар пользователя piker

Попробуйте через YaST его (VLC) переустановить.

Аватар пользователя alv

Вообще-то у mplayer'а есть много графических морд - от простейшего gmplayer'а до всяких навороченных, типа как нынче с ROSA продвигается. Думаю, что среди них можно найти и подобие VLC. Разве что интерфейс последнего оскорбляет эстетическое чувство пользователей mplayer'а
Ну а результат Вы видите сами - mplayer работает, VLC - не всегда.

Алексей Федорчук aka alv

Аватар пользователя Vlad60

попробуйте установить VLC media player for openSUSE,но при этом лучше сделать это через YAST ,чтобы установились все библиотеки

640 КБ должно быть достаточно для каждого. (Билл Гейтс, 1981 г)

Аватар пользователя Nika-7

Аватар пользователя barnsky

Аватар пользователя Vlad60

Проверьте,чтобы libavcodec54,liavdevice54,liabvfilter3,libavformat54,libavutil51,libvlc5,libvlccore5,libx264-125,libvlccore4,x264,ну и на всякий случай ffmpeg ,были установлены из этого-же репозитория

640 КБ должно быть достаточно для каждого. (Билл Гейтс, 1981 г)

Аватар пользователя Nika-7

Из них я и ставила первый раз

Аватар пользователя slawdos

oS Leap 42.1x64KDE

Morpheus, i know linux.

Аватар пользователя Nika-7

В VLC есть только звук, в кофеине вообще ничего.
Поставила все обновления, съелось 1,5 Гб диска
Толка нет

Прямо виндос какой то получился
Я имею ввиду всю эту кучу ненужных пакетов

Теперь вопрос в другом - как их удалить?
Так не хочется переустанавливать Суси заново

Аватар пользователя slawdos

Сомневаюсь что Вы знаете какие пакеты можно удалять. Лично я устанавливаю только _нужные_ исправления. А так все удаляется через yast.

На Вашем месте я бы переустановил все таки. Чему-то да новому научитесь.

зыЖ Лично я переустанавливаю регулярно, так как экспериментирую с системой.
зыыЖ Кстати кодеки поставили по моей ссылке?

oS Leap 42.1x64KDE

Morpheus, i know linux.

Аватар пользователя aliaksei1818

Неплохо бы взглянуть:
vlc -v /путь/до/mp.4
На основе своего выхлопа:

aliaksei@dhcppc0:> vlc -v Prodigy\ Omen.mp4
VLC media player 2.0.2 Twoflower (revision 2.0.1-453-g40d9fef)
[0x8faf200] dbus interface: listening on dbus as: org.mpris.MediaPlayer2.vlc
[0x8fb0cf0] main interface error: no suitable interface module
[0x8f8e3f0] main libvlc error: interface "globalhotkeys,none" initialization failed
[0x8f8e3f0] main libvlc: Запуск vlc с интерфейсом по умолчанию. Используйте 'cvlc' для запуска vlc без интерфейса.
[0xb24fd700] faad decoder warning: decoded zero sample
[0xb2405d50] avcodec decoder warning: disabling direct rendering
.
Могу предположить:
zypper in libavcodec *faad2

Аватар пользователя Vlad60

zypper in -r VLC -f libavutil51 libx264-125 x264


и вывод (только то что выделено будет цветом)
vlc -vvv --color --no-plugins-cache --list
P.S.Сейчас проверил,если удалить libavutil51 то VLC не воспроизводит mp4,вернее есть только звук и ошибка

No suitable decoder module:
VLC does not support the audio or video format "h264". Unfortunately there is no way for you to fix this.

640 КБ должно быть достаточно для каждого. (Билл Гейтс, 1981 г)

Аватар пользователя aliaksei1818

Аватар пользователя DA

Ну у меня в vlc без шаманства звука нет, дык и что? Юзаю smplayer и не парюсь. Vlc - комбайн, причём плохой комбайн: много чего умеет, но везде какие-то мелкие косяки постоянно.

Аватар пользователя barnsky

Что-то похожее у меня было, собрал дрова криво на видюху.
Кстати, у меня плеер показывает, а ошибки похожие :
( barnsky@amd:

> vlc -v /home/barnsky/HIT2/Video/Скайлайн.mp4
VLC media player 2.0.2 Twoflower (revision 2.0.1-453-g40d9fef)
[0x118cc28] main interface error: no suitable interface module
[0x1176178] main libvlc error: interface "globalhotkeys,none" initialization failed
[0x1176178] main libvlc: Запуск vlc с интерфейсом по умолчанию. Используйте 'cvlc' для запуска vlc без интерфейса.
[0x7fe8f0002368] mp4 demux warning: elst box found
[0x7fe8f0002368] mp4 demux warning: CTTS table
[0x7fe8f2ad3d58] faad decoder warning: decoded zero sample
[0x7fe8f0c07518] avcodec decoder warning: disabling direct rendering
[0x7fe8cc0069e8] main audio output warning: PTS is out of range (-33184), dropping buffer
)
не в кодеках дело, мне кажется.

Аватар пользователя Nika-7

Я удалила VLC и несколько попавших под горячую руку игрушек, которые стояли по умолчанию.
И поставила 2й системой убунту. Она такая быстрая.

А для суси видимо действительно лучше использовать gmplayer.

Аватар пользователя lecksys

т.е. теперь вы уже не вернулись?



Профессиональный тролль. Работаю за еду.

Аватар пользователя Nika-7

Я вернулась.
Суси хорошая, только выглядит менее доработанной для использования по сравнению с Убунтой.
Я поставила Суси ради оформления, а Убунту для быстроты и удобства.

Аватар пользователя slawdos


oS Leap 42.1x64KDE

Morpheus, i know linux.

Аватар пользователя taib

Вот у меня раньше работало, но в какой то момент перестал выводить видео. И что же могли такое зацепить в обновлениях.

openSUSE 12.2 Linux desktop 3.4.6-2.10-desktop

Аватар пользователя Balabas

У меня opensuse 12.2 и VLC с недавнего времени перестал работать. Сразу погрешил на обновления. Но долго руки не доходили. Полез в инэт искать. Нашел среди прочего эту ветку. И только после этого пошел в YaST. А нужно было всего-то установить vlc-codecs. По всей видимости, при обновлении в репозитории Packman (у меня оттуда стоит), возникли новые зависимости, но по умолчанию они не установлены в качестве требуемых, а описываются как:

vlc-codecs - VLC: VideoLAN Client - Codec extension

This Package enhances the functionality of the VLC VideoLAN Client with Codecs that are not available in a stock openSUSE distribution.

После установки всё работает!

Аватар пользователя Pavlo

Была с этим плеером(VLC) такая же проблема.Решил его установкой заново,только не помню из какого источника.

Desktop OS: OpenSuse :13.2 | Kernel 4.0.1 |

Аватар пользователя CyberDaemon

Типа надо поставить кодеки.

Аватар пользователя magrex

Я делал по инструкции все равно не хочет воспроизводить видео

Desktop OS: OpenSuse :13.2 | Kernel 4.0.1 |

Аватар пользователя r3d

Страдания кдешников.. Ничем не могу помочь, кроме совета установить MPlayer))

Страдания кдешников.. Ничем не могу помочь, кроме совета установить MPlayer))

Единственное видео воспроизводится в Kaffeine

Desktop OS: OpenSuse :13.2 | Kernel 4.0.1 |

Desktop OS: OpenSuse :13.2 | Kernel 4.0.1 |

Аватар пользователя Lork

Решил подобную проблему только установкой Dragonplayer, иначе не получилось )))

Суси хорошая, только выглядит менее доработанной для использования по сравнению с Убунтой. (С)

0_0 , странно, я с бунты именно по этой причине наоборот, слинял.

Аватар пользователя Bolidaus

Удалил VLC поставил Mplayer и SMPlayer - заработало,и просмотр и конвертация.

ЗЫ. Ток в 1 клик у меня не получилось, как было обещано, пришлось печатать и кликать. (

В этом руководстве мы научимся использовать видео в Вебе, как это принято в 2019. Chrome и Firefox начали поддерживать новый кодек AV1 — для них видео можно сделать в два раза меньше.

Отдельно поговорим, как заменить GIF на видео в AV1 и H.264 — тогда его размер упадёт в 20-40 раз.

AV1 в браузере

YouTube уже использует его в TestTube. Netflix заявил, что AV1 будет «их основным кодеком следующего поколения».

Мы в Злых Марсианах уже используем его на нашем сайте и на Ампллифере. В этой статье я поделюсь опытом внедрения AV1 и шаг-за-шагом расскажу, как вставить видео, чтобы оно работало во всех браузерах.

Кодеки и контейнеры

С картинками всё просто: или JPEG с PNG для всех браузеров, или делать более компактные файлы в WebP для современных браузеров. Мы всегда можем быть уверены, что в файлах .jpg будет PNG-формат (за редким исключением PNG-бомб, от которых может защитить imgproxy).

С видео-файлами всё сложнее. Расширение файла ( .mp4 , .wmv , .webm или .mov ) говорит только о контейнере. В то время, как видео-файлы состоят из трёх различных компонентов:

  1. Видео-кодек определяет как сильно вы сможете сжать видео, и чем придётся пожертвовать. Основные видео-кодеки Веба: H.264, HEVC, VP9 и, теперь, AV1.
  2. Аудио-кодек сжимает звук. Само собой, он не нужен, если в видео нет звука. Популярные варианты: MP3, Opus и AAC.
  3. Контейнер хранит оба видео- (сжатого каким-то видео-кодеком) и аудио-потока (сжатого каким-то аудио-кодеком). А также дополнительные данные, типа субтитров и мета-информации. Популярные контейнеры: MP4, MOV, WebM.

Узрите AV1

AV1 — видео-кодек, который был выпущен год назад, в марте 2018. Его создавали, чтобы превзойти кодеки предыдущего поколения — HEVC, VP9, H.264 и VP8.

Диаграмма поколений видео-кодеков


Диаграмма поколений кодеков от Цахи Левент-Леви

Если вам стало интересно, как именно AV1 удалось превзойти остальные кодеки в сжатии, почитайте технические подробности в переводах на Хабре:
«Видео следующего поколения: представляем AV1»
«Кодек нового поколения AV1: корректирующий направленный фильтр CDEF»

За счёт новых оптимизаций, AV1 сжимает видео на 30—50% лучше, чем H.264 или VP8, и до 30% лучше, чем HEVC. Но кодек был выпущен недавно и пока имеет несколько детских болезней:

  • Текущий кодер не оптимизирован. AV1 сжимает видео очень медленно (новый быстрый кодер на Rust уже в разработке). Кодек не подойдёт для потокового вещания. Если мы говорим о статичных видео на лэндингах — эта проблема нам не актуальна.
  • Пока кодек поддерживается только десктопным Chrome и Firefox под Windows. Поддержки Safari и Edge пока нет (хотя Microsoft уже тестирует её). Надо будет, как минимум, 2 файла: AV1 для Chrome и Firefox и H.264 для остальных браузеров.

Сравнение качества картинки у разных кодеков на разном битрейте


Сравнение качества картинки у разных кодеков на разном битрейте — AV1 выигрывает

Готовим AV1 правильно

Давайте, наконец-то, перейдём к практике. Вначале определимся с контейнером. В теории, AV1 можно поместить в разные контейнеры, но MP4 компактнее и рекомендуется в спецификации. Для звука в AV1 мы возьмём Opus, потому что отлично сжимает звук.

Чтобы видео работало во всех браузерах, мы будем генерировать 3 файла:

  1. Для десктопного Chrome и Firefox на Windows (31% рынка на март 2019): контейнер MP4 с AV1 для видео и Opus для звука.
  2. Для Safari и Edge (16% рынка) — MP4 с HEVC и AAC.
  3. Для остальных: большой MP4-файл с H.264 и AAC.

Для сжатия я рекомендую взять консольный FFmpeg. Есть много графических утилит, но в консоли легче сохранить опции и потом запускать конвертацию автоматически. Убедитесь, что используете именно последнюю версию FFmpeg. Версии до 4.1 не поддерживают AV1 в MP4.

Переходим к конвертации файла H.264, который нужен нам для старых браузеров. Поскольку все наши файлы используют контейнер MP4, я буду использовать .av1.mp4 , .hevc.mp4 и .h264.mp4 постфиксы. Не пугайтесь длинной команды, мы потом её всю разберём:


Теперь откройте video.h264.mp4 . Если качество хорошее, а размер большой — попробуйте увеличить -crf ( -crf 26 потом -crf 28 ). Эта опция уменьшит размер файла ценой уменьшения качества. Подбор баланса качества и размера — искусство.

Если исходного видео-файла нет, то можно сконвертировать старый H.264 файл в AV1.

Теперь пришло время для конвертации AV1 — напоминаю, будет дольше H.264. Кодек пока не использует всю мощь процессора (имеет смысл запустить конвертацию нескольких файлов параллельно).


Снова поиграйте с -crf для подбора идеального баланса качества и размера.

Теперь то же самое для HEVC.


Скопируйте video.h264.mp4 , video.hevc.mp4 и video.av1.mp4 в корень вашего сайта.

Разбираемся с опциями FFmpeg

Команды выше выглядят как заклинание вызова демона? Не волнуйтесь, это не PostCSS. Давайте разберём опции.

-i SOURCE.mov указывает входящий файл, откуда FFmpeg возьмёт потоки видео и аудио, пережмёт их и запакует в новый контейнер.

-map_metadata -1 удалит мета-информацию из видео (например, программу, в которой видео было создано). В Вебе такая информация редко бывает полезной.

-c:a libopus или -c:a libfdk_aac выставляют аудио-кодеки. Если вам не нужен звук, замените их на -an .

-c:v libaom-av1 выбирает видео-кодек — библиотеку, которая сожмёт кадры видео-потока.

-crf 34 — Constant Rate Factor, баланс качества и размера. Это как слайдер качества JPEG, только он идёт в другом направлении (0 — лучшее качество и самый большой файл). Шкала CRF разная у H.264 и AV1 — у H.264 идёт до 51, у AV1 до 61. CRF для AV1 и H.264 будет разный.

Facebook подобрал примерное соответствие между значениями CRF для H.264 и AV1:
19 → 27, 23 → 33, 27 → 39, 31 → 45, 35 → 51, 39 → 57.

-preset veryslow заставляет H.264 и HEVC кодеки сжимать файл сильнее даже ценой резкого роста времени конвертации.

-profile:v main используется у H.264, чтобы выбрать профиль кодека. Только «Main» будет работать в Safari.

-b:v 0 выставляет минимальный битрейт для AV1, чтобы в видео было постоянное качество.

-pix_fmt yuv420p (формат пикселя) — хитрый способ уменьшить размер файла. Он оставляет оригинальное разрешение для яркости, но уменьшает разрешение для цвета. Наши глаза хуже видят цвет, поэтому не замечают эту хитрость. Удалите эту опцию, если в вашем случае она будет мешать.

-movflags +faststart перемещает всё само важное в начало файла, чтобы браузер мог проигрывать видео до окончания загрузки.

-vf "scale=trunc(iw/2)*2:trunc(ih/2)*2" изменит размер сторон видео к ближайшим чётным (некоторые кодеки могут работать с разрешением 300×200 и 302×200, но не будут работать с 301×200). Если вы уверены, что везде разрешение делится на 2 — можете убрать эту опцию.

-strict experimental нужна для AV1, его кодер ещё экспериментальный.

video.av1.mp4 выставляет имя итогово файла.

Запускаем видео в браузерах

Теперь нам нужно, чтобы каждый браузер загружал видео, которое он поддерживает. Для этого у <source> есть атрибут type . И советую почитать про опции у <video>.


<source> похожи на выражения if…else — браузер читает их сверху вниз, пока не найдёт тот, чей type он поддерживает.

В type можно указать весь формат файла: контейнер ( video/mp4 для MP4), видео-кодек ( av01.0.05M.08 для AV1, hevc для HEVC и avc1.4D401E для H.264) и аудио-кодек ( opus для Opus и mp4a.40.2 для AAC).

Бонус: как сконвертировать GIF в AV1 и H.264

В 2019 использовать GIF для коротких видео — большой грех. GIF весит в 20—40 раз больше, чем H.264 или AV1. GIF сильнее бьёт по CPU, заставляет аккумулятор утекать быстрее. Если вам нужно короткое зацикленное видео, берите видео-кодеки. И FFmpeg может конвертировать видео прямо из GIF.

Конвертируем GIF в H.264:


Генерируем ещё более маленький AV1:


Теперь вставим animation.h264.mp4 и animation.av1.mp4 в HTML.


Опции autoplay и loop делают из видео «гифку» — цикленное видео, которое сразу играет после загрузки страницы. playsinline блокирует Safari от открытия видео на весь экран при клике на видео.

Читайте также: