La diffusion Http en direct: EXT-X-DISCONTINUITÉ étiquette de tous les segments par la suite, avoir de l'audio

Je suis à jouer à la diffusion HTTP en Direct sur l'appareil iOS à la famille, à l'aide d'Apple AVPlayer bibliothèque sur iOS 5 et 6.

Depuis que je joue publicités mid-roll, entre le contenu des clips, je suis en utilisant le #EXT-X-DISCONTINUITÉ des balises, comme suggéré par le réalisme de la personne qui a aidé à répondre à une question précédente.

Cela a été de travail pour un même débit, mais je reçois des problèmes seulement lors de l'utilisation d'une variante de la liste de lecture avec l'enfant des listes de lecture pour plusieurs débits. J'obtiens un écran noir avec l'audio seulement après la première discontinuité tag, et il ne retrouve jamais, même après l'annonce. (Je peux entendre l'annonce).

Cela a été testé et reproduit sur un iPhone 4, 4S, 5 et iPod Touch 4ème gen. L'iphone 4 est sous iOS 5, le reste de l'iOS 6. Il arrive la plupart du temps, mais pas à chaque fois. Mais pour sûr, je tiens à souligner que cela se produit uniquement si mon variante de la liste de lecture contient plus d'un bitrate de l'enfant liste de lecture.

Voici un exemple d'une liste de lecture que j'utilise (c'est le 400kbps version, et j'ai un
200 et 800kbps version avec les correspondants des listes de lecture qui ressemblent exactement les suivantes, mais remplacer tous les '400 avec '200' et '800'. (Eh bien, la liste de lecture est plus long mais c'est un exemple).

#EXTM3U
#EXT-X-TARGETDURATION:10
#EXT-X-MEDIA-SEQUENCE:0
#EXTINF:10,
400-clipA-0.ts
#EXTINF:10,
400-clipA-1.ts
#EXTINF:5,
400-clipA-2.ts

#EXT-X-DISCONTINUITY
#EXTINF:10,
400-advert0.ts
#EXTINF:3,
400-advert1.ts

#EXT-X-DISCONTINUITY
#EXTINF:10,
400-clipB-0.ts
#EXTINF:10,
400-clipB-1.ts
#EXTINF:5,
400-clipB-2.ts

#EXT-X-ENDLIST

Et j'ai la variante de liste de lecture qui sélectionne entre l'enfant listes de lecture:

#EXTM3U
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=240000
clips-200.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=440000
clips-400.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=840000
clips-800.m3u8

Remarque que ce qui se passe (~75% du temps), c'est que quand je joue cela, la vidéo va aller pour le noir après la première discontinuité de la balise (juste avant l'annonce) et de ne jamais récupérer de nouveau, même si je peux entendre le son de l'annonce. Par exemple, si j'ai fait ma variante liste de lecture avec un seul débit variante:

#EXTM3U
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=280000
clips-200.m3u8

Alors que je n'ai pas ce problème du tout! Très étrange. En outre, si j'ai enlever toute la discontinuité de balises et de toujours garder l'autre pour les débits dans la variante de la liste de lecture, puis il fonctionne très bien (en général), mais de temps en temps il va sauter d'un ensemble .fichier ts pour une raison quelconque, probablement parce qu'il a besoin de ces discontinuité des balises.

En outre, cela arrive plus souvent quand je joue directement les fichiers sur Amazon Cloudfront, comparativement à partir du compartiment Amazon S3 où ils ont à l'origine résident.

Quelques autres informations qui pourraient vous aider: Mes fichiers d'origine (les clips et les publicités) sont tous .les fichiers mov prises à partir d'un iPhone 4, avec la même résolution sur chaque. Mes sorties (l' .les fichiers ts) se sont ensuite générés à partir de ces -- pour chaque débit de classe, j'ai les mêmes paramètres d'encodage à travers les clips et les publicités. Les sorties sont toutes de la même résolution et le framerate autrement.

Une dernière chose, la mediasegmentvalidator fournis par Apple ne donne pas tous les avertissements lorsque je l'utilise pour vérifier.

J'ai vraiment apprécier l'aide que vous les gars peut vous offrir! C'est une énigme problème pour moi 🙁

Je vais avoir cette extact problème. Avez-vous jamais trouver une solution/solution?

OriginalL'auteur JimTheFoot | 2012-10-26