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

news2024/11/20 7:21:51

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

文章目录

  • 使用nginx和ffmpeg搭建HLS流媒体服务器
    • 1 安装ffmpeg
    • 2 安装nginx
    • 3 nginx有关HLS参数配置
    • ffmpeg进行HLS切片
    • VLC播放验证

最近研究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,看是否弹出版本信息,弹出相关信息即表示安装成功
    2

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切片文件:
1

VLC播放验证

使用VLC,打开网络串流,地址为:http://10.45.12.29/live/hls.m3u8,能够正常播放。
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/159408.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

计算机制图设计教程-以全国降水处理为例

前言本博客主要是通过一幅完整数字地图的制作过程,巩固计算机制图内容,报告中涉及到了地图数字化、空间数据的存储与管理、空间数据库的建立、符号化、制图综合技术和空间分析等内容。从而锻炼自身的动手实践能力,了解一幅地图制作设计的完整…

2022年江西省首届职业院校教师数字经济职业技能比赛“信息安全”赛项竞赛任务书

2022年江西省首届职业院校教师数字经济职业技能比赛“信息安全”赛项竞赛任务书 竞赛阶段 任务阶段 竞赛任务 竞赛时间 分值 A模块 A-1 登录安全加固 90分钟 200分 A-2 数据库加固 A-3 服务加固 A-4 防火墙策略 B模块 B-1 Windows操作系统渗透测试 400分 B…

云间玉兔,自出机抒,从零开始制作Web插件网页特效小兔子组件(小挂件widget),基于原生CSS/NPM

著意登楼瞻玉兔,何人张幕遮银阙?又到了一年一度的网页小挂件环节,以往我们都是集成别人开源的组件,但所谓熟读唐诗三百首,不会做诗也会吟,熟读了别人的东西,做几首打油诗也是可以的,…

数据降维-MDS 算法

数据降维-MDS 算法 文章目录数据降维-MDS 算法算法概述算法步骤算法证明代码参考算法概述 MDS的初衷是将图结构中的距离在空间的一种表示。 例如,已知几个城市的距离,但是不知道城市的坐标,那么MDS就能通过距离矩阵转换成空间坐标向量来近似…

mock的基本使用

mock的基本使用官网文档mockjs是用来模拟产生一些虚拟的数据,可以让前端在后端接口还没有开发出来时独立开发,mockjs可以拦截ajax请求,返回设定好的数据。注意:mock(模拟数据)数据需要使用到mockjs模块&…

如何用更好的创意引发卖家和消费者的共鸣?

我们知道,近年来国家的政策越来越向创新型的企业发展倾斜,因此各行各业都响应政策,做创新型高质量发展,跨境电商作为疫情下应运而生的产物,其本身就带有创新型发展的概念,同时,面对着2022年许多…

Java程序的运行过程(执行流程)分析

万事知其然,要知其所以然,所以本节带大家来详细了解一下 Java 程序的执行过程。从《使用记事本编写运行Java程序》一节的案例可以看出,Java 程序的运行必须经过编写、编译和运行 3 个步骤。编写:是指在 Java 开发环境中进行程序代…

回溯法--图的m着色问题

问题描述给定无向连通图和m种不同的颜色,用这些颜色为图G的各个顶点着色,每个顶点有一种颜色是否有一种着色方法?使得图G中每条边的两个顶点有不同的颜色这个问题就是图的m可着色判定问题色数:如果有一个图最少需要m种颜色才能使得…

国医大师体验照“镜”测“三高”,深兰科技AI产品秒出健康报告

“请把脸缓慢往左转。” “请将脸回正,请将脸缓慢往右转。” “请放松心情,期待3D面部的生成结果。” 跟随提示音,刚刚被聘任为深兰科技科学院专家委员会医学专家的国医大师严世芸教授饶有兴致地体验着深兰科技AI生理健康检测仪-扁鹊。等待一…

【位图】面对海量数据,如何压缩空间?定位数据?

目录 一、腾讯面试题 二、解决办法——位图 2.1、那么什么是位图? 三、位图的模拟实现 3.1、位图的构造 3.2、存放数据 3.3、检测数据是否存在 3.4、设置某个数据的对应位为0 四、位图模拟代码(完整) 一、腾讯面试题 给40亿个不重复…

Authing 入选 2022 中国产业数字化领军企业

1 月 10 日,产业互联网第一媒体产业家联合数字化报、IT 桔子正式发布了【中国产业数字化领军企业榜单】,评选出 16 个互联网赛道中的领军企业。作为身份认证与访问管理领跑者,Authing 凭借在 SaaS 领域的技术创新与产品优势,成功入…

6.4、域名系统 DNS

1、DNS的作用 如下所示,因特网中的某台主机要访问某台 Web 服务器 只需在用户主机中运行某个游览器软件,在其地址栏中输入要访问的 Web 服务器的域名,并按下回车键即可访问到 Web 服务器所提供的内容 我们在用户主机中使用 ping 命令测试 We…

【小练】day1

day1 选择题 1. 以下for循环的执行次数是&#xff08;&#xff09;。 for(x0,y0;(y123)&&(x<4););A 是无限循环 B 循环次数不定 C 4 D 3 本题主要考察for for(初始化部分&#xff1b;条件判断部分&#xff1b;调整部分) 初始化部分只执行一次。 &&&a…

大数据分析案例-基于多元线性回归算法构建广告投放收益模型

&#x1f935;‍♂️ 个人主页&#xff1a;艾派森的个人主页 ✍&#x1f3fb;作者简介&#xff1a;Python学习者 &#x1f40b; 希望大家多多支持&#xff0c;我们一起进步&#xff01;&#x1f604; 如果文章对你有帮助的话&#xff0c; 欢迎评论 &#x1f4ac;点赞&#x1f4…

走好这三步,不再掉进云上安全的沟里!

序言一直以来&#xff0c;公有云安全是横亘在广大用户面前的一道鸿沟。云安全&#xff08;Cloud Security&#xff09;是指用于控制云计算的安全性、合规性和其他使用风险的过程、机制和服务。公有云提供商们都强调安全是其最高优先级工作&#xff0c;动辄就发布上百页的云上安…

谁还没个技术呢~PYTHON制作观看软件

前言 大家早好、午好、晚好吖 ❤ ~ 以前没钱时&#xff0c;我是这样嘚&#xff1a; 朋友说好一生一起走&#xff0c;账号先借我来耍耍 现在没钱时&#xff0c;我是这样嘚&#xff1a; 涨价就涨价&#xff0c;怎么还搞搞限制账号登录这一出呢~ 这年头~谁还没点技术不是,看我…

复盘一下slam中常用的几种点云类型

使用livox雷达常涉及至少3种点云格式&#xff0c;一个是livox官方定义的custom格式&#xff0c;另外两个就是激光、视觉常用的pcl类型和ros类型。之前总结过Livox雷达驱动程序发布点云格式CustomMsg和pcl::PointXYZI、pcl::PointXYZINormal之间的关系&#xff0c;现在再来复盘一…

【TypeScript】TS进阶-泛型(八)

&#x1f431;个人主页&#xff1a;不叫猫先生 &#x1f64b;‍♂️作者简介&#xff1a;前端领域新星创作者、阿里云专家博主&#xff0c;专注于前端各领域技术&#xff0c;共同学习共同进步&#xff0c;一起加油呀&#xff01; &#x1f4ab;系列专栏&#xff1a;vue3从入门到…

【Linux】工具使用

文章目录一、Linux 软件包管理器 yum二、 Linux开发工具&#xff08;1&#xff09; Linux编辑器-vim使用&#xff08;2&#xff09;简单vim配置三、Linux编译器-gcc/g使用四、动态库和静态库五、Linux调试器-gdb使用六、Linux项目自动化构建工具-make/Makefile(1)make/Makefile…

如何才能精通 Redis?

为什么我要讲 Redis&#xff1f; 已经出过这么多主题的书籍和课程了&#xff0c;这次我为什么要选择 Redis 这个主题呢&#xff1f; 那自然是因为 Redis 是我们实际开发中不可或缺的组件之一&#xff0c;也是目前全球最流行的 KV 数据库。相信小伙伴们在工作中也会频繁接触到…