FFMpeg HLS 视频转码生成部分播放列表
FFMpeg HLS Video Transcoding Generating Partial Playlist
我正在尝试使用以下命令使用 ffmpeg(运行 on OSX)将基本的 mp4 视频转换为 HLS 视频:
ffmpeg -i SampleVideo_1280x720_10mb.mp4 -codec:v libx264 -codec:a aac -strict experimental -start_number 1 out.m3u8
它确实设法生成了所有 .ts
片段文件,但生成的 .m3u8
播放列表文件仅列出了最后四个片段文件,删除了任何较早的片段。帮忙?
尝试
ffmpeg -i SampleVideo_1280x720_10mb.mp4 -c:v libx264 -c:a aac -strict -2 -start_number 1 -hls_list_size 0 out.m3u8
根据 ffmpeg documentation, the playlist defaults to 5 entries and a segment duration of 2 seconds. This probably explains why you are only seeing a limited number of entries in the playlist. Try setting the length of the playlist (-hls_list_size
) to 0, which will include all the segments. Apple recommends,一段时长为10秒。您可以使用 -hls_time
选项设置片段持续时间。
作为参考,您也可以使用 segment muxer. Here's the command I usually use when 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 音频,因此不需要转码。
我正在尝试使用以下命令使用 ffmpeg(运行 on OSX)将基本的 mp4 视频转换为 HLS 视频:
ffmpeg -i SampleVideo_1280x720_10mb.mp4 -codec:v libx264 -codec:a aac -strict experimental -start_number 1 out.m3u8
它确实设法生成了所有 .ts
片段文件,但生成的 .m3u8
播放列表文件仅列出了最后四个片段文件,删除了任何较早的片段。帮忙?
尝试
ffmpeg -i SampleVideo_1280x720_10mb.mp4 -c:v libx264 -c:a aac -strict -2 -start_number 1 -hls_list_size 0 out.m3u8
根据 ffmpeg documentation, the playlist defaults to 5 entries and a segment duration of 2 seconds. This probably explains why you are only seeing a limited number of entries in the playlist. Try setting the length of the playlist (-hls_list_size
) to 0, which will include all the segments. Apple recommends,一段时长为10秒。您可以使用 -hls_time
选项设置片段持续时间。
作为参考,您也可以使用 segment muxer. Here's the command I usually use when 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 音频,因此不需要转码。