LINUX.ORG.RU

libx265 в debian8

 , , , ,


0

1

При очередном обновлении что то произошло и...

Заметил, что разделы реп jessie-updates и jessie-backports больше не существуют на официальных зеркалах. WTF!?

Соответственно пакеты, поставленные из них, помечены как левые. У меня это libx265 и libx265-dev. Ну .не могли же один из основных кодеков взять и выкинуть. Поставлю из другого раздела... А вот хрен! Их таки выкинули, из всех официальных реп. Просто взяли и удалили. В т.ч. уже собраные, работоспособные версии. WTF!?

Ладно, не велика беда. ffmpeg собрал, почему эту либу не соберу? Качаем последнюю версию, проверяем требования в readme. Указан только cmake ветки 2.8.*, при том что даже в 8-м дебе стоит 3.*. И ещё ccmake. Название пакета узнал, поставил, создал make-файлы по инструкции, make и финиш.

rrr@raspberrypi:~/x265_3.0/build$ make
Scanning dependencies of target encoder
[  1%] Building CXX object encoder/CMakeFiles/encoder.dir/analysis.cpp.o
*** Error in `/usr/bin/c++': double free or corruption (!prev): 0x01eda830 ***
Aborted
encoder/CMakeFiles/encoder.dir/build.make:62: ошибка выполнения рецепта для цели «encoder/CMakeFiles/encoder.dir/analysis.cpp.o»
make[2]: *** [encoder/CMakeFiles/encoder.dir/analysis.cpp.o] Ошибка 134
CMakeFiles/Makefile2:262: ошибка выполнения рецепта для цели «encoder/CMakeFiles/encoder.dir/all»
make[1]: *** [encoder/CMakeFiles/encoder.dir/all] Ошибка 2
Makefile:127: ошибка выполнения рецепта для цели «all»
make: *** [all] Ошибка 2 

И ещё одна ошибка, суть в том что /usr/bin/c++ не знает опции -mstackrealign (стандартная оптимизация, включена по умолчанию начиная с 4.4, штатная версия 4.9.2).

Гуглю, не нахожу понятного объяснения или решения, но вот здесь https://tvheadend.org/boards/5/topics/34652 упоминается что то похожее на мой случай. Вроде как libx265 внезапно перестал собираться по вине компилятора, хз почему и пересоберите всё без него... WTF!?

Да, собираю на RPi3, raspbian 8, armhf. Странно то, что cmake пихает опцию -mstackrealign, хотя вроде бы правильно определил архитектуру arm7l. Каких либо иных arm-специфичных проблем у libx265 не упоминается, так что не думаю что архитектура важна.

Ответ на: комментарий от anonymous

А его там нет. Выглядит так, как будто и не было никогда. Или что вычистили.

Кажется мне предстоит угадайка «а из какой же репы я его ставил»...

kirill_rrr ★★★★★ ()
Последнее исправление: kirill_rrr (всего исправлений: 1)
Ответ на: комментарий от kirill_rrr

Ну вот flatpak архивный http://archive.debian.org/debian/pool/main/f/flatpak/ я там нашел. Наверное, потому что он был в jessie-backports, а не в jessie-updates. До окончания расширенной поддержки еще больше года, надо бы баг рапорт написать, а также спросить почему Chromium не обновляют, но скорее всего скажут, что это не входит в список расширенной поддержки.

anonymous ()

В интернете тоже вой поднялся https://www.google.com/search?q=debian jessie-updates jessie-backports Пишут, что эти репы не LTS и вообще Debian серверная ОС. jessie-updates интегрировали с jessie-security и в первой больше нет нужды, а в security будут приходить только обновы безопасности. Так что когда для дистрибутива заявляется поддержка, надо смотреть чего именно.

anonymous ()
Ответ на: комментарий от ism

А толку. Оно shared, если бы хотя бы static было. Все хочу собрать x264 static (тема слабоизучена). Вообще x264 сама по себе довольно жирная библиотека, там даже есть ffmpeg декодер (при сборке можно отключить). Зачем? ffmpeg при кодировании в H.264 ставит флаг VFR, меня это достало. Это просто формальность (сами данные CFR), но неприятно смотрится в MediaInfo. Хочу скармливать ffmpeg поток в отдельный x264. Хотя, наверняка, и ffmpeg можно приручить. Но не в mp4 же кодировать им (заявляется CFR), та еще глюкота. В AVI может?

anonymous ()
Ответ на: комментарий от anonymous

Ладно, всем спасибо.

Установил версию из бэкпортов. Все попытки собрать версию 3.0 и 2.0 провалились, почему тоже не понятно. Странные вещи творятся с этой библиотекой. Но по крайней мере ffmpeg снова понимает h265 видео

kirill_rrr ★★★★★ ()
Ответ на: комментарий от anonymous

Вообще x264 сама по себе довольно жирная библиотека...

Ну, если она жирная, то что уже говорить о x265:

1.8M	/usr/lib/x86_64-linux-gnu/libx264.so.155
16M	/usr/lib/x86_64-linux-gnu/libx265.so.165
2.6M	/usr/lib/x86_64-linux-gnu/libx264.a
21M	/usr/lib/x86_64-linux-gnu/libx265.a

gag ★★★★★ ()
Ответ на: комментарий от anonymous

Да пофигу как она кодирует. Пусть декодирует хотя бы 2-4 fullHD кадра в секунду, мне хватит. Я ютьюбчик на время не смотрю. Выгружу в очередь на ночь и пойду спать.

Мне важно чтобы ffmpeg понимал h265 и мог скормить его энкодерам libx264 или h264_omx

kirill_rrr ★★★★★ ()
Последнее исправление: kirill_rrr (всего исправлений: 1)
Ответ на: комментарий от anonymous

То видео со скринкастом-презентацией оконной системы Wio. Там конечно всё пусто, монотонно и псего пара окошек за 3 минуты открылось, но это был 1920x1080 в высоком качестве. Вообще vp9 или vp8, но они аналогичны libx265 по скорости и без библиотеки ffmpeg отказался декодировать то видео.

Так вот, у меня тот самый говнопроцессор RPi3. Перекодирование шло на скорости 0,6х при загрузке 1,5 ядра, а h264 воспроизвёлся на vc4 как родной.

kirill_rrr ★★★★★ ()
Последнее исправление: kirill_rrr (всего исправлений: 1)
Ответ на: комментарий от turtle_bazon

Да, собрана и даже может 32-битные программы запускать (благодаря эмуляции).

Но вопрос, много ли запустишь на Raspberry Pi? Ведь это не ХР, «тянет» ресурсов немало. А их у «малинки» мало, очень мало.

Korchevatel ()
Ответ на: комментарий от anonymous

Нет, ffmpeg просто подключает библиотеку libx* и использует её для декода и энкода. Сама библиотека может поставляться отдельно (если это вообще не главный способ по умолчанию), и в дебиане именно так и сделано. Пакет libx265 и пакет libx265-dev. libx264 аналогично.

kirill_rrr ★★★★★ ()
Ответ на: комментарий от turtle_bazon

А теперь, внимание, юзеркейс: оконный менеджер должен быть kwin4, дисплейный kdm, а рабочий стол xfce не выше версии 4.10. Иначе вместо получения удовольствия от использования системы я месяц-другой потрачу на настройку окружения.

kirill_rrr ★★★★★ ()
Ответ на: комментарий от kirill_rrr

kdm

Зачем вам настолько старый DM? Его же давным-давно бросили в пользу SDDM.

kwin4

Та же история. Старая версия, а поддерживается пятая.

xfce не выше версии 4.10

Я, конечно, не спец по «крысе», но что «не такого» в 4.11?

Korchevatel ()
Ответ на: комментарий от Korchevatel

kdm

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

kwin4

Не смог оценить скорость совтового рендера kwin5, но на радеоне 8450G он ворочался в разы медленней kwin4. Плюс очень приятные артефкты в анимациях, больше жручести, конфигуратор хоткеев, эффектов и поведения окон засунут в какую то задницу, выпилена (спрятана?) менюшка заголовка окна с кучей полезных опций, выпилен стандартный эффект переключения окон с миниатюрами в ряд в центре экрана (стандарт у всех, просто должно быть) и ещё я не смог осились заголовки окон с темой «пластик», покрашеные в зелёный.

но что «не такого» в 4.11?

В 4.12. Главное - оттуда выпилили альса-микшер для панели. А по мелочам: больше гтк3 приложений, мне не удобно.

kirill_rrr ★★★★★ ()
Ответ на: комментарий от anonymous

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

Да, и собственно этот самый случай. Мне нужно было декодировать vp9, а ffmpeg сказал что не может, потому что отсутствует libx265.

kirill_rrr ★★★★★ ()
Ответ на: комментарий от kirill_rrr

Много зачем - лицензия, быстродействие, поддержка платформ и фич. Плюс там слишком много кода, чтобы всё шло через внешнюю библиотеку.

anonymous ()
Ответ на: комментарий от anonymous

пруф... Если действительно любопытно, можете воссоздать ситуацию у себя. Для этого нужно сделать собственную сборку ffmpeg (запускается и работает без установки), потом выпилить libx265 и libx265-dev из дистрибутива, и попробовать без них перекодировать vp8/vp9 в h264

kirill_rrr ★★★★★ ()
Ответ на: комментарий от kirill_rrr

Подтверждаю. libx265.so используется для декодирования. Удалил /usr/lib/i386-linux-gnu/libx265.so.79 из пакета libx265
MPV 0.14

/usr/bin/mpv: error while loading shared libraries: libx265.so.79: cannot open shared object file: No such file or directory

VLC 2.2.2
VLC не может декодировать формат «VP90» (Google/On2's VP9 Video)
r: corrupt module: /usr/lib/vlc/plugins/codec/libavcodec_plugin.so
[b3d0e418] core decoder error: Codec `VP90' (Google/On2's VP9 Video) is not supported.

Ubuntu 16.04
Также libx265 скорее всего используется и для кодирования, как shared библиотека. По крайней мере Avidemux использует libx264 для кодирования H.264.

emmanuel ()
Ответ на: комментарий от emmanuel

Подтверждаю. libx265.so используется для декодирования. Удалил /usr/lib/i386-linux-gnu/libx265.so.79 из пакета libx265
MPV 0.14

нет, не используется, вы подтвердили, что у вас mpv привязан к x265 и только

в ffmpeg/libavcodec x265 используется только для кодирования, x265 не предоставляет декодер

hizel ★★★★★ ()
Ответ на: комментарий от hizel

Я удалил библиотеку libx265.so.79 (которая согласно данным Synaptic'а входит в пакет libx265) и MPV с VLC разучились играть VP9. Значит в libx265 декодер.

Не надо путать libx265 и x265. В них обоих есть кодер. Но в libx265 только shared библиотека libx265.so, а в x265 отдельный бинарник /usr/bin/x265, который тем не менее тоже зависит от libx265.

И shared и бинарник могут кодировать в H.265, просто у них разные интерфейсы. shared (libx265) используют проги со своим гуем, а x265 бинарник, управляемый из командой строки. Но основа всего libx265, там же и декодер. Также я подозреваю x265 может и декодировать из командной строки.

Подождите, мы говорим об 265, а у видео кодек VP9. Разве VP9 обрабатывается *x265, а не libvpx? Получается на декод да, а энкодит H.265.

emmanuel ()
Ответ на: комментарий от emmanuel

Я удалил библиотеку libx265.so.79 ... и MPV с VLC разучились играть VP9.

Вот это «финт ушами»! Кто-нибудь что-нибудь понимает? Или я что-то путаю? x265 - это случаем не следующий за x264 этап, то бишь апгрейд mp4? V9 - это случаем не следующий за V8 этап, то бишь апгрейд webm? Как эти «перцы» умудрились переплестись, они же вроде конкуренты?

zvezdochiot ()