一、FFmpeg+Nginx转流hls
1、FFmpeg安装
windows下安装:
解压FFmpeg文件夹,配置环境变量:在“Path”变量原有变量值内容上加上d:\ffmpeg\bin,验证:ffmpeg -version 出现版本号则成功,如下图所示。
编辑
编辑
2、Nginx安装
Windows下安装:
下载进行解压,进入window的cmd窗口,输入如下图所示的命令,进入到nginx目录,使用“start nginx.exe”进行nginx的启动,如下图所示:
编辑
启动成功后,在“任务管理器”中会看到“nginx.exe”进程,如下图所示:
编辑
在浏览器地址栏输入:127.0.0.1,会看到如下图所示的nginx欢迎界面
编辑
3、Nginx配置
修改配置文件:nginx/conf/nginx.conf
在http --> server下增加:
# ffmpeg生成hls流的http访问配置 location /hls { #若nginx\conf\mime.types中没有配置如下type,请加上,或直接在mime.types加 #types{ # application/vnd.apple.mpegurl m3u8; # application/x-mpegURL m3u8; # video/mp2t ts; #} root html ; #add_header Cache-Control no-cache; add_header Access-Control-Allow-Origin * ; }
注:下面用ffmepg转流需要指定目标路径为上面配置的nginx/html/hls
。
在nginx目录html下创建配置的目标路径目录hls,然后,使用“nginx.exe -s reload”命令重启nginx服务,如下所示
编辑
4、FFmpeg命令行转流
ffmpeg -i "rtsp://wowzaec2demo.streamlock.net/vod/mp4:BigBuckBunny_115k.mov" -c copy -f hls -hls_time 2 -hls_list_size 1 -hls_wrap 15 E:/soft/nginx-1.18.0/html/hls/test.m3u8
其中:rtsp://wowzaec2demo.streamlock.net/vod/mp4:BigBuckBunny_115k.mov是对应视频设备的rtsp地址,E:/soft/nginx-1.18.0/html/hls/test.m3u8 是对应nginx.conf配置中的hls访问路径/hls
编辑
ffmpeg 关于hls方面的指令说明:
- -hls_time n: 设置每片的长度,默认值为2。单位为秒
- -hls_list_size n:设置播放列表保存的最多条目,设置为0会保存有所片信息,默认值为5
- -hls_wrap n:设置多少片之后开始覆盖,如果设置为0则不会覆盖,默认值为0.这个选项能够避免在磁盘上存储过多的片,而且能够限制写入磁盘的最多的片的数量
- -hls_start_number n:设置播放列表中sequence number的值为number,默认值为0
演示图片
编辑