【发布时间】:2016-01-14 03:36:47
【问题描述】:
我有 mp4 文件(Big Buck Bunny):
时长:00:09:56.50
比特率:2048 kb/s
尺寸:1280x720
帧率:29.97
我在 2 秒后设置了恒定关键帧。
我想为 HLS 准备这个视频。
我用它来生成 m3u8 播放列表并生成 ts 块:
ffmpeg -i input.mp4 -hls_time 2 out.m3u8
但不幸的是,我不明白它是如何工作的。
我认为这个命令会生成 298 个 2 秒的块,但它只生成 152 个不同长度(3 - 9 秒)的块。
但最奇怪的是它创建了只有 5 个文件链接的 m3u8 文件。
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:9
#EXT-X-MEDIA-SEQUENCE:148
#EXTINF:8.341667,
out148.ts
#EXTINF:7.841167,
out149.ts
#EXTINF:0.967633,
out150.ts
#EXTINF:8.341667,
out151.ts
#EXTINF:7.140467,
out152.ts
#EXT-X-ENDLIST
我认为 m3u8 文件必须包含视频的所有部分。有人可以解释一下如何每 2 秒创建 298 个块并正确填充 m3u8 文件吗?
【问题讨论】:
-
只有
VOD和EVENT播放列表包含所有片段,而后者仅在活动结束时才包含。LIVE播放列表使用滑动窗口。
标签: ffmpeg video-encoding http-live-streaming m3u8