给牛奶做直播之二

news2024/11/27 9:57:11

一、前言

给奶牛做直播之一 主要讲了视频的编解码,我们今天接着往下聊,主要介绍一下视频流的网络应用层协议,先简单讲一下视频文件格式与编码,视频文件格式有很多比如以前的AVI、RMVB、MP4等等无数种,视频文件格式和前一篇讲的视频编码是两回事情,视频文件格式可以理解为一个容器,里边要放视频流和音频流,视频编码是对容器里视频流数据进行压缩,主要也就是前一篇讲到的MPEG和H.26X这两个系列。

二、HTTP协议

1、将服务器上的视频文件通过HTTP协议渐进式下载,然后播放器解码播放.

2、视频播放快进的原理:视频文件的头部存储了相应帧的位置,这样视频就可以跳转到未被下载的部分,这是因为HTTP1.1协议开始支持Range见下图可以指定从哪个字节开始下载播放,注:Range这个特性也用在断点续传。

3、HTTP用于点播,视频文件主要有MP4或以前老的Flash FLV等。这种视频很容易被用户下载下去存在版权的问题,但因为是走80端口不用解决网络中防火墙等穿透问题。

三、RTMP协议

RTMP即Real-Time Messging  Protocol 是Adobe私有协议,一般传输的是Flv、mp4格式流,

搭建RTMP服务器,播放时实时连接服务器,播放的是服务器上的文件,视频文件不会缓存在客户端,版权更安全。

1、环境搭建,安装Nginx与Nginx rtmp模块

OS:Ubuntu 16.04 64
wget http://nginx.org./download/nginx-1.8.1.tar.gz
wget https://github.com/arut/nginx-rtmp-module/archive/refs/heads/master.zip
apt-get update
apt-get install libpcre3 libpcre3-dev
apt-get install openssl libssl-dev
tar -zxvf nginx-1.8.1.tar.gz
unzip master.zip
cd nginx-1.8.1/
./configure --add-module=../nginx-rtmp-module-master
make && make install

2、配置点播服务

nginx.conf

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

将视频文件 vanmilk.mp4  放到到/opt/vod目录下即可,用VLC播放器 Open Network 打开地址 rtmp://118.31.5.244/vod/vanmilk.mp4,当然在网页中你播放器支持也可以直接播放。

2、配置直播服务

待续,本想今天把直播环境搭建一下,忙得一点时间都没有,明后天再折腾,这块内容计划用5,6个小篇写完。。

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

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

相关文章

QCefView 简介

什么是QCefView QCefView 是为 Qt 开发的一个封装集成了CEF(Chromium Embedded Framework)库的Wdiget UI组件。使用QCefView可以充分发挥CEF丰富强大的Web能力,快速开发混合架构的应用程序。它不需要开发者理解CEF的细节,能够在Qt中更容易的使用CEF&…

Flutter开发之Package与Plugin

前言 在flutter中有包和插件两个概念,插件 (plugin) 是 package 的一种,全称是 plugin package,我们简称为 plugin,中文叫插件。包(Package)主要指对flutter相关功能的封装,类似于Android中的插件和iOS中的三方库。而插…

Spring5应用之AOP切入点详解

作者简介:☕️大家好,我是Aomsir,一个爱折腾的开发者! 个人主页:Aomsir_Spring5应用专栏,Netty应用专栏,RPC应用专栏-CSDN博客 当前专栏:Spring5应用专栏_Aomsir的博客-CSDN博客 文章目录 前言切入点详解切…

Source Insight 工具栏图标功能介绍

这篇文章并不介绍 Source Insight 的具体使用方法,这类教程网上有很多,这里只分析 Souce Insight 工具栏图标的功能。 文章目录 Source Insight 简介Souce Insight 工具栏文件操作新建(CtrlN)打开(CtrlO)保…

C语言文件操作与管理

一、为什么使用文件 在我们前面练习使用结构体时,写通讯录的程序,当通讯录运行起来的时候,可以给通讯录中增加、删除数据,此时数据是存放在内存中,当程序退出的时候,通讯录中的数据自然就不存在了&#xff…

wxWidgets(1):在Ubuntu 环境中搭建wxWidgets 库环境,安装库和CodeBlocks的IDE,可以运行demo界面了,继续学习中

1,选择使用 wxWidgets 框架 选择这个主要是因为完全的开源,不想折腾 Qt的库,而且打包的文件比较大。 网络上面有很多的对比,而且使用QT的人比较多。 但是我觉得wxwidgets 更加偏向 c 语法本身,也有助学习C。 没有太多…

PHP 二手物品交易网站系统mysql数据库web结构apache计算机软件工程网页wamp

一、源码特点 PHP 二手物品交易网站系统是一套完善的web设计系统,对理解php编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。 代码下载 https://download.csdn.net/download/qq_41221322/88385559 二、功能介…

容器网络之Flannel

​ 第一个问题位置变化,往往是通过一个称为注册中心的地方统一管理的,这个是应用自己做的。当一个应用启动的时候,将自己所在环境的 IP 地址和端口,注册到注册中心指挥部,这样其他的应用请求它的时候,到指挥…

数据结构与算法基础-(4)

🌈write in front🌈 🧸大家好,我是Aileen🧸.希望你看完之后,能对你有所帮助,不足请指正!共同学习交流. 🆔本文由Aileen_0v0🧸 原创 CSDN首发🐒 如…

用数据观测Page Cache

与 Page Cache 有关的场景: 服务器的 load 飙高; 服务器的 I/O 吞吐飙高; 业务响应时延出现大的毛刺; 业务平均访问时延明显增加 上边这些问题,很可能是由于 Page Cache管理不到位引起的,因为 Page Cache 管…

将数据包装成一个图数据结构(torch_geometric)

import torch from torch_geometric.data import Datax torch.tensor([[0, 1], [2, 3], [4, 5]], dtypetorch.float) # 节点特征矩阵(三个节点,每个节点两个特征) edge_index torch.tensor([[0, 1, 1, 2], [1, 0, 2, 1]], dtypetorch.long…

chrome插件-入门

chrome插件的作用 1、屏蔽网页上的广告,提高浏览速度和减少视觉干扰 2、捕捉和编辑网页截图 3、改善在社交媒体平台上的体验,例如提供额外的功能,或自定义外观和布局 4、网页翻译 5、保存和组织网页书签和笔记 6、管理日程安排,设…

第十章 异常

python使用异常的特殊对象管理程序执行期间发生的错误。每当发生错误时,python会创建异常对象。如果编写了处理该异常的代码,程序将继续运行;如果未处理,程序将显示traceback。 异常是使用try-except代码块处理的。使用try-excep…

pytorch3D Windows下安装经验总结

一、说明及准备工作 最近在安装pytorch3D的时候遇到了很多问题,查了很多博客,但发现讲的都不太全,所以特将自己的及收集到的安装过程经验总结如下。我是在Anaconda中虚拟环境下安装的。 1.1准备工作 官方安装教程如下:https://…

CSS基础介绍2

CSS使用三种方式 方式1&#xff1a;在标签的style属性上设置CSS样式&#xff08;行内样式&#xff09; <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><title>在标签的style属性上设置CSS样式</title>…

第七章 用户和组管理

7.1 Linux中的用户和组的分类 用户类别 超级用户&#xff08;0&#xff09; root 系统用户(1-999) 一般用户(1000-60000) 组类别 管理组 root 基本组&#xff08;默认组/主组&#xff09; 附加组&#xff08;额外组&#xff09; 7.2 用户管理 7.2.1 添加新用户 语法 useradd 【…

通过java向jar写入新文件

文章目录 原始需求分析实施步骤引入依赖核心编码运行效果 原始需求 有网友提问&#xff1a; 我想在程序中动态地向同一个jar包中添加文件&#xff0c;比如&#xff0c;我的可执行jar包是test.jar,我要在它运行时生成一些xml文件并将这些文件添加到test.jar中,请问如何实现&…

路由模式和打包优化

1. 路由模式-将路由改成history模式 hash模式带#&#xff0c;#后面的地址变化不会引起页面的刷新history没有#&#xff0c;地址变化会引起页面刷新&#xff0c;更符合页面地址的规范&#xff08;开发环境不刷新-webpack配置&#xff09;将路由模式修改成history模式-代码位置(s…

钉钉h5微应用调试 整理

钉钉 H5微应用整理 1.申请H5微应用2.登录3.调试 1.申请H5微应用 https://open.dingtalk.com/ 登录钉钉开发平台。 应用appId、CorpId都可以在网站上自行查找 应用首页地址&#xff08;指手机端显示地址&#xff09; pc端首页地址&#xff08;指电脑端显示地址&#xff09; 我这…

Spring Cloud Gateway学习(1)—— Gateway 的基本概念 引入依赖需要注意的事项 +解决方案 全局网关的入门使用案例

前言 Spring Cloud Gateway 基于 Spring Boot 2&#xff0c;是 Spring Cloud 的全新项目。Gateway 旨在提供一种简单而有效的途径来转发请求&#xff0c;并为它们提供横切关注点。 gateway相当于所有服务的门户&#xff0c;将客户端请求与服务端应用相分离&#xff0c;客户端…