给奶牛做直播之三

news/2024/11/30 13:46:58/

​一、前言

上一篇给牛奶做直播之二  主要讲用RTMP搭建点播服务器,整了半天直播还没上场,今天不讲太多理论的玩意,奶牛今天放假了也不出场,就由本人亲自上场来个直播首秀,见下图,如果有兴趣的话,可以联系我,我会把直播打开,和你吹吹牛。

图中左侧是在录制,右侧是在播放。接下来一起来看一下自已怎么来搭建一套直播服务。

二、Nginx RTMP直播服务器配置

增加application live的配置

rtmp{server{listen 1935;chunk_size 4096;application vod{play /opt/vod;}application live{live on;}}
}

http server加上

location /stat{rtmp_stat all;rtmp_stat_stylesheet stat.xsl;
}
location /stat.xsl{root /opt/nginx-rtmp-module-master/;
}

重启Nginx,输入http://118.31.5.244/stat,该页面可以监测直播一些参数数据,如果有Live就表示你配置成功了,在图上也可以看到Video和Audio是分开的,音频流是用AACLC编码,而视频流就是用我们 给奶牛做直播之一 讲到的H264编码。

注:配置时注意一下,nginx-rtmp-module-master nginx指向的地址不要放在root目录下,否则权限会有问题,上一篇直播视频文件也同样不要放在root下。

三、数据采集端与播放

1、在Mac上安装了OBS直播软件,设置一下推流的地址

然后点击开始推流。

2、播放端

用VCL播放器,OPEN NETWORK输入拉流地址 rtmp://118.31.5.244/live进行播放。

四、RTMP协议一些概念

1、RTMP是应用层协议,默认使用1935端口号,网络层依赖于TCP来保证可靠传输。

2、RTMP需要客户端和服务器通过握手来建立连接,大致握手过程如下

  • client--> server   : 发送一个创建流的请求  (C0、C1)

  • server--> client   : 返回一个流的索引号 (S0、S1、S2)

  • client--> server   : 开始发送 (C2)

  • client--> server   : 发送音视频数据

握手完成后消息分块传输,每个消息块有一个ID,一个消息块发送完成才能发送下一下消息块,服务器接收完成基于消息块ID组合成消息,一般消息块大小为128字节。所以使用RTMP协议一般加载有3,4秒的延迟。

注:协议原理还是比较复杂,简单了解一下不再深入了,今天实验开始是想用手机端做推流的,找了个工具不行,下次有时间自己用Android搞个推流工具(刚买了Android手机),后续再介绍一下HLS协议等其它的一些概念。


http://www.ppmy.cn/news/1132343.html

相关文章

【Java每日一题】——第十六题:将数组元素逆序并遍历输出。(2023.09.30)

🕸️Hollow,各位小伙伴,今天我们要做的是第十五题。 🎯问题: 设有数组如下:int[] arr{11,34,47,19,5,87,63,88}; 测试结果如下: 🎯 答案: int a[]new int [10];Random …

基于Java的在线听歌平台设计与实现(源码+lw+部署文档+讲解等)

文章目录 前言具体实现截图论文参考详细视频演示为什么选择我自己的网站自己的小程序(小蔡coding)有保障的售后福利 代码参考源码获取 前言 💗博主介绍:✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导师、全栈领域优质创作…

进程的状态与转换以及组织方式

1.进程的状态 三种基本状态:运行态,就绪态,阻塞态。 1.运行状态 如果一个进程此时在CPU上运行,那么这个进程处于“运行态”。 CPU会执行该进程对应的程序(执行指令序列) 2.就绪状态 当进程创建完成后,…

点击、拖拉拽,BI系统让业务掌握数据分析主动权

在今天的商业环境中,数据分析已经成为企业获取竞争优势的关键因素之一。然而,许多企业在面对复杂的数据分析工具时,却常常感到困扰。这些工具往往需要专业的技术人员操作,而且界面复杂,难以理解和使用。对业务人员来说…

【生物信息学】计算图网络中节点的中心性指标:聚集系数、介数中心性、度中心性

目录 一、实验介绍 二、实验环境 1. 配置虚拟环境 2. 库版本介绍 3. IDE 三、实验内容 0. 导入必要的工具 1. 生成邻接矩阵simulate_G: 2. 计算节点的聚集系数 CC(G): 3.计算节点的介数中心性 BC(G) 4. 计算节点的度中心性 DC(G) 5. 综合centrality(G) 6. 代…

市场调研的步骤与技巧:助你了解市场需求

在当今快速发展的市场中,进行有效的市场研究对于了解消费者的行为、偏好和趋势至关重要。适当的市场研究可以帮助公司获得对目标受众的有价值的见解,创造更好的产品和服务,并提高客户满意度。今天,小编和大家一起讨论一下怎么做市…

[论文笔记]UNILM

引言 今天带来论文Unified Language Model Pre-training for Natural Language Understanding and Generation的笔记,论文标题是 统一预训练语言模型用于自然语言理解和生成。 本篇工作提出了一个新的统一预训练语言模型(Unifield pre-trained Language Model,UniLM),可以同…

聊聊druid的keepalive机制

序 本文主要研究一下druid的keepalive机制 DruidDataSource public class DruidDataSource extends DruidAbstractDataSource implements DruidDataSourceMBean, ManagedDataSource, Referenceable, Closeable, Cloneable, ConnectionPoolDataSource, MBeanRegistration {pr…