Comment créer des dynamiques m3u8 en collant l'URL dans le navigateur?
Je veux créer une dynamique m3u8 lorsqu'un script PHP est appelé. Je ne veux pas enregistrer le résultat m3u8 sur le serveur, au lieu de cela, je veux pousser pour navigateur de sorte qu'il est téléchargeable. Quelqu'un pourrait-il me montrer comment je peux réaliser cette tâche?
Exemple de script PHP pour être appelé:
http://www.asite.com/makeM3u8.php?videoId=1234
Téléchargeable dynamique m3u8 structure:
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=900000
http://someserver/channelNameBandwith900000.m3u8?session=3495732948523984eriuwehiurweirew
- Je prendre ce que vous voulez charger un fichier M3U de manière dynamique, de le convertir en temps réel, et l'envoyer à l'utilisateur pour le téléchargement? Qui pourrait être possible. Ce type de fichier sont les tailles de vos fichiers en entrée? Quelles recherches avez-vous fait jusqu'à présent pour résoudre ce problème?
OriginalL'auteur user1788736 | 2014-08-20
Vous devez vous connecter pour publier un commentaire.
Vous avez à décider d'un certain nombre de choses avant d'arriver à l'script:
1.- Où sont les .ts et .aac les fichiers stockés, ce qui est leur système de protection et de PHP est capable de créer une URL qui est en mesure d'y accéder?
2.- Où vous stockez les premières m3u8 de l'information (la cible durée, extinf et le nom de chaque segment). La base de données est plus rapide que l'analyse des fichiers existants dans ce cas.
3.- Si vous traitez avec multibitrate, vous avez besoin d'un script qui génère aussi des le maître m3u8 qui points à tous les autres.
Cela étant dit, voici la solution, je suis venu avec et l'ai utilisé pendant un certain temps sans problèmes. Deux choses, cependant, je l'utiliser AWS S3 pour le stockage et convertir des fichiers vidéo avec ffmpeg. C'est un assez long processus - peut-être exagéré pour ce que vous voulez, mais il fonctionne.
Partie 1.- L'encodage des fichiers Le système reçoit des vidéos MP4 et les convertit les formats requis.
Partie 2.- Segmenter les fichiers Le système prend le converti MP4s et des segments entre eux.
Partie 3.- Le stockage des données de Le système analyse l'généré m3u8s et stocke les informations pertinentes dans une base de données.
Table:
Fonction d'analyse:
Les résultats de chaque fichier sont stockées dans le rapport des colonnes pour chaque taille de la vidéo comme un json-chaîne codée, sachez que je suis de stocker le minimum d'informations possible afin de minimiser les temps de lecture et de rendre la base de données la plus petite possible. Dans cette étape, la vitesse n'a pas vraiment d'importance, puisque c'est avant de servir le fichier.
De la partie 4.- Desservant le fichier Le système lit la base de données et sert le fichier approprié pour chaque taille.
Pour cela, j'ai un m3u8.domain.com qui envoie tous les *.m3u8 fichiers PHP, donc je ne vous embêtez pas avec le renommage, cela sert uniquement les fichiers suivants:
Chacun est son propre fichier parce que certains joueurs ont eu des problèmes si différentes de la bande passante m3u8s avaient tous le même nom.
Le maître.m3u8 fait ceci:
Interroge la base de données pour toutes les différentes résolutions et les échos de l'url correcte pour chacun. Si elle n'existe pas (mis à {} dans mon schéma), il n'est pas fait l'écho.
Chaque res.m3u8 effectue les opérations suivantes (quand on l'appelle):
Il y a quelques choses qui se passent ici, alors laissez-moi vous expliquer:
un.- D'abord le script vérifie la validité de la session, si l'un n'existe pas, il sert une m3u8 pour une petite vidéo de 10 seconde en disant: "vous n'avez pas l'autorisation d'afficher ce".
b.- Si la session vérifie, il interroge la base de données et obtient tout le nécessaire JSONs. Il s'interroge également sur une autre table où je stocke la durée du fichier afin de remplir la TARGETDURATION chaîne et également de calculer la durée de vie de la secure URL S3 à générer. J'ai défini la durée de vie de l'URL à 1,5 x la longueur de la vidéo, ça fonctionne pour moi, votre expérience peut être différente.
c.- Ensuite, il parcourt chaque groupe à partir de la base de données, les échos de l'EXTINF et génère une URL sécurisée pour chacun.
OriginalL'auteur hdezela