利用ffmpeg生成m3u8流媒体文件。
ffmpeg的安装和基本介绍,可移步这篇文章:
ffmpeg安装
生成m3u8流媒体文件
命令:
1 | ffmpeg -i video_subclip.mp4 -vcodec copy -acodec copy -bsf:v h264_mp4toannexb -hls_time 10 -hls_list_size 0 -f hls m3u8/video.m3u8 |
输出的结果文件:
参数释义:
ffmpeg命令是用来将一个名为video_subclip.mp4的MP4视频文件转换成HLS(HTTP Live Streaming)流媒体格式的。下面是命令中每个参数的含义:
- -i video_subclip.mp4:指定输入文件是video_subclip.mp4。
- -vcodec copy:指定视频编解码器使用复制模式,即不转换视频,直接使用原始视频流。
- -acodec copy:指定音频编解码器使用复制模式,即不转换音频,直接使用原始音频流。
- -bsf:v h264_mp4toannexb:使用比特流过滤器(bitstream filter)将H.264视频码流从MP4格式转换为AnnexB格式。这是因为HLS通常使用AnnexB格式的H.264码流。
- -hls_time 10:设置每个HLS视频分块(segment)的时间长度为10秒。
- -hls_list_size 0:设置HLS播放列表(m3u8文件)中包含的分块数量。如果设置为0,表示不限制列表中的分块数量,将包含所有生成的分块。
- -f hls:指定输出格式为HLS。
- m3u8/video.m3u8:指定输出文件的基本路径和文件名。video.m3u8是播放列表文件,它将包含指向实际媒体数据分块的引用。
总结来说,这个命令会创建一个HLS流,其中视频和音频码流不做任何转换,直接复制原始MP4文件中的流,并将H.264视频码流转换为AnnexB格式以兼容HLS标准。生成的HLS流将由一个播放列表文件(video.m3u8)和多个媒体数据分块组成,每个分块时长为10秒。
运行结果如下:
html加载m3u8流媒体文件
1 | <!DOCTYPE html> |
好记性不如烂笔头。
欢迎关注微信公众号,你的资源可变现:【乐知付加密平台】
一起学习,一起进步。
