LINUX.ORG.RU

Chrome подвисает при загрузке HTML5 аудио по сравнению с Firefox

 , , html5 audio


0

1

Всем привет, наткнулся на такую проблему, возникающую только в Хроме.

В общем, существует один сайт, на котором выложены аудиофайлы, по историческим причинам проигрывающиеся в самописном флэш-аудиоплеере, и вряд ли это когда-то изменится. Поскольку этот флэш уже у всех отключен, я написал скрипт для Tampermonkey, который просто заменял флэш-аудиоплееры на встроенные html5, а также следил за очередностью треков и т.п. Так вот, в файрфоксе все работает хорошо. Треки без прелоада (чтобы не загружались автоматически, вдруг кому не надо), кликаешь - небольшая подгрузка первого куска и почти сразу играет, завершился - переходит к следующему, все быстро. А в хроме неожиданно загрузка треков варьируется от такой же быстрой до десятков секунд, причем последнее случается гораздо чаще.

Сделал вторую версию - простоей плеер с плейлистом, на howler.js (надеясь, что авторы как-то по уму обходили подобные особенности браузеров). Что бы вы думали, ничего не поменялось, в хроме проигрывание стартует с огромными задержками, в фф - мгновенно. Немного покопал гитхаб и СО, нашел это обсуждение, но куда копать и что делать - понимания нет. Скажите, вы с таким сталкивались, это вообще известная багофича?

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

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

ins3y3d ★★★★★
() автор топика

ни кода первой версии, ни кода второй версии, ни результатов профайлинга. какой помощи ты ждёшь, моральной?

vedowi6419
()

у них общая кодовая база. в основе обоих древний вебкит, который пилят все подряд вместе. у хромиума и фуфла гуи и яваскриптовые движки разные. вывод: проблема в V8.

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

Странный код. Используются грависы для строк и прототипное наследование. Хотя грависы были введены уже после появления классов.

tz4678 ★★
()

Посмотри в встроенном devtools сколько коннекшенов открыто к хосту. Если больше шести то хром их ставит в очередь на исполнение и не выполняет загрузку. Нахождение коннекшенов в таком состоянии в встроенном профайлере обозначаются словом stalled. В firefox ограничение в 30 коннекшенов к одному хосту. Может это причина тормозов.

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

Ок, этот файл?

http://dcdnet.ru/plain_mp3/16462-A Million Dreams/01 - I Remember.mp3


00:00:00.652 - kStarting
00:00:55.259 - FFmpegDemuxer: created audio stream, config codec: mp3, profile
00:00:55.259 Warning, FFmpegDemuxer failed to create a valid/supported video decoder configuration from muxed stream
00:00:55.259 - FFmpegDemuxer: skipping invalid or unsupported video track
00:00:55.263 - Selected FFmpegAudioDecoder for audio decoding
00:00:55.263 - kPlaying


Да, действительно, хром пытается почему то загрузить файл целиком, на это уходит почти минута (ограничения на сервере?). Далее он видит видеодорожку! Откуда она в mp3?

Вот что выдает ffmpeg
Stream #0:0: Audio: mp3, 44100 Hz, stereo, fltp, 320 kb/s
Stream #0:1: Video: mjpeg, yuvj444p(pc, bt470bg/unknown/unknown), 3000x3000 [SAR 300:300 DAR 1:1], 90k tbr, 90k tbn, 90k tbc


то есть в файле 2 дорожки.

Попробуй удалить видеодорожку, это должно помочь

ffmpeg -y -i /path/to/file.mp3 -map 0 -map -0:v -c copy path/to/new.mp3

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

Stream #0:1: Video: mjpeg, yuvj444p(pc, bt470bg/unknown/unknown), 3000x3000 [SAR 300:300 DAR 1:1], 90k tbr, 90k tbn, 90k tbc

А не картинка альбома ли это?

EXL ★★★★★
()

Треки без прелоада (чтобы не загружались автоматически, вдруг кому не надо)

Проблема лор-овец — в презумпции ненужности.

А потом жалуются, что загрузка подвисает. На то вам прелоад и дан, олухи.

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

Даже не знаю, первый раз вижу mp3 с видеотреком. К тому же chrome не поддерживает mjpeg, судя по https://developer.mozilla.org/en-US/docs/Web/Media/Formats/Containers
Но суть не в этом, ладно пропустил тот же FF видеотрек, но хром заспопорился и начал качать целиком файл. Если убрать видеотрек, то воспроизведение начинается сразу после первой порции данных

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

Спасибо за подробный разбор! Единственная проблема, с трэком я со своей стороны ничего сделать не могу, он такой, каким его кто-то загрузил. А видеодорожка и правда может быть только обложкой диска.

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