@@ -36,7 +36,8 @@ private function HLSFilter(HLS $hls): array
36
36
$ reps = $ hls ->getRepresentations ();
37
37
$ path_parts = $ hls ->getPathInfo ();
38
38
$ dirname = str_replace ("\\" , "/ " , $ path_parts ["dirname " ]);
39
- list ($ ts_sub_dir , $ base_url ) = $ this ->getSubDirectory ($ hls , $ dirname );
39
+ list ($ seg_sub_dir , $ base_url ) = $ this ->getSubDirectory ($ hls , $ dirname );
40
+ $ full_seg_filename = $ dirname . "/ " . $ seg_sub_dir . $ path_parts ["filename " ];
40
41
41
42
foreach ($ reps as $ key => $ rep ) {
42
43
if ($ key ) {
@@ -64,8 +65,12 @@ private function HLSFilter(HLS $hls): array
64
65
$ filter = array_merge ($ filter , $ this ->getAudioBitrate ($ rep ));
65
66
$ filter [] = "-maxrate " ;
66
67
$ filter [] = intval ($ rep ->getKiloBitrate () * 1.2 ) . "k " ;
68
+ $ filter [] = "-hls_segment_type " ;
69
+ $ filter [] = $ hls ->getHlsSegmentType ();
70
+ $ filter [] = "-hls_fmp4_init_filename " ;
71
+ $ filter [] = $ path_parts ["filename " ] . "_ " . $ hls ->getHlsFmp4InitFilename ();
67
72
$ filter [] = "-hls_segment_filename " ;
68
- $ filter [] = $ dirname . " / " . $ ts_sub_dir . $ path_parts [ " filename " ] . " _ " . $ rep -> getHeight () . " p_%04d.ts " ;
73
+ $ filter [] = $ this -> getSegmentFilename ( $ full_seg_filename , $ rep , $ hls -> getHlsSegmentType ()) ;
69
74
$ filter = array_merge ($ filter , $ this ->getBaseURL ($ base_url ));
70
75
$ filter = array_merge ($ filter , $ this ->getKeyInfo ($ hls ));
71
76
$ filter = array_merge ($ filter , $ hls ->getAdditionalParams ());
@@ -135,4 +140,16 @@ private function getAudioBitrate(Representation $rep): array
135
140
{
136
141
return $ rep ->getAudioKiloBitrate () ? ["-b:a " , $ rep ->getAudioKiloBitrate () . "k " ] : [];
137
142
}
143
+
144
+ /**
145
+ * @param string $full_seg_filename
146
+ * @param Representation $rep
147
+ * @param string $type
148
+ * @return string
149
+ */
150
+ private function getSegmentFilename (string $ full_seg_filename , Representation $ rep , string $ type ): string
151
+ {
152
+ $ ext = ($ type === "fmp4 " ) ? "m4s " : "ts " ;
153
+ return $ full_seg_filename . "_ " . $ rep ->getHeight () . "p_%04d. " . $ ext ;
154
+ }
138
155
}
0 commit comments