Nginx+ffmpeg搭建Apple Http Live Streaming笔记

自作多情 提交于 2019-12-05 21:29:47
起始Nginx来搭建HLS步骤非常少 

安装好Nginx,然后跑起来 

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

重点是(切片)视频 



网上国内国外的找了好多博客 
这里一定注意一点,不要用VLC播放器来测试,最好用iPad或者iPhone,再么用Safari 开发模式下模拟iPad、iPhone的浏览器模式播放 

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


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

ffmpeg -y -i %(filename)s -pix_fmt yuv420p -vcodec libx264 -acodec libfaac -r %(fps)s -profile:v baseline -b:v %(bitrate)sk -maxrate %(bitrate)sk  -force_key_frames %(keyframe_str)s -s %(width)sx%(height)s %-f segment -segment_list %(target_dir)sindex_%(bitrate)s.m3u8 -segment_time %(segment_size)s  -segment_list_type m3u8 %(filenameNoExt)s_%(count)s.ts 
比如 
ffmpeg -y -i infile.mp4 -pix_fmt yuv420p -vcodec libx264 -acodec libfaac -r 25 -profile:v baseline -b:v 1500k -maxrate 2000k -force_key_frames 50 -s 640×360 -map 0 -flags -global_header -f segment -segment_list /tmp/index_1500.m3u8 -segment_time 10 -segment_format mpeg_ts -segment_list_type m3u8 /tmp/segment%05d.ts 

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

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

我的文件是用的MP4 
所以用了一下命令 
ffmpeg -i input.mp4 -codec copy -map 0 -bsf h264_mp4toannexb -c copy -f segment -segment_list ™output.m3u8 -segment_time 10 output-%03d.ts 


目前还有一个需要研究,就是我把文件放在其他路径,写成 绝对路径的时候,.m3u8文件里面也会对应编程绝对路径,就会导致文件播放不了,这个还有待于继续研究,先坐下笔记 
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!