Пришлось некоторое время решать проблемы с записью видео в 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).
Есть готовый альтернативный пакет:
Pingback: Запись с экрана в Slackware Linux | Персональный блог Толика Панкова