Почему Chromecast не может транслировать это видео HLS? «Не найден ни ID3, ни заголовок ADTS» / Ошибка NETWORK / 315 - PullRequest
3 голосов
/ 27 марта 2019

Я пытаюсь передать некоторые URL-адреса в свой Chromecast через приложение отправителя.Это URL-адреса HLS / m3u8.

Вот один такой пример URL: https://qa -apache-php7.dev.kaltura.com / p / 1091 / sp / 109100 / playManifest / entryId / 0_wifqaipd/protocol/https/format/applehttp/flavorIds/0_h65mfj7f,0_3flmvnwc,0_m131krws,0_5407xm9j/a.m3u8

Однако кажется, что они никогда не загружаются в Chromecast, несмотря на другие URL-адреса, работающие * H3 / 31008 * пример потока HLS, который работает ).

Это не связано с CORS, поскольку у них действительно есть соответствующие заголовки CORS.

Я заметил, что в них есть отдельные аудиогруппыкорневой файл манифеста HLS.

Когда я подключаю его к пользовательскому приложению получателя, я получаю следующие журналы:

enter image description here

соответствующие биты (я думаю): ни ID3, ни заголовок ADTS не были найдены в 0 и cast.player.api.ErrorCode.NETWORK/315 (который я считаю результатом первого)

Это совершенно верно/ рабочие URL-адреса HLS.Они отлично воспроизводятся в Safari на iOS и на рабочем столе, а также на VLC.

Что мне нужно сделать (в приложении отправителя или в приемнике), чтобы включить что-то вроде звуковых дорожек? Документы, кажется, что-то указывают на это .

Я также нашел эту проблему Google, где у человека была похожая проблема, но я решил ее как-то так, что я не могу понять.https://issuetracker.google.com/u/1/issues/112277373

Как правильно воспроизвести этот URL в Chromecast?Я должен что-то делать в коде?

1 Ответ

3 голосов
/ 28 марта 2019

Здесь уже есть решение здесь , но я добавлю этот ответ на тот случай, если кто-то найдет точное сообщение / код ошибки.

Проблема заключается в инициализированной hlsSegmentFormatTS для мультиплексированных сегментов, но в настоящее время по умолчанию используется упакованный звук для HLS с альтернативными звуковыми дорожками.

Решение состоит в том, чтобы перехватить запрос CAF LOAD и установить правильный формат сегмента:

const context = cast.framework.CastReceiverContext.getInstance();
const playerManager = context.getPlayerManager();
// intercept the LOAD request
playerManager.setMessageInterceptor(cast.framework.messages.MessageType.LOAD, loadRequestData => {
            loadRequestData.media.hlsSegmentFormat = cast.framework.messages.HlsSegmentFormat.TS;
            return loadRequestData;
});
context.start();


Источник: Google Cast система отслеживания проблем

...