二、何为流媒体与流式传输?

2.1 流媒体

「流媒体」是指采用「流式传输」的方式在Internet播放的媒体格式,流媒体最大的特点就是「边下边播」,常用的流媒体格式有FLV(使用FLASH作为视频播放载体)、TS等

2.2 流式传输

「流式传输」指通过网络传送流媒体的技术总称。流式传输分为「实时流式传输」与「顺序流式传输」。一般来说,如果视频为直播,即为实时流式传输。如果视频不是直播,文件通过顺序流发送,即为顺序流式传输。

三、何为解复用?

「解复用」是指从「音频视频信号源」中分流出「单独的音频」与「单独的视频」数据,比如我们将「FLV」解复用会得到「H.264视频数据」和「AAC音频数据」。

四、RTMP、RTP、RTSP

4.1 RTMP

名称:Real Time Messaging Protocol

协议族:该协议基于TCP,是一个协议族。包括基本协议RTMP以及其变种,如RTMPT、RTMPS、RTMPE等

运行环境:主要是用于在「FLASH平台」和「流媒体服务器」之间进行音视频通信

4.2 RTP

名称:Real Time Transport Protocol

组成:RTP标准定义了两个协议,一个是RTP协议(数据传输协议),另一个是RTCP协议(控制协议)

4.3 RTSP

名称:Real Time Streaming Protocol

定义:该协议定义了如何在客户端与服务器之间建立/协商实时流通话

4.4 体系结构

按照网络模型来说,直播技术涉及到的协议是这样分布的

应用层协议:RTSP、RTMP

传输层协议:RTCP、RTP、TCP、UDP

网络层协议:RSVP、IP

五、H.264与AAC

5.1 H.264

H.264是一种「视频编码格式」(有时也叫视频压缩格式),它又叫「MPEG4 Part10」。它与MPEG2 Part2是一个层级的事。

5.2 AAC

AAC是一种「音频编码格式」(有时也叫音频压缩格式),它与MP3、FLAC、APE、WavPack是一个层级的事。

5.3 总结

一般情况下,用户不会直接拥有「视频编码格式」的文件和「音频编码格式」的文件。而是直接拥有「多媒体容器格式」的文件,然后通过解复用去获得它们。

六、软解与硬解的区别

6.1 软解

软解是指只是用CPU进行解码

6.2 硬解

硬解是指主要是用GPU进行解码,CPU起辅助作用

七、YUV与PCM

之前介绍H.264和AAC时说「视频编码格式」和「音频编码格式」的时候说它们又叫「视频压缩格式」和「音频压缩格式」,这是为啥呢?就是因为原始视频数据格式YUV(即从视频采集芯片直接输出的视频编码格式)和原始音频数据格式PCM(即从音频采集芯片直接输出的音频编码格式)占地很大,所以需要编码(压缩)成H.264与AAC这种占地小一点的格式。

八、何为推流SDK?

推流SDK从我的角度讲(我是Android程序员)是指运行在Android端的第三方Support Library或jar包。

SDK会帮我们做:音视频采集、美颜滤镜、图像处理、底噪控制、流量控制等功能

九、何为推流地址(又叫推流URL)?

我们说推流,实际上就是把客户端收集到的音视频数据发送给服务器的过程。所以,客户端需要知道服务器在哪,好往上推流。这个推流URL就是标明客户端「往何处推流」的定位符。推流URL由服务器分配。

十、URI与URL的区别(嘻嘻)?

URI是一个句法结构,未必包含了定位Web资源的信息。

URL是URI的一个特例,一定包含了定位Web资源的信息。

可以说URL有URI的全部功能,并且URL还有URI没有的功能。

这有点像JAVA中的继承————URL为子类、URI为父类。

十一、外传:MPEG家族介绍

MPEG,全名Moving Picture Experts Group

11.1 MPEG-1

第一个视频音频压缩标准,随后被VCD标准采用。它由一系列的子标准组成,被称为部 (part)(有时也译为卷),其体系结构如下:

Part1:System

Part2:Video

Part3:Audio

其中Part3的Audio又分为三个Layer:

Layer Ⅰ

Layer Ⅱ

Layer Ⅲ:这个就是我们平常说的MP3

所以,MP3并不是MPEG-3而是MPEG-1 Part3 Layer Ⅲ,或者叫MPEG-2 Audio Layer Ⅲ。但MP4就是MPEG-4。

11.2 MPEG-2

除了它被DVD标准采用没啥好说的

11.3 MPEG-3

中途停止研发

11.4 MPEG-4

这就是大名鼎鼎的MP4了,其中第十部分(Part 10)很重要,是由ISO、IEC和ITU-T联合发布的视频编码标准:H.264

11.5 MPEG-7与MPEG-21

MPEG-7是一个多媒体内容的描述标准,已经开发完成。MPEG-21正在制定中,它的目标是为未来多媒体的应用提供一个完整平台。

[Linux]流媒体服务器概述的更多相关文章

  1. Linux 下搭建流媒体服务器

    http://blog.csdn.net/huangtaishuai/article/details/9836581 ----------------------------------------- ...

  2. EasyDSS流媒体服务器Linux emerg getpwnam("xxx") failed解决办法

    本文转自EasyDarwin开源团队Alex的博客:http://blog.csdn.net/cai6811376/article/details/73770943 EasyDSS 流媒体服务器是什么 ...

  3. Live555流媒体服务器编译(Windows下)

    最近在回顾之前做过的相关项目,其中包括live555流媒体服务器相关,今天先把live555开源框架在Windows下的编译方法记录一下. live555是一套使用使用开放的标准协议(RTP/RTCP ...

  4. DSS 搭建手机流媒体服务器

    最近研究了一下手机流媒体服务器的搭建,目的是实现通过3G手机看在线视频. 开始的时候研究了一下 Tudou手机版 ,可它哪并没有实现在线播放,因为视频地址是 http 协议的.参看了许多文章,终于了解 ...

  5. crtmpserver流媒体服务器的介绍与搭建

    crtmpserver流媒体服务器的介绍与搭建 (2012-02-29 11:28) 标签:  crtmpserver  C++ RTMP Server  rtmp  Adobe FMS(Flash ...

  6. 基于 Red5 的流媒体服务器的搭建和应用

    http://www.ibm.com/developerworks/cn/opensource/os-cn-Red5/ Red5 是一个采用 Java 开发的开源免费 Flash 流媒体服务器.Red ...

  7. samba服务器概述

    一.samba服务器概述 Samba是一个能让Linux系统应用Microsoft网络通信协议的软件.而SMB是Server Message Block的缩写,即为服务器消息块.SMB主要作为Micr ...

  8. nginx搭建rtmp协议流媒体服务器总结

    最近在 ubuntu12.04+wdlinux(centos)上搭建了一个rtmp服务器,感觉还挺麻烦的,所以记录下. 大部分都是参考网络上的资料. 前提: 在linux下某个目录中新建一个nginx ...

  9. Linux 高性能服务器编程——多线程编程

    问题聚焦:     在简单地介绍线程的基本知识之后,主要讨论三个方面的内容:    1 创建线程和结束线程:    2 读取和设置线程属性:    3 线程同步方式:POSIX信号量,互斥锁和条件变量 ...

随机推荐

  1. ubuntu没有/usr/include/sys目录

    实际上不是没有sys目录,只是系统给换路径了 32位系统:/usr/incude/i386-linux-gnu/sys 64位系统:/usr/include/x86_64-linux-gnu/sys/ ...

  2. Jupyter NoteBook使用快捷键

    命令模式 (按键 Esc 开启) Enter : 转入编辑模式 Shift-Enter : 运行本单元,选中下个单元 Ctrl-Enter : 运行本单元 Alt-Enter : 运行本单元,在其下插 ...

  3. PHP调用API接口实现天气查询功能

    天气预报查询接口API,在这里我使用的是国家气象局天气预报接口 使用较多的还有:新浪天气预报接口.百度天气预报接口.google天气接口.Yahoo天气接口等等. 1.查询方式 根据地名查询各城市天气 ...

  4. Docker 扩容 容器空间大小 - 九

    Docker 扩容: 提前规划 : 一是从宿主机 配置磁盘格式 LVM 宿主机可以动态扩展: 二是 在容器上的扩容:默认是 100G .然后创建容器时候 挂载目录 或者直接池扩展: 默认 Docker ...

  5. Vue学习第一天:Vue.js指令系统

    1. 如何使用Vue.js? 1.1 直接引入 - <script src="./statics/vue.min.js"></script> - 引入之后在 ...

  6. NIO的epoll空轮询bug

    JDK NIO的bug,例如epoll bug,它会导致Selector空轮询,最终导致CPU 100%. Selector BUG出现的原因 若Selector的轮询结果为空,也没有wakeup或新 ...

  7. ASP.NET MVC中注册Global.asax的Application_Error事件处理全局异常

    在ASP.NET MVC中,通过应用程序生命周期中的Application_Error事件可以捕获到网站引发的所有未处理异常.本文作为学习笔记,记录了使用Global.asax文件的Applicati ...

  8. tidb调研

    TiDB是新一代开源分布式 NewSQL 数据库,相比较于我们常见的数据库MySQL,TiDB具有水平伸缩.强一致性的分布式事务.基于 Raft 算法的多副本复制等特性.同时,TiDB兼容MySQL生 ...

  9. B - Tree Rotations HYSBZ - 2212 (线段树合并)

    题目链接:https://cn.vjudge.net/contest/287725#problem/B 题目大意:现在有一棵二叉树,所有非叶子节点都有两个孩子.在每个叶子节点上有一个权值(有n个叶子节 ...

  10. linux 压缩解压缩命令