2017-04-18 2 views
0

Pour l'écran d'accueil de mon application, nous essayons de diffuser une page Web dans une page Web comprenant une vidéo et du texte. (Nous voulons suivre cette voie afin de pouvoir rapidement mettre à jour l'écran d'accueil et tester les modifications à la volée, plutôt que de devoir soumettre et obtenir l'approbation à chaque fois.)Meilleur service de diffusion en continu de mp4 dans Webview

La vidéo ne fait que 8,6 Mo et est en cours de lecture via HTML5, hébergé sur un S3 et servi via CloudFront. Cependant, la lecture a tendance à être parfois un peu saccadée. Est-ce que quelqu'un a des recommandations quant à une façon optimale d'héberger et de servir la vidéo pour la faire jouer en douceur? Y a-t-il des paramètres spécifiques pour le S3 ou CloudFront que quelqu'un pourrait recommander?

Merci d'avance pour toute aide que vous pouvez fournir.

Répondre

1

La technique la plus courante actuellement consiste à utiliser ABR en parallèle avec un CDN pour assurer une lecture fluide. Le débit binaire adaptatif (ABR, Adaptive Bit Rate) consiste à effectuer plusieurs copies de la vidéo à différents débits binaires, de bas en haut, et à les héberger sur le serveur.

Le client reçoit un fichier d'index pour les vidéos, par ex. un fichier manifest m3u8, puis choisit le meilleur débit pour les conditions actuelles pour permettre une lecture sans buffer.

Si les conditions réseau s'améliorent, le client augmentera les débits binaires et, s'il s'aggrave, réduira les débits binaires.

Généralement, un débit binaire faible ou moyen est choisi comme premier débit pour permettre un démarrage rapide et en douceur.

Vous pouvez voir cet effet sur des services comme Netflix au démarrage, et vous pouvez également le voir sur YouTube si vous cliquez avec le bouton droit de la souris sur la vidéo et sélectionnez "Stats for Nerds".

Quelques liens pour ABR dans AWS Elastic transcoding - vous pouvez définir les débits souhaités, par ex. voir la note ci-dessous de leur FAQ sur les travaux HLS:

Spécifiez que le travail de transcodage crée une liste de lecture qui référence les sorties. Vous devriez ordonner vos débits binaires de la plus basse à la plus haute, avec le flux audio seulement en dernier, puisque cet ordre sera maintenu dans le fichier de playlist généré. Une fois le travail de transcodage terminé, le compartiment de sortie contiendra une disposition appropriée de vos listes de lecture principales et individuelles M3U8, ainsi que des fragments de flux multimédia MPEG-2 TS.

Jetez un oeil à la demande de l'échantillon sur cette page ici qui comprend deux débits différents (fournisseurs de services vidéo ont généralement plus de 2, mais cela vous donne une idée de l'approche):

+0

Mick, merci pour la réponse. Donc, sur AWS, ABR est-il l'équivalent de leur service Elastic Transcoder? Je commençais à jouer avec ça, mais j'avais du mal à comprendre si je l'avais configuré correctement, et à quoi ressemblait le code HTML (dans la balise

+1

Elastic Transcode est le terme générique pour le service de transcodage AWS, mais il prend en charge ABR - si vous recherchez des débits ABR et HLS avec le transcodage élastique AWS, vous devriez voir quelques exemples, mais j'en ajouterai un dans la réponse. Le chemin .m3u8 est ce que vous utilisez comme src pour la balise vidéo, comme vous le notez, pour HTMl5. – Mick

+0

Désolé, toujours comprendre cela comme je vais. Y a-t-il une liste des sorties (et dans quel ordre) que je devrais sélectionner lorsque je crée les sorties pour la Playlist? Je commençais avec HLS Video - 2M, mais je ne savais pas exactement quelles sorties (et combien) j'avais vraiment besoin. – jmarx34