FFMPEG生成一个空的主播放列表

时间:2019-10-23 12:13:23

标签: php ffmpeg http-live-streaming

我使用以下FFMPEG命令生成播放列表和主播放列表,以便以后插入支持HLS的播放器中:

ffmpeg/ffmpeg.exe -i input/test.mp4 
-preset fast  
-g 150 
-sc_threshold 0 
-threads 4 
-map 0:v:0 -map 0:a:0 -map 0:v:0 -map 0:a:0 -map 0:v:0 -map 0:a:0 -map 0:v:0 -map 0:a:0 
-filter:v:0 scale=h=240:w=-2  -minrate:v:0 75k  -maxrate:v:0 218k  -bufsize:v:0 300k -b:v:0 150k  
-filter:v:1 scale=h=360:w=-2  -minrate:v:1 138k -maxrate:v:1 400k -bufsize:v:1 552k -b:v:1 276k 
-filter:v:2 scale=h=480:w=-2 -minrate:v:2 375k -maxrate:v:2 1088k -bufsize:v:2 1500k -b:v:2 750k 
-filter:v:3 scale=h=720:w=-2  -minrate:v:3 512k -maxrate:v:3 1485k -bufsize:v:3 2048k -b:v:3 1024k 
-var_stream_map "v:0,a:0 v:1,a:1 v:2,a:2 v:3,a:3" 
-master_pl_name master.m3u8 
-f hls -hls_time 6 -segment_time 6 -hls_list_size 0 -segment_format mpegts 
-hls_playlist_type vod -hls_segment_filename "output/conversion/K8eYn1X1/res-%v/segment-%d.ts"  output/conversion/K8eYn1X1/res-%v/playlist.m3u8 

基于各种来源的信息,此命令行应执行以下操作:

  1. 从输入文件中获取视频流,

  2. 四次应用具有不同设置的过滤器

  3. 将其合并为一个流

  4. 切成TS片段6秒钟,

  5. 将有关每种分辨率的信息写入播放列表。m3u8,

  6. 创建一个主播放列表,并在其中写入有关即将到来的播放列表的信息

一切正常,但是:创建了片段,创建了播放列表,但主文件为空

如果您使用命令行播放,更准确地说,仅保留一个过滤器,则一切正常:剪切片段并创建播放列表,并创建主播放列表

此外,我注意到,如果我观看了存储所有文件的文件夹,我会注意到一件事:使用上面给出的命令时,将创建一个7kb的文件,然后在同一秒内,它似乎是已清除。为什么会这样,我不明白

完成日志中的处理后,最后一行:

[hls @ 000001ff73b87200] Opening 'output/conversion/K8eYn1X1/master.m3u8' for writing

也许我做错了什么?也许命令顺序错误?告诉我,谁知道?

谢谢

0 个答案:

没有答案