服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

云服务器|WEB服务器|FTP服务器|邮件服务器|虚拟主机|服务器安全|DNS服务器|服务器知识|Nginx|IIS|Tomcat|

服务器之家 - 服务器技术 - Nginx - 使用nginx和ffmpeg搭建HLS流媒体服务器

使用nginx和ffmpeg搭建HLS流媒体服务器

2023-10-18 15:14壹零仓 Nginx

最近研究HLS流媒体协议,需要临时搭建HLS服务器,这里记录下搭建的过程(操作系统:CentOS Linux release 7.9.2009 (Core))

使用nginxffmpeg搭建HLS流媒体服务器

最近研究HLS流媒体协议,需要临时搭建HLS服务器,这里记录下搭建的过程(操作系统:CentOS Linux release 7.9.2009 (Core))

1 安装ffmpeg

  • 下载ffmpeg源码:下载地址,直接从官网下载,也可从公众号壹零仓,发送软件工具,获取ffmpeg的源码,文件名为:ffmpeg-snapshot.tar.bz2
  • 上传源码压缩包到到centos7 系统,centos7中安装依赖项:
yum install bzip2
yum install yasm
  • 解压ffmpeg源码:tar -jxvf ffmpeg-snapshot.tar.bz2
  • 接入解压目录,配置编译项:./configure --enable-shared --prefix=/usr/ffmpeg
  • 编译和安装:make && make install
  • 添加ffmpeg运行库到系统连接路径中,vi /etc/ld.so.conf,在文件末尾输入:/usr/ffmpeg/lib/,执行:ldconfig,使其生效
  • 修改运行环境参数,体检ffmpeg路径,vi /etc/profile,在文件中添加:
PATH=$PATH:/usr/ffmpeg/bin
export PATH

执行命令:source /etc/profile

  • 验证是否安装成功:直接在centos7 ssh终端下输入:ffmpeg,看是否弹出版本信息,弹出相关信息即表示安装成功

    使用nginx和ffmpeg搭建HLS流媒体服务器

2 安装nginx

参照:《使用nginx临时搭建rtmp流媒体服务器》文章中介绍的安装方式即可

3 nginx有关HLS参数配置

这里配置HLS端口为80,hls切片文件路径为:/tmp/hls,播放url路径为:http://ip/live/hls.m3u8

在nginx.conf文件中,在HTTP->server配置内部增加如下地址路径及配置:

 location /live{
            add_header Access-Control-Allow-Origin *;
            alias /tmp/hls;
            expires -1;
        }

整个配置文件如下,包含上篇文章的rtmp配置:

#user  nobody;
worker_processes  1;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;


events {
    worker_connections  1024;
}


rtmp {
        server {
                listen 1935;
                chunk_size 4096;

                application live {
                        live on;
                        record off;
                }
        }
}


http {
    include       mime.types;
    default_type  application/octet-stream;

    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';

    #access_log  logs/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    #gzip  on;

    server {
        listen       80;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            root   html;
            index  index.html index.htm;
        }
        location /live{
            add_header Access-Control-Allow-Origin *;
            alias /tmp/hls;
            expires -1;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

    }
}

配置完成之后直接执行:/home/wangdenuan/nginx/sbin/nginx -s reload,重载nginx即可

ffmpeg进行HLS切片

这里ffmpeg接入rtsp实时视频,打包成TS流并切片成HLS切片及实时更新索引文件,命令如下:

ffmpeg -i rtsp://admin:zxm10***@10.45.12.112/h264/ch1/main/av_stream -c copy -f hls -segment_list_flags +live -hls_time 10 -segment_list_size 6 /tmp/hls/hls.m3u8

此时在/tmp/hls/目录下我们会看到m3u8索引文件,及TS切片文件:

使用nginx和ffmpeg搭建HLS流媒体服务器

VLC播放验证

使用VLC,打开网络串流,地址为:http://10.45.12.29/live/hls.m3u8,能够正常播放。

使用nginx和ffmpeg搭建HLS流媒体服务器

到此这篇关于使用nginx和ffmpeg搭建HLS流媒体服务器的文章就介绍到这了,更多相关内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文地址:https://blog.csdn.net/water1209/article/details/128664784

延伸 · 阅读

精彩推荐
  • NginxNginx配置本地图片服务器的实现

    Nginx配置本地图片服务器的实现

    本文主要介绍了Nginx配置本地图片服务器的实现,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    指尖听戏10702022-01-12
  • Nginxnginx正向代理与反向代理详解

    nginx正向代理与反向代理详解

    本文给大家分享的是nginx实现正向代理和反向代理的具体方法配置以及不同的实例情况,非常的详细,希望大家能够喜欢...

    doomcat5222020-07-27
  • Nginx如何使用nginx充当mysql的负载均衡器

    如何使用nginx充当mysql的负载均衡器

    这篇文章主要介绍了使用nginx充当mysql的负载均衡器过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋...

    吾名锋仔7662020-01-09
  • Nginxnginx-ingress-controller日志持久化方案的解决

    nginx-ingress-controller日志持久化方案的解决

    这篇文章主要介绍了nginx-ingress-controller日志持久化方案的解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要...

    fzu_huang5062020-06-15
  • NginxNginx一个IP如何配置多个站点的方法教程

    Nginx一个IP如何配置多个站点的方法教程

    这篇文章主要给大家介绍了关于Nginx一个IP如何配置多个站点的相关资料,文中通过示例代码介绍的非常详细,对大家具有一定的参考学习价值,需要的朋友...

    Marksinoberg4352019-12-07
  • NginxNginx使用limit_req_zone对同一IP访问进行限流的方法

    Nginx使用limit_req_zone对同一IP访问进行限流的方法

    今天小编就为大家分享一篇Nginx使用limit_req_zone对同一IP访问进行限流的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧 ...

    可可keketrtr4602020-01-13
  • NginxNginx服务器上搭建图片缓存服务的基本配置解析

    Nginx服务器上搭建图片缓存服务的基本配置解析

    这篇文章主要介绍了Nginx服务器上搭建图片缓存服务的基本配置解析,分别介绍了通过proxy_store模块和proxy_cache模块两种方式的配置,需要的朋友可以参考下 ...

    紫色葡萄3702019-11-11
  • Nginxnginx location 配置 正则表达式实例详解

    nginx location 配置 正则表达式实例详解

    本文通过实例代码给大家介绍了nginx location 配置 正则表达式的问题,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下 ...

    spongeboblz17582019-12-24