FFmpeg+Nginx将视频转为hls点播视频流

简介: FFmpeg+Nginx将视频转为hls点播视频流

 一、FFmpeg+Nginx转流hls

1、FFmpeg安装

windows下安装:

解压FFmpeg文件夹,配置环境变量:在“Path”变量原有变量值内容上加上d:\ffmpeg\bin,验证:ffmpeg -version 出现版本号则成功,如下图所示。

image.gif编辑

image.gif编辑

2、Nginx安装

Windows下安装:

下载进行解压,进入windowcmd窗口,输入如下图所示的命令,进入到nginx目录,使用start nginx.exe进行nginx的启动,如下图所示:

image.gif编辑

启动成功后,在任务管理器中会看到“nginx.exe”进程,如下图所示:

image.gif编辑

在浏览器地址栏输入:127.0.0.1,会看到如下图所示的nginx欢迎界面

image.gif编辑

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 *
;
}

image.gif

注:下面用ffmepg转流需要指定目标路径为上面配置的nginx/html/hls
在nginx目录html下创建配置的目标路径目录hls,然后,使用“nginx.exe -s reload”命令重启nginx服务,如下所示

image.gif编辑

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

image.gif编辑

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

    演示图片

    image.gif编辑


    相关文章
    |
    2天前
    |
    Web App开发 编解码 安全
    视频会议技术 入门探究:WebRTC、Qt与FFmpeg在视频编解码中的应用
    视频会议技术 入门探究:WebRTC、Qt与FFmpeg在视频编解码中的应用
    189 4
    |
    2天前
    |
    存储 编解码 数据处理
    【FFmpeg 视频基本格式】深入理解FFmpeg:从YUV到PCM,解码到编码(三)
    【FFmpeg 视频基本格式】深入理解FFmpeg:从YUV到PCM,解码到编码
    51 0
    |
    2天前
    |
    存储 编解码 数据处理
    【FFmpeg 视频基本格式】深入理解FFmpeg:从YUV到PCM,解码到编码(二)
    【FFmpeg 视频基本格式】深入理解FFmpeg:从YUV到PCM,解码到编码
    52 0
    |
    2天前
    |
    编解码 算法 vr&ar
    深度剖析FFmpeg视频解码后的帧处理到Qt显示 从AVFrame到QImage的转换(二)
    深度剖析FFmpeg视频解码后的帧处理到Qt显示 从AVFrame到QImage的转换
    51 1
    |
    2天前
    |
    存储 编解码 算法
    深度剖析FFmpeg视频解码后的帧处理到Qt显示 从AVFrame到QImage的转换(一)
    深度剖析FFmpeg视频解码后的帧处理到Qt显示 从AVFrame到QImage的转换
    95 1
    |
    2天前
    |
    编解码 C语言
    FFMPEG 获取视频PTS
    FFMPEG 获取视频PTS
    15 0
    |
    2天前
    |
    网络协议 API 网络安全
    探讨TCP传输视频流并利用FFmpeg进行播放的过程
    探讨TCP传输视频流并利用FFmpeg进行播放的过程
    62 0
    |
    2天前
    |
    编解码 Linux API
    【FFmpeg 视频流处理】FFmpeg API深度解析:视频流画面合并、拼接与裁剪技巧
    【FFmpeg 视频流处理】FFmpeg API深度解析:视频流画面合并、拼接与裁剪技巧
    119 0
    |
    2天前
    |
    编解码 API 数据处理
    【摄像头数据处理】摄像头数据处理:使用FFmpeg合并、编码和封装视频流
    【摄像头数据处理】摄像头数据处理:使用FFmpeg合并、编码和封装视频流
    63 0
    |
    2天前
    |
    设计模式 存储 缓存
    【ffmpeg C++ 播放器优化实战】优化你的视频播放器:使用策略模式和单例模式进行视频优化
    【ffmpeg C++ 播放器优化实战】优化你的视频播放器:使用策略模式和单例模式进行视频优化
    64 0