我正在尝试使用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
播放列表文件仅列出最后四个段文件,从而删除任何早期段。帮助
答案 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