Video FFMpeg HLS视频转码生成部分播放列表
我正在尝试使用ffmpeg(在OSX上运行)使用以下命令将基本mp4视频转换为HLS视频:Video FFMpeg HLS视频转码生成部分播放列表,video,ffmpeg,http-live-streaming,transcoding,Video,Ffmpeg,Http Live Streaming,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播放列表文件只列出最后四个片段文件,并删除了任何较早的片段。帮助?试试看 ffmpeg -i SampleVideo_1
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
根据,播放列表默认为5个条目,片段持续时间为2秒。这可能解释了为什么您只能在播放列表中看到数量有限的条目。尝试将播放列表的长度(-hls\u list\u size
)设置为0,这将包括所有片段。苹果的段持续时间为10秒。您可以使用-hls\u time
选项设置分段持续时间
作为参考,您也可以使用muxer。以下是我通常在以下情况下使用的命令:
在本例中,输入视频包含H.264视频和AAC音频,因此不需要进行转码。hls\U列表大小标志完美解决了此问题,谢谢。我在文档中看到了这一点,却忽略了这一点,因为我认为他们只会使用(对我来说)合理的默认值,该默认值将包括所有文件。谢谢
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"