Некоторые браузеры кэшируют поток ледяного вещания вместо воспроизведения - PullRequest
1 голос
/ 08 марта 2020

У меня три сервера Icecast, все транслируют один и тот же контент. Примерно через две недели я получил от некоторых пользователей сообщение о том, что они больше не могут слушать поток. Их браузер пытается загрузить поток, но он никогда не начинает играть. Я начал немного разбираться с этим и смог воспроизвести проблему.

Интересно, что эта проблема возникает не на всех устройствах. У меня здесь два компьютера, оба на Windows 10, оба работают на последней Firefox. Можно транслировать без проблем, начать скачивать аудиоданные, но никогда не воспроизводить их. Открытие точки монтирования Icecast в VL C работает во всех случаях, и поток начинается в течение секунды или около того. На устройстве, которое не воспроизводит поток в Firefox, оно также не работает в Chrome. С другой стороны, устройства, которые могут передавать в Firefox, также находятся в Chrome. Я предполагаю, что это как-то связано с ОС ..?

Я запустил Wireshark на одном P C, на который повлияла проблема, и смог увидеть, что браузер начинает загружать аудиоданные из Сервер Icecast, но вместо того, чтобы играть на нем, он кеширует его. Я считаю, что браузер как-то «думает», что это загрузка, а не поток. Когда я перезапускаю процесс Icecast на сервере во время этого периода кэширования, кэширование браузера прекращается и он начинает воспроизводиться - но только на несколько секунд, пока не будет достигнут конец кэшированного потока.

I Предположим, что некоторые браузеры ждут какой-то EOF вместо простого воспроизведения потока. Конечно, EOF никогда не отправляется в прямом потоке.

Вот ссылка на точку монтирования одного из серверов Icecast: http://185.80.187.35/live

Кажется что не имеет значения, какой из трех серверов Icecast вы используете. Если один работает, два других также работают. Если этого не произойдет, открытие потока с других серверов также не удастся.

Я понятия не имею, что там происходит. Поскольку проблема возникла, ничего в настройке не изменилось. Я пытался переключить аудиоформат с MP3 на OGG, но это не решило проблему - поэтому я переключился на MP3. В настоящее время я транслирую на 64 кбит / с. Я не думаю, что это может быть проблемой, поскольку это работало годами, но может ли быть так, что такой низкий битрейт больше не поддерживается некоторыми браузерами? Должен ли я повысить битрейт? Может быть, добавить несколько заголовков HTTP в конфигурацию Icecast? Я в замешательстве и у меня заканчиваются идеи.

PS: Я только что заметил, что у меня та же проблема в Edge и IE. Кажется, это зависит от P C, а не от браузера.

1 Ответ

0 голосов
/ 09 марта 2020

Когда встроенный проигрыватель не работает на устройстве, поток на его собственной вкладке также не воспроизводится.

Это не то поведение, которое я вижу.

Сайт - HTTPS, да, но поток - нет.

Из-за новых ограничений безопасности это больше не действует. Если вы откроете инструменты разработчика своего браузера, вы увидите ошибки об этом.

Вам необходимо включить HTTPS на вашем сервере Icecast, или понизить ваш сайт до HTTP, если вы хотите играть с небезопасное происхождение.

...