30
7月
2024
17:42

Компиляция видеодекодера dav1d

30 7月 2024 17:42

Dav1d - самый быстрый декодер видео формата AV1 для Windows, Linux и MacOS.

Введение

На нетбуке у меня видео вопроизводится с проблемами - в браузере Chrome видео прерывается. Решение - сначала скачать видео и затем воспроизвести его с жесткого диска, при помощи видеопроигрывателя mpv. Конечно, для многих задач достаточно и mpv, но более совершенным является dav1d - написан на языке C. Сравнение с другими плеерами здесь.
Для тех, кто не хочет компилировать - есть готовое решение см. конец статьи - раздел "Использование dav1d".

Возможность установки dav1d из репозитории Linux

Кодер / декодер присутствует в репозитории Ubuntu

sudo apt update
sudo apt install dav1d

версия из репозитории:

dav1d --version

1.2.1

Забегая вперед, версия после компиляции получилась значительно новее:

dav1d --version

1.4.2-15-g2355eeb

Домашняя страница dav1d и репозиторий исходного кода

Домашняя страница dav1d находится на сайте VideoLAN.org

Бинарного файла нет и его нужно создать самостоятельно, путём компиляции исходных текстов.
Репозиторий исходного кода находится на GitHub. Чтобы склонировать репозиторий к себе на диск:

git clone https://github.com/videolan/dav1d

Требования для компиляции

Нужны следующие пакеты:

  • build-essential
  • clang
  • meson
  • ninja

Первые три условия удовлетворяются установкой пакетов из командной строки:

sudo apt install build-essential
sudo apt-get install clang
sudo apt-get install meson

Что касается ninja, есть два способа - установить из репозитория или скачасть самую свежую версию.

sudo apt-get install ninja-build

Либо можно скачать бинарный файл для Linux-64bit со страницы проекта ninja:

Официальное руководство по сборке dav1d

Неофициальный порядок компиляции dav1d

1) После клонирования из репозитория, в домашнем каталоге появилась папка ~/dav1d/. Заходим в неё.
2) Открываем со страницы https://github.com/ninja-build/ninja/releases и открываем в архиваторе файл ninja-linux.zip и извлекаем бинарный файл nonja в директорию ~/dav1d/.
3) Выбрать компилятор по умолчанию g+

sudo update-alternatives --config cc # выбор g+
sudo update-alternatives --config c++ # выбор g+

4) В папке dav1d создаем директорию "build"

mkdir build

5) Компиляция

meson setup build

6) Сборка из объектных файлов в папке build

cd build
../ninja

Результат - выходной файл после компиляции находится в директории "~/dav1d/build/tools", исполнимый файл "dav1d".

7) Установка бинарного файла в системные каталоги

../ninja -C build install

Будут запошены привилегии суперпользователя и исполнимый файл будет записан в директорию /usr/local/bin:

Installing tools/dav1d to /usr/local/bin

Другая инструкция по компиляции

на сайте Christian Külker

Использование dav1d

Декодер встроен в проигрыватель VLС начиная с версии 3.0.5 и используется для воспроизведения фильмов в AV1 по умолчанию. Текущая версия VLC - 3.0.16.

sudo apt install vlc

И в командной строке запуск vlc для воспроизведения видео

vlc video.mp4

Дополнительные ключи vlc могут улучшить производительность воспроизвдения (понизить % использования процессора, уменьшить число выпадений кадров), как написано здесь.

Непосредственно dav1d не воспроизводит видео. Он используется в внешних плеерах, таких как VLC, MPV.

Использование в плеере MPV

Согласно документации mpv за вывод видео отвечают ключи

--vo=
Specify the video output backend to be used. See VIDEO OUTPUT DRIVERS for details and descriptions of available drivers.
--vd=<...>

  • видеодрайверы через запятую

Последнюю версию MPV с поддержкой dav1d нужно ставить не из APT, а из FlatPak!

Выполнение установки проигрывателя mpv с помощью flatpak:

sudo add-apt-repository ppa:flatpak/stable

sudo apt update

sudo apt install flatpak

flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo

flatpak install flathub io.mpv.Mpv

flatpak run io.mpv.Mpv

Источник: Reddit - AV1 videos are lagging like crazy(frame drops)

Либо можно скачать со страницы FlatHub файл flatpakref cо страницы mpv или установить его командами терминала:

wget https://dl.flathub.org/repo/appstream/io.mpv.Mpv.flatpakref
sudo flatpak install  io.mpv.Mpv.flatpakref
flatpak run io.mpv.Mpv

Запуск проигрывания файла в MPV

flatpak run io.mpv.Mpv video.mp4

Как скачать файл с YouTube.

Для веб браузера Mozilla FireFox есть расширение "Easy YouTube Video Downloader", которое добавляет кнопку для скачивания видео. Видео, сохраненное из Mozilla Firefox можно посмотреть в любом проигрывателе после скачивания, в том числе при отсутствии Интернета, например, в командировке.



相关出版物