2017-09-19 14 views
0

Je suis en train de mettre en œuvre flux adaptatif en utilisant HLS je vidéo encodée en 4 résolution avec .m3u8 l'extensionCréation playlist maître pour HLS

legend_240.m3u8 
legend_360.m3u8 
legend_480.m3u8 
legend_720.m3u8 

Je les ai codées à l'aide FFMPEG maintenant je veux les envelopper le tout dans un maître HLS playlist. Comment puis-je y parvenir dans un processus automatisé?

#EXTM3U 
#EXT-X-VERSION:3 
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=17556000,RESOLUTION=428x240 
legend_240.m3u8 
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=28556000,RESOLUTION=640x360 
legend_360.m3u8 
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=56056000,RESOLUTION=854x480 
legend_480.m3u8 
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=73056000,RESOLUTION=1280x720 
legend_720.m3u8 
+0

Qu'avez-vous essayé jusqu'à présent? Quel message d'erreur avez-vous reçu? – BPS

+0

Utilisez 'ffprobe' pour obtenir les informations sur le fichier, si c'est la question. Pour le débit, vous devriez déjà connaître la valeur ciblée, donc ajoutez juste le surcoût de multiplexage rapporté par 'ffmpeg' quand il aura terminé le codage. – aergistal

+0

@BPS j'ai essayé de le créer manuellement par moi-même comme je lis dans une réponse d'une question ici à pile débordement mais maintenant je voulais automatiser ce processus –

Répondre

1

Je l'ai compris en utilisant la gestion de fichiers en PHP.

 $myfile = fopen($this->raw_path."/".$this->file_name.".m3u8", "w") or die("Unable to open file!"); 

     $txt = "#EXTM3U\n"; 

     fwrite($myfile, $txt); 

     $txt = "#EXT-X-VERSION:3\n"; 

     fwrite($myfile, $txt); 
     // fclose($myfile); 
     if($convertedRes['720']){ 

     $txt = "#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=73056000,RESOLUTION=1280x720\n"; 
     fwrite($myfile, $txt); 
     $txt = $this->file_name."/".$this->file_name."-720.m3u8\n"; 
     fwrite($myfile, $txt); 

     } 
     if($convertedRes['480']){ 

     $txt = "#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=5605600,RESOLUTION=854x480\n"; 
     fwrite($myfile, $txt); 
     $txt = $this->file_name."/".$this->file_name."-480.m3u8\n"; 
     fwrite($myfile, $txt); 

     } 

     if($convertedRes['360']){ 

     $txt = "#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=2855600,RESOLUTION=640x360\n"; 
     fwrite($myfile, $txt); 
     $txt = $this->file_name."/".$this->file_name."-360.m3u8\n"; 
     fwrite($myfile, $txt); 

     } 

     if($convertedRes['240']){ 


     $txt = "#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1755600,RESOLUTION=428x240\n"; 
     fwrite($myfile, $txt); 
     $txt = $this->file_name."/".$this->file_name."-240.m3u8\n"; 
     fwrite($myfile, $txt); 


     } 


fclose($myfile);