LINUX.ORG.RU

Свежеустановленный Firefox 52.9.0 (ESR) не играет MP3

 , , , ,


0

2

Добрый день,

Дано: свежеустановленный Debian testing (подключены non-free репы), установлены FFMPEG и gstreamer (все плагины - base, good, bad, ugly, alsa), установлен Firefox ESR (52.9.0) из официальных реп, без дополнительных плагинов.

Что плохо: Firefox не играет встроенные mp3 на Амазоне, Bandcamp'е и т.д. Youtube при этом работает на ура.

На Bandcamp'е выдается окно: "Unable to play audio. Your browser must support native playback of MP3 or you must have the Adobe Flash Player installed."

На Амазоне в консоли браузера: HTTP «Content-Type» типа «audio/mpeg» не поддерживается. Не удалось загрузить медиаресурс https://www.amazon.com/.........

Невозможно воспроизвести медиа. Нет декодеров для запрошенных форматов: audio/mpeg

В самой системе MP3 играется без проблем любым возможным плейером.

Гуглёж ничего внятного не дал, в базе знаний Мозиллы не очень внятно написано, что проигрывание формата файлов должно поддерживаться системой (я так понимаю, что поддерживается, см. выше) и происходит через gstreamer. Gstreamer установлен, но такое ощущение, что Firefox этого не знает. FFMPEG, кстати, тоже установлен (автоматически), но его установка/удаление ни на что не влияет.

Странно то, что на соседних машинах с таким же Debian testing (там тестинг ставился около года назад) такой же Firefox 52.9.0 всё это играет без дополнительных настроек, не требуя никаких флэш-плагинов.

Пробовал подсунуть «больному» Firefox'у профиль от «здорового», с соседней машины - безрезультатно. В about:config ничего внятного по поводу mp3 и gstreamer не нашел...

Вопрос: Как сделать audio/mpeg enable ? Т.е. сообщить Firefox'у что все необходимое для воспроизведения МР3 в системе есть.


Извини за оффтоп, но как сочетаются FF ESR и отсутствие плагинов к нему? Для каких целей тогда нужно это говно мамонта?

Virtuos86 ★★★★★
()

Firefox ищет набор библиотек FFmpeg и libAV тех версий, которые знает, потому что у FFmpeg с каждой новой версией есть шанс на поломку ABI. Скорее всего, Firefox 52 ещё просто не знал тех версий, которые теперь в Debian testing.

Либо ищи и устанавливай версии FFmpeg времён выпуска Firefox 52, либо ставь Firefox поновее.

i-rinat ★★★★★
()
Ответ на: комментарий от Virtuos86

Неправильно выразился. «Отсутствие плагинов» означает их удаление в ходе решения проблемы. Во избежание, так сказать. Так-то некоторые плагины все же используются.

McSeam
() автор топика
Ответ на: комментарий от th3m3

Использовать последнюю версию Firefox и не мучаться.

В ней живет страшное-страшное pulsaudio. 52 - последняя версия с ALSA'ой.

McSeam
() автор топика

Без разницы, FF всё-равно ищет кодеки в FFMPEG или в libAV. Но что касается FFMPEG, то он должен быть собран с опцией "--enable-nonfree".

rEnSbit
()
Последнее исправление: rEnSbit (всего исправлений: 2)
Ответ на: комментарий от i-rinat

Либо ищи и устанавливай версии FFmpeg времён выпуска Firefox 52, либо ставь Firefox поновее.

Как я уже написал - две соседних машины с регулярно обновляемым Debian testing (читай - самым свежим ffmpeg/libav) таких проблем не имеют.

Больше того - поначалу они и здесь играло. Сначала был поставлен FF 52.9.0 и ему был подсунут профиль FF с другой машины. Там музыка играла, но были другие косяки, более серьезные. Поэтому был сделан apt purge firefox с удалением профиля и чистая установка. Одни косяки исправились, новый появился.

Кстати, Firefox'у 52.9.0 все-таки нужен ffmpeg или gstreamer ?

McSeam
() автор топика
Ответ на: комментарий от rEnSbit

FFMPEG, то он должен быть собран с опцией "--enable-nonfree".

Debian на эту машинку ставился с non-free образа, так что думаю, что эта опция там была.

С другой стороны - на двух других машинах он ставился с обычного netinst, a non-free репы добавлялись уже потом. И всё играет.

Собственно, я подозреваю, что тот же mpv, quod libet и другие играют МР3 не святым духом, а через ffmpeg/libav. Непонятно только, как объяснить это Firefox'у.

McSeam
() автор топика
Ответ на: комментарий от boowai

зависимость только от ffmpeg

Интересно.... На одной из машин, где FF играет все, что можно:

maksim@debbi:~/Рабочий стол$ apt list ffmpeg* 
Вывод списка… Готово
ffmpeg-doc/testing 7:4.0.2-2 all
ffmpeg2theora/testing 0.30-1+b3 amd64
ffmpeg/testing 7:4.0.2-2 amd64
ffmpegthumbnailer-dbg/testing 2.1.1-0.2+b1 amd64
ffmpegthumbnailer/testing 2.1.1-0.2+b1 amd64
ffmpegthumbs/testing 4:17.08.3-1+b1 amd64

т.е. получается, что ffmpeg вообще не установлен....

Как вообще понять, через что звук играет ?

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

Небось вендовс-вей архивом с сайта файрфокс там?

ЯННП. Переведи.

McSeam
() автор топика

Как я уже написал - две соседних машины с регулярно обновляемым Debian testing (читай - самым свежим ffmpeg/libav) таких проблем не имеют.

Уверен, что там где-нибудь не завалялась старая версия FFmpeg?

Вот смотрю я в текущее состояние Debian testing и вижу, что там есть libavcodec.so.58 → libavcodec.so.58.18.100. Скачиваю Firefox 52.9.0esr, распаковываю, смотрю в набор строчек:

$ strings libxul.so | grep libavcodec
unsupported-libavcodec
media.libavcodec.allow-obsolete
Invalid libavcodec candidate
libavcodec-ffmpeg.so.57
libavcodec-ffmpeg.so.56
libavcodec.so.57
libavcodec.so.56
libavcodec.so.55
libavcodec.so.54
libavcodec.so.53
Invalid FFMpeg libavcodec candidate
Unusable LibAV's libavcodec 57
Invalid LibAV libavcodec candidate
Obsolete FFMpeg libavcodec candidate
Obsolete LibAV libavcodec candidate

Видишь? libavcodec.so.58 нет. Firefox просто даже не будет пытаться открыть libavcodec.so.58, и поэтому не сможет им воспользоваться. Можешь на страх и риск симлинк создать, но там могут быть сюрпризы.

Кстати, Firefox'у 52.9.0 все-таки нужен ffmpeg или gstreamer ?

FFmpeg.

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

Уверен, что там где-нибудь не завалялась старая версия FFmpeg?

$ apt list libavcodec* 
Вывод списка… Готово
libavcodec-dev/testing 7:4.0.2-2 amd64
libavcodec-extra58/testing 7:4.0.2-2 amd64
libavcodec-extra/testing 7:4.0.2-2 all
libavcodec57/now 7:3.4.3-1 amd64 [установлен, локальный]
libavcodec58/testing,now 7:4.0.2-2 amd64 [установлен, автоматически]

Если я правильно понимаю, то установлены версии 57 и 58. Причём 58 в выводе strings libxul.so выше не упомянут и, видимо, не используется, а про 57 написано что-то вроде «Unusable LibAV's libavcodec 57»... Интересно, чем FF тогда вообще играет и поёт, учитывая, что ffmpeg там тоже не установлен...

Становится все чудесатее и чудесатее...

McSeam
() автор топика

а про 57 написано что-то вроде «Unusable LibAV's libavcodec 57»

Это не означает, что любая libavcodec.so.57 непригодна для использования. Это просто строка.

Скорее всего, вот эту libavcodec.so.57 он и использует.

учитывая, что ffmpeg там тоже не установлен

libavcodec.so.57 это и есть библиотека FFmpeg. То, что находится в пакете ffmpeg — утилита командной строки под названием «ffmpeg». Для приложений типа Firefox нужны именно библиотеки.

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

Скорее всего, вот эту libavcodec.so.57 он и использует.

Спасибо. Завтра посмотрю, какие библиотеки есть на «больной» машинке и буду думать дальше.

В принципе, можно действительно поставить Debian с какого-нибудь старого (~годичной давности, времён выхода FF ESR 52) образа со старыми библиотеками и постепенно обновить его до актуального состояния, заморозив FF.

Но все равно интересно, что именно сломалось и как это починить.

McSeam
() автор топика

что именно сломалось

Обновился FFmpeg (библиотеки libavcodec и другие), а старый Firefox не умеет эти новые библиотеки использовать.

как это починить

В идеале — портировать код загрузки libavcodec.so.58. Скорее всего, там особых изменений нет, и портирование тривиально. Потом собрать из исходников. Это не сложно, там это парой команд делается.

Но с другой стороны, если собирать из исходников, можно просто взять новую версию Firefox и включить там ALSA во время конфигурирования.

i-rinat ★★★★★
()

какие библиотеки есть на «больной» машинке

$ apt list libavcodec*
Вывод списка… Готово
libavcodec-dev/testing 7:4.0.2-2+b1 amd64
libavcodec-extra58/testing 7:4.0.2-2+b1 amd64
libavcodec-extra/testing 7:4.0.2-2 all
libavcodec58/testing,now 7:4.0.2-2+b1 amd64 [установлен, автоматически]

Т.е. версии 57 на «больной» машине нет. Допустим, я скопирую все нужные файлы со «здоровой» машины... Как объяснить FF, что они есть и ими можно пользоваться.

Pinning ?

McSeam
() автор топика

Проблему решает установка пакета libavcodec-extra57 из анстейбла, т.е. aptitude -t unstable install libavcodec-extra57

# dpkg -L libavcodec-extra57
/.
/usr
/usr/lib
/usr/lib/x86_64-linux-gnu
/usr/lib/x86_64-linux-gnu/libavcodec.so.57.107.100
/usr/share
/usr/share/doc
/usr/share/doc/libavcodec-extra57
/usr/share/doc/libavcodec-extra57/changelog.Debian.gz
/usr/share/doc/libavcodec-extra57/changelog.gz
/usr/share/doc/libavcodec-extra57/copyright
/usr/share/lintian
/usr/share/lintian/overrides
/usr/share/lintian/overrides/libavcodec-extra57
/usr/lib/x86_64-linux-gnu/libavcodec.so.57
anonymous
()
Ответ на: комментарий от anonymous

Проблему решает установка пакета libavcodec-extra57 из анстейбла

Да, возможно. Я пробовал ставить из тестинга, но он потянул за собой libavitls предыдущей версии и что-то еще, utils хотели еще чего-то (уже не помню)... Дальше мне стало лень и я просто перенакатил тестинг по-новой.

$ apt list libav* | grep устан
...............
libavcodec57/now 7:3.2.12-1~deb9u1 amd64 [установлен, локальный]
libavcodec58/testing,now 7:4.0.2-2+b1 amd64 [установлен, автоматически]
libavdevice57/now 7:3.2.12-1~deb9u1 amd64 [установлен, локальный]
libavdevice58/testing,now 7:4.0.2-2+b1 amd64 [установлен, автоматически]
libavfilter6/now 7:3.2.12-1~deb9u1 amd64 [установлен, локальный]
libavfilter7/testing,now 7:4.0.2-2+b1 amd64 [установлен, автоматически]
libavformat57/now 7:3.2.12-1~deb9u1 amd64 [установлен, локальный]
libavformat58/testing,now 7:4.0.2-2+b1 amd64 [установлен, автоматически]
libavresample3/now 7:3.2.12-1~deb9u1 amd64 [установлен, локальный]
libavresample4/testing,now 7:4.0.2-2+b1 amd64 [установлен, автоматически]
libavutil55/now 7:3.2.12-1~deb9u1 amd64 [установлен, локальный]
libavutil56/testing,now 7:4.0.2-2+b1 amd64 [установлен, автоматически]

С одной стороны - вопрос закрыт, с другой стороны - осталось непонятным, что и почему (в какой момент) поломалось.

McSeam
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.