HLS с DRM - AVPlayer не переключается на другой файл битрейта - PullRequest
0 голосов
/ 18 июня 2019

Я пытаюсь воспроизвести файл mp4 с шифрованием DRM через основной список воспроизведения. На наших серверах размещается несколько mp4 с поддержкой разных битрейтов (12 кбит / с, 48 кбит / с, 96 кбит / с, 160 кбит / с, 256 кбит / с и 320 кбит / с).

Каждый отдельный битрейт-файл зашифрован с использованием другого ключа содержимого, а формат contentkeyID - «skd: // contentkeyid_». Например: "skd: // abcdefgh123_12" или "skd: // abcdefgh123_96" и т. Д .:

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

Теперь мой вопрос: если пропускная способность сети изменится, AVPlayer не переключится на другой файл с более высоким или низким битрейтом в зависимости от доступной пропускной способности? Я попытался смоделировать различные условия сети с помощью инструмента «Условие сетевого соединения». Свойство указанного свойства BitBitrate в объекте AVPlayerItemAccessLogEvent, похоже, изменяется, но AVPlayer не выполняет запрос на выбор нового ключа содержимого для другого файла битрейта. Это говорит мне о том, что плеер не переключается на другой файл m3u8.

Приведенный ниже метод не вызывается AVPlayer при других условиях сети: - contentKeySession: didProvideContentKeyRequest;

#EXT-X-MEDIA:TYPE=AUDIO,URI="fb701719be7fff0a0514d27c0c4cca41_c_12.m3u8",GROUP-ID="default-audio-group",NAME="fb701719be7fff0a0514d27c0c4cca41_c_12",CHANNELS="1"  
#EXT-X-MEDIA:TYPE=AUDIO,URI="fb701719be7fff0a0514d27c0c4cca41_c_48.m3u8.",GROUP-ID="default-audio-group",NAME="fb701719be7fff0a0514d27c0c4cca41_c_48",CHANNELS="2"  

#EXT-X-MEDIA:TYPE=AUDIO,URI="fb701719be7fff0a0514d27c0c4cca41_c_96.m3u8",GROUP-ID="default-audio-group",NAME="fb701719be7fff0a0514d27c0c4cca41_c_96",AUTOSELECT=YES,CHANNELS="2"  


#EXT-X-MEDIA:TYPE=AUDIO,URI="fb701719be7fff0a0514d27c0c4cca41_c_160.m3u8",GROUP-ID="default-audio-    group",NAME="fb701719be7fff0a0514d27c0c4cca41_c_160",CHANNELS="2"  


#EXT-X-MEDIA:TYPE=AUDIO,URI="fb701719be7fff0a0514d27c0c4cca41_c_256.m3u8",GROUP-ID="default-audio-group",NAME="fb701719be7fff0a0514d27c0c4cca41_c_256",CHANNELS="2"  


#EXT-X-MEDIA:TYPE=AUDIO,URI="fb701719be7fff0a0514d27c0c4cca41_c_320.m3u8",GROUP-ID="default-audio-group",NAME="fb701719be7fff0a0514d27c0c4cca41_c_320",CHANNELS="2"        

#EXT-X-STREAM-INF:BANDWIDTH=14715,AVERAGE-BANDWIDTH=12618,CODECS="mp4a.40.2",AUDIO="default-audio-group" fb701719be7fff0a0514d27c0c4cca41_c_12.m3u8  

#EXT-X-STREAM-INF:BANDWIDTH=50811,AVERAGE-BANDWIDTH=49418,CODECS="mp4a.40.2",AUDIO="default-audio-group"fb701719be7fff0a0514d27c0c4cca41_c_48.m3u8  

#EXT-X-STREAM-INF:BANDWIDTH=101299,AVERAGE-BANDWIDTH=98918,CODECS="mp4a.40.2",AUDIO="default-audio-group" fb701719be7fff0a0514d27c0c4cca41_c_96.m3u8 

#EXT-X-STREAM-INF:BANDWIDTH=174243,AVERAGE-BANDWIDTH=166777,CODECS="mp4a.40.2",AUDIO="default-audio-group"  
fb701719be7fff0a0514d27c0c4cca41_c_160.m3u8  

#EXT-X-STREAM-INF:BANDWIDTH=276432,AVERAGE-BANDWIDTH=267524,CODECS="mp4a.40.2",AUDIO="default-audio-group" fb701719be7fff0a0514d27c0c4cca41_c_256.m3u8  

#EXT-X-STREAM-INF:BANDWIDTH=344994,AVERAGE-BANDWIDTH=333661,CODECS="mp4a.40.2",AUDIO="default-audio-group"fb701719be7fff0a0514d27c0c4cca41_c_320.m3u8
...