Nginx+ffmpeg搭建Apple Http Live Streaming笔记

起始Nginx来搭建HLS步骤非常少

安装好Nginx,然后跑起来

把切片好的视频和m3u8文件放到部署目录,直接访问就可以了

重点是(切片)视频

网上国内国外的找了好多博客

这里一定注意一点,不要用VLC播放器来测试,最好用iPad或者iPhone,再么用Safari开发模式下模拟iPad、iPhone的浏览器模式播放

因为在网上找了很多大家说VLC源码里面对HLS协议支持的不好,甚至快进暂停在源码里压根就没实现!!

下面是ffmpeg对视频进行切片的命令

ffmpeg-y-i%(filename)s-pix_fmtyuv420p-vcodeclibx264-acodeclibfaac-r%(fps)s-profile:vbaseline-b:v%(bitrate)sk-maxrate%(bitrate)sk-force_key_frames%(keyframe_str)s-s%(width)sx%(height)s%-fsegment-segment_list%(target_dir)sindex_%(bitrate)s.m3u8-segment_time%(segment_size)s-segment_list_typem3u8%(filenameNoExt)s_%(count)s.ts

比如

ffmpeg-y-iinfile.mp4-pix_fmtyuv420p-vcodeclibx264-acodeclibfaac-r25-profile:vbaseline-b:v1500k-maxrate2000k-force_key_frames50-s640×360-map0-flags-global_header-fsegment-segment_list/tmp/index_1500.m3u8-segment_time10-segment_formatmpeg_ts-segment_list_typem3u8/tmp/segment%05d.ts

https://ffmpeg.org/ffmpeg-formats.html#segment_002c-stream_005fsegment_002c-ssegment

上面这个链接介绍了大概的命令解释,但是ffmpeg开发的人多,版本更新的也快,就是写说明文档的人特别少,写的也让人看不懂,不会用啊!!!

我的文件是用的MP4

所以用了一下命令

ffmpeg-iinput.mp4-codeccopy-map0-bsfh264_mp4toannexb-ccopy-fsegment-segment_list™output.m3u8-segment_time10output-%03d.ts

目前还有一个需要研究,就是我把文件放在其他路径,写成绝对路径的时候,.m3u8文件里面也会对应编程绝对路径,就会导致文件播放不了,这个还有待于继续研究,先坐下笔记

相关推荐