2017-09-19 3 views
0

I adaptiven Strom umzusetzen versuchen HLS ich mit Video in 4 verschiedener Auflösung mit .m3u8 Erweiterung codiert habeErstellen von Master-Playlist für HLS

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

ich sie codierte FFMPEG jetzt will ich sich alle in einem Master wickeln HLS Wiedergabeliste. Wie kann ich dies in einem automatisierten Prozess erreichen?

#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

Was haben Sie bisher versucht? Welche Fehlermeldung haben Sie erhalten? – BPS

+0

Verwenden Sie 'ffprobe', um die Dateiinformationen zu erhalten, wenn das die Frage ist. Für die Bitrate sollten Sie den Zielwert bereits kennen. Fügen Sie einfach den Muxing-Overhead hinzu, der nach Abschluss der Codierung von 'ffmpeg' gemeldet wird. – aergistal

+0

@BPS Ich habe versucht, es manuell von mir selbst zu erstellen, wie ich in einer Antwort auf eine Frage hier am Stapelüberlauf lese, aber jetzt wollte ich diesen Prozess automatisieren –

Antwort

1

Ich fand es heraus mit Dateihandling in 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);