视频直播 个人小结

视频直播

流媒体

1 伪流媒体

1.1 扫盲:边下载边播放

1.2 伪流媒体:视频不是实时播放的,先把视频放在数据库,再供客户端访问,比如:优酷,爱奇艺等

1.3 特点:

> 边下边存,文件会保存.

> 遵守了 HTTP 协议,但是没有遵守 RTMP 和 HLS 协议

> 能够实现快进和快退的功能

> 实现简单,成本低

2 实时流媒体

2.1 真正的流媒体,边下边播,但不会保存下载的文件

2.2 特点:

> 下载的文件不会保存

> 遵守了 RTMP 或者 HLS 协议

> 只能实现实时播放,不能快进或者快退

> 实现成本比较高,实现复杂

3 常见的流媒体协议: HLS(苹果基于 HTTP 开发的流媒体协议),RTMP(Adobe 的私有协议),MMS (微软).

HLS协议

1 HLS: HTTP Live Streaming 是苹果公司实现的基于HTTP的流媒体传输协议,可实现流媒体的直播和点播,主要应用在iOS系统,为iOS设备提供音视频直播和点播方案.

2 直播原理:通过相关设备采集摄像头的视频和麦克风的音频,并实时进行 H264视频编码和 AAC 音频音频编码,并按照 HLS协议规范,转换为标准的 TS文件以及m3u8(是一个地址,里面记录了服务器多对应的文件)索引文件.

3 HLS 点播:就是对 HTTP 进行分段播放,不同的就是在于对 HTTP 进行的分段非常小,因此可以说, HLS 点播的重点就是对 HTTP 进行分段.(现在的分段技术比较常见不在赘述)

4 HLS 直播原理:和其他的常见的直播协议(如: RTMP,RTSP,MMS)不同, 遵守HLS 协议的直播在客户端接收到的并不是完整的数据流. 即HLS 协议的服务器将最新获取到的片段进行分割为小片段,客户端获取服务器刚编好的最新的片段进行播放.这样服务器端不断的获取新的数据进行分割成新的片段,客户端不断的从服务器端获取最近的片段进行播放.由此可以说 HLS 是以点播的形式实现的直播.

5 HLS 的特点

  • 由于数据是通过 HTTP 传输的,所以不用考虑防火墙和代理的问题
  • 由于分割的时长很短,所以客户端可以很快的实现码率切换,以适应不同的带宽.
  • HLS 协议的延迟一般会高于其他协议的流媒体直播.

6 HLS 实现步骤

  • 采取视频源和音频源数据
  • 对原始数据尽心 H264和 ACC 编码
  • 视频和音频数据封装为 MPEG-TS 包
  • HLS 分段生成策略以及 m3u8索引文件
  • HTTP 传输协议

注:需要说明的是 HLS 分段策略的分段时长以10S 为最好.

RTMP 协议

1 RTMP 实时消息传输协议,是现在比较常用的协议

2 RTMP使用原理:首先推流到 RTMP 服务器,然后再有 RTMP 服务器提供 RTMP 视频服务.

注:需啊说明的是:RTMP 也提供 HLS, 将音视频切位 ts 流,然后用户可以直接播放 m3u8流媒体.

3 RTMP协议规定

3.1 建立一个网络连接

3.2 建立一个网络流(发送多媒体的通道)

注:只能建立一个网络连接,但是可以建立多个网络流

4 RTMP 协议使用步骤

4.1 握手:RTMP 协议都是以握手开始的

  • 客户端先发送 C0,C1两个数据块,服务器收到 C1或者 C2块的时候开始发送 S0和 S1
  • 客户端收齐 S0和 S1的时候开始发送 C2,当服务器收齐 C0和 C1的时候开始发送 S2
  • 当客户端收到 S2同时服务器收到 C2 的时候,握手完成

4.2 建立连接:建立客户端和服务器端的网络连接

> 客户端发送命令消息中的”connect”,到服务器,请求与一个服务器应用实例建立连接

> 服务器接收到请求后,发送确认消息,同时连接到请求中的连接实例

> 服务器发送设置带宽协议消息到客户端

> 客户端接收到 设置带宽 消息之后,发送确认消息到服务器

> 服务器发送用户控制消息中的”stream”消息到客户端

> 服务器发送消息命令中的”结果”消息到客户端

4.3 建立流:建立客户端和服务器端的”流连接”

> 客户端发送消息命令中的”创建流”到服务器

> 服务器接收到”创建流”命令后,发送”结果”命令到客户端

4.4 播放传输音视频数据

> 客户端发送”播放”命令到服务器

> 服务器收到消息后,发送 设置消息大小协议消息

> 服务器发送” streambegin”,告知客户端流 ID

> 若播放成功的话,服务器发送”响应状态”到客户端.告知客户端播放成功

> 服务器发送客户端要播放是数据

流媒体的播放

1 HLS 的流媒体通过AVPlayer/AVPlayerViewController 和 MPMviePlayerController/MPMoviePlayerViewController 来实现.

2 RTMP 的流媒体要用第三方框架实现 如 FFMpeg ,IJKPlayer和 VLC 等

3 常用的流媒体框架:百度/阿里/腾讯/网易等

时间: 2024-10-21 18:44:44

视频直播 个人小结的相关文章

视频直播技术-视频-编码-传输-秒开等<转>

转载地址:http://mp.weixin.qq.com/s?__biz=MzAwMDU1MTE1OQ==&mid=2653547042&idx=1&sn=26d8728548a6b5b657079eeab121e283&scene=21#wechat_redirect 现今移动直播技术上的挑战要远远难于传统设备或电脑直播,其完整的处理环节包括但不限于:音视频采集.美颜/滤镜/特效处理.编码.封包.推流.转码.分发.解码/渲染/播放等. 视频.直播等基础知识 什么是视频?

IOS 视频直播/智能家居(一行行敲代码,从零开始)lesson:1整体架构

前段时间由于工作需要做了一个视频直播/智能家居类的应用.算是对iOS音视频专栏中流媒体处理做了一次小结.这里想把整个开发流程纪录下来,一方面是和大家共同探讨学习,另一方面也可以方便自己以后查漏补缺. 整个开发没有借助任何第三方框架,所有流媒体协议都是一行行敲上去的,为什么呢?呵呵 授之以鱼不如授之以渔! 下面开始先了解下整个软件的架构. 前端我们在IOS audio&video 专栏中已经介绍的非常详细了,包括摄像头.音视频的各种处理都做了详细的分析.后端我们也在IOS audio&vid

iOS----集成ijkplayer视频直播

ijkplayer 是一款做视频直播的框架, 基于ffmpeg, 支持 Android 和 iOS, 网上也有很多集成说明, 但是个人觉得还是不够详细, 在这里详细的讲一下在 iOS 中如何集成ijkplayer, 即便以前从没有接触过, 按着下面做也可以集成成功! 一. 下载ijkplayer ijkplayer下载地址 下载完成后解压, 解压后文件夹内部目录如下图: 二. 编译 ijkplayer 说是编译 ijkplayer, 其实是编译 ffmpeg, 在这里我们已经下载好了ijkpla

iOS平台基于ffmpeg的视频直播技术揭秘

现在非常流行直播,相信很多人都跟我一样十分好奇这个技术是如何实现的,正好最近在做一个ffmpeg的项目,发现这个工具很容易就可以做直播,下面来给大家分享下技术要点: 首先你得编译出ffmpeg运行所需的静态库,这个百度一下有很多内容,这里我就不多说了,建议可以用Github上的一个开源脚本来编译,简单粗暴有效率. 地址:GitHub - kewlbear/FFmpeg-iOS-build-script: Shell scripts to build FFmpeg for iOS and tvOS

校园视频直播建点播建设方案——Sewise流媒体平台

近些年来,因为信息技术的发展,大数据时候的到来,数字校园受到教育行业.政府.投资人等相关人士的关注.为什么呢?在这个大数据的时代,如果一个国家不能让自己的教育得到很好的提高和创新,跟上时代的步伐,哪么将是一件多么可怕的事情.所以,在提高学校的教师的整体水平的同时,还应该提高学校的硬件和软件实力.建设一个校园视频直播--Sewise流媒体平台是什么?它又有哪些功能应用? Sewise流媒体平台应用方案--校园视频直播点播是什么? 校园视频直播点播平台组成: 1.直播软件服务器:sewise直播服务

采用ffmpeg和ffserver实现音视频直播和点播

一.嵌入式开发板采集音视频(远程) 音频采集程序:./audioc -i 222.222.222.222 -p 8888; 视频采集程序:./videoc -i 222.222.222.222 -p 9999; 音频采集程序利用alsa库,采集原始音频帧,发送至服务器进程(222.222.222.222,  8888); 视频采集程序利用v4l2库,采集原始视频帧,h.264硬编码后,发送至服务器进程(222.222.222.222, 9999); 二.Linux服务器接收音视频 音频接收程序:

nginx视频直播/点播服务干货分享

近年互联网直播业务非常火热.我也研究了下,发现nginx上配置视频直播点播也很容易实现,特分享一下.一.ubuntu14.04安装nginx及nginx_rtmp_module扩展 nginx根据是否已安装和安装的方式不同,有一下三种方式安装及扩展安装.1.全新安装nginx和nginx_rtmp_module扩展 #!/bin/sh apt-get update apt-get install -y gcc libpcre3 libpcre3-dev openssl libssl-dev ma

视频直播的发展趋势分析

视频直播的分析与发展 在讲视频直播之前,先讲一讲直播.直播是怎么来的呢?从传播消息的角度上来说,视频和文字.图片.音乐一样都是传播消息的手段,古时以文字传播消息,之后出现了图片和音乐,再之后视频开始流行.出现这种演变的原因是什么呢?我想主要是由于读者的需求日益提高和传播技术的不断发展.读者不满足于当前的文字阅读,由此出现了图片与音乐,到后来图片与音乐也无法满足日益增长的需求,则出现了视频.视频具有文字.图片.音乐不具有的优势:传递的信息多,更让人有代入感,给观众更综合的体验.虽然视频有着无可比拟

iOS开发之集成ijkplayer视频直播

ijkplayer 是一款做视频直播的框架, 基于ffmpeg, 支持 Android 和 iOS, 网上也有很多集成说明, 但是个人觉得还是不够详细, 在这里详细的讲一下在 iOS 中如何集成ijkplayer, 即便以前从没有接触过, 按着下面做也可以集成成功! 编辑:Bison 投稿: jianshu_wl 一. 下载ijkplayer ijkplayer下载地址 下载完成后解压, 解压后文件夹内部目录如下图: 二. 编译 ijkplayer 说是编译 ijkplayer, 其实是编译 f