5

我正在使用 ffmpeg 生成 m3u8 文件。

命令如下:

ffmpeg -i sourcefile.mp4 -vcodec libx264 -acodec libvo_aacenc -b:v 128k -flags -global_header -map 0:0 -map 0:1 -f segment -segment_time 4 -segment_list_size 0 -segment_list testlist.m3u8 -segment_format mpegts stream%05d.ts

这成功地创建了 m3u8 文件,但它没有添加扩展的 m3u8 指令。

那么,如何添加这些指令呢?

提前致谢,

萨加尔乔希

4

1 回答 1

4

根据HTTP Live Streaming规范,除非您使用的是旧版本的 ffmpeg(我使用的是 1.0),否则它创建的 m3u8 文件就可以了。

我的看起来像这样(而 ffmpeg 仍在编码):

#EXTM3U
#EXT-X-VERSION:3
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-ALLOWCACHE:1
#EXTINF:8.308300,
stream00000.ts
#EXTINF:8.341667,
stream00001.ts

通过省略#EXT-X-ENDLIST 标记,客户端应该知道重新加载此 m3u8 文件以获取更多媒体。这是概述here。一旦 ffmpeg 退出(或者我 ctrl-c 退出)#EXT-X-ENDLIST 就会添加到文件的末尾。

于 2013-01-17T18:38:13.247 回答