FFMpeg HLS视频转码生成部分播放列表

时间:2016-02-16 22:33:41

标签: video ffmpeg hls transcoding

我正在尝试使用ffmpeg(在OSX上运行)使用以下命令将基本mp4视频转换为HLS视频:

ffmpeg -i SampleVideo_1280x720_10mb.mp4 -codec:v libx264 -codec:a aac -strict experimental -start_number 1 out.m3u8

它确实设法生成所有.ts段文件,但生成的.m3u8播放列表文件仅列出最后四个段文件,从而删除任何早期段。帮助

2 个答案:

答案 0 :(得分:2)

根据 ffmpeg documentation,播放列表默认为5个条目,段持续时间为2秒。这可能解释了为什么您只在播放列表中看到有限数量的条目。尝试将播放列表的长度(-hls_list_size)设置为0,其中包括所有段。 Apple recommends段持续时间为10秒。您可以使用-hls_time选项设置细分持续时间。

作为参考,您还可以使用segment复用器。这是我在segmenting video with ffmpeg时通常使用的命令:

ffmpeg -y \
 -i input.mov \
 -codec copy \
 -bsf h264_mp4toannexb \
 -map 0 \
 -f segment \
 -segment_time 10 \
 -segment_format mpegts \
 -segment_list "/Library/WebServer/Documents/vod/prog_index.m3u8" \
 -segment_list_type m3u8 \
 "/Library/WebServer/Documents/vod/fileSequence%d.ts"

在这种情况下,输入视频包含H.264视频和AAC音频,因此不需要进行转码。

答案 1 :(得分:1)

尝试

ffmpeg -i SampleVideo_1280x720_10mb.mp4 -c:v libx264 -c:a aac -strict -2 -start_number 1 -hls_list_size 0 out.m3u8