Перекодировка OGV в MP4 и решение ошибки Unknown encoder 'libx264' в Slackware Linux.
Пришлось некоторое время решать проблемы с записью видео в Linux. Изначально задача была в записи видео с экрана, но в процессе решения добавились и web/ip-камеры (заодно уж), и общие проблемы с перекодировкой видео из одного формата в другой. Начнем как раз с конца, т.е. с перекодировки.
Леша уже плюнул на попытки заставить непокорную софтину записывать для начала экран в удобоваримом формате MP4, и прислал мне ролик в формате OGG (ну не OGG, OGV), чтоб я разобрался с его перекодированием во что-то более удобоваримое, т.к. не один из наших видеоредакторов формат OGV (кстати, открытый) "из коробки" не поддерживал.
В качестве видеокодека в формате OGV используется кодек
Theora
, а в MP4 AVC/H.264
OGG - изначально, открытый звуковой формат, разработанный как альтернатива закрытым (WMA, MP3). Через некоторое время, данный формат был расширен с добавлением поддержки видео. Но некоторые (несознательные) линуксовые программы пишут видео, а файлы создают с расширением
.ogg
. Линуксовому софту, типа плееров, вообще на это плевать, но линуксовому софту всегда было плевать на расширения имени файлов, а вот винде нет. Потому, если вам прислали видео в файле с расширением .ogg
, то попробуйте поменять расширение на .ogv
, скорее всего файл нормально откроется. В K-Lite Mega Codec Pack и в VLC для Windows поддержка, что OGG, что OGV есть точно.Но все-таки вернемся в Slackware и к преобразованию форматов.
В связи с диким онанизмом на "авторские" "права" и зоопарком форматов видео/аудио в Линуксе преобразование одного формата в другой превращается в наркоманский квест. У нас было десять мегабайт библиотек, две сотни кодеков, пакет с разными пакетами, 200 грамм укуреных лицензий... Тьфу, к делу.
Для установки некоторых необходимых пакетов можно воспользоваться
sbopkg
.Вообще, для работы с видео и аудио используется программа
ffmpeg
(v3), но не спешите ставить ее из "официального" репозитория Slackware, как оказалось, чтоб все заработало, пришлось переустанавливать из альтернативного.Пока вводим в поиске и ставим:
aom
(выбираем multimedia/aom
в меню sbopkg
)libass
libwebp
x264
(выбираем multimedia/x264
в меню sbopkg
)x265
ffmpeg4
ffmpeg
(v3) у меня уже был установлен ранее, так же из официального репозитория Slackware. А вот и зря.ffmpeg -i input.ogv \
-c:v libx264 -preset veryslow -crf 22 \
-c:a libmp3lame -qscale:a 2 -ac 2 -ar 44100 \
output.mp4
Преобразование будет медленным, но практически без потери качества. Свои варианты параметров можете кидать в комментарии, вдруг пригодится.
Как я сказал ранее,
ffmpeg
из репозитория sbopkg
у меня уже стоял. Сначала я подумал, что поможет его полная переустановка с пересборкой пакета (мало ли, свежеустановленные кодеки не видятся). Не помогло.Решение нашлось здесь
В общем да, из-за
ffmpeg
в Slackware не включает поддержку H.264
. Но, слава Великим Древним, проблему решили без нас, и даже в опциях компиляции ковыряться не нужно:Just to clarify, you'd want the "restricted" ffmpeg that Alien Bob offers, as that includes support for various things that have patent restrictions (like x264 encoding).
Есть готовый альтернативный пакет:
Скачать
Копия на Mega.NZ (+ копия остальных пакетов)
Это репост с сайта http://tolik-punkoff.com
Оригинал: http://tolik-punkoff.com/2020/08/15/pere