音视频多媒体协议相关资料汇总

未知问题:
  • 编码,封装,协议的区别:
    如何将TS源流重新封装并通过P2P协议传输在安卓终端和苹果终端播放

  • 封装

介绍完了视频编码后,再来介绍一些封装。沿用前面的比喻,封装可以理解为采用哪种货车去运输,也就是媒体的容器。

所谓容器,就是把编码器生成的多媒体内容(视频,音频,字幕,章节信息等)混合封装在一起的标准。容器使得不同多媒体内容同步播放变得很简单,而容器的另一个作用就是为多媒体内容提供索引,也就是说如果没有容器存在的话一部影片你只能从一开始看到最后,不能拖动进度条(当然这种情况下有的播放器会话比较长的时间临时创建索引),而且如果你不自己去手动另外载入音频就没有声音。

下面介绍几种常见的封装格式和优缺点:

  • AVI 格式(后缀为 .avi):
    它的英文全称为 Audio Video Interleaved ,即音频视频交错格式。它于 1992 年被 Microsoft 公司推出。这种视频格式的优点是图像质量好。由于无损 AVI 可以保存 alpha 通道,经常被我们使用。缺点太多,体积过于庞大,而且更加糟糕的是压缩标准不统一,最普遍的现象就是高版本 Windows 媒体播放器播放不了采用早期编码编辑的 AVI 格式视频,而低版本 Windows 媒体播放器又播放不了采用最新编码编辑的 AVI 格式视频,所以我们在进行一些 AVI 格式的视频播放时常会出现由于视频编码问题而造成的视频不能播放或即使能够播放,但存在不能调节播放进度和播放时只有声音没有图像等一些莫名其妙的问题。
  • DV-AVI 格式(后缀为 .avi):
    DV 的英文全称是 Digital Video Format ,是由索尼、松下、JVC 等多家厂商联合提出的一种家用数字视频格式。数字摄像机就是使用这种格式记录视频数据的。它可以通过电脑的 IEEE 1394 端口传输视频数据到电脑,也可以将电脑中编辑好的的视频数据回录到数码摄像机中。这种视频格式的文件扩展名也是 AVI。电视台采用录像带记录模拟信号,通过 EDIUS 由IEEE 1394端口采集卡从录像带中采集出来的视频就是这种格式。
  • QuickTime File Format 格式(后缀为 .mov):
    美国 Apple 公司开发的一种视频格式,默认的播放器是苹果的 QuickTime。具有较高的压缩比率和较完美的视频清晰度等特点,并可以保存 alpha 通道。
  • MPEG 格式(文件后缀可以是 .mpg .mpeg .mpe .dat .vob .asf .3gp .mp4等) :
    它的英文全称为 Moving Picture Experts Group,即运动图像专家组格式,该专家组建于 1988 年,专门负责为 CD 建立视频和音频标准,而成员都是为视频、音频及系统领域的技术专家。MPEG 文件格式是运动图像压缩算法的国际标准。MPEG 格式目前有三个压缩标准,分别是 MPEG-1、MPEG-2、和 MPEG-4 。MPEG-1、MPEG-2 目前已经使用较少,着重介绍 MPEG-4,其制定于 1998 年,MPEG-4 是为了播放流式媒体的高质量视频而专门设计的,以求使用最少的数据获得最佳的图像质量。目前 MPEG-4 最有吸引力的地方在于它能够保存接近于 DVD 画质的小体积视频文件。
  • WMV 格式(后缀为.wmv .asf):
    它的英文全称为 Windows Media Video,也是微软推出的一种采用独立编码方式并且可以直接在网上实时观看视频节目的文件压缩格式。WMV 格式的主要优点包括:本地或网络回放,丰富的流间关系以及扩展性等。WMV 格式需要在网站上播放,需要安装 Windows Media Player( 简称 WMP),很不方便,现在已经几乎没有网站采用了。
  • Real Video 格式(后缀为 .rm .rmvb):
    Real Networks 公司所制定的音频视频压缩规范称为Real Media。用户可以使用 RealPlayer 根据不同的网络传输速率制定出不同的压缩比率,从而实现在低速率的网络上进行影像数据实时传送和播放。RMVB 格式:这是一种由 RM 视频格式升级延伸出的新视频格式,当然性能上有很大的提升。RMVB 视频也是有着较明显的优势,一部大小为 700 MB 左右的 DVD 影片,如果将其转录成同样品质的 RMVB 格式,其个头最多也就 400 MB 左右。大家可能注意到了,以前在网络上下载电影和视频的时候,经常接触到 RMVB 格式,但是随着时代的发展这种格式被越来越多的更优秀的格式替代,著名的人人影视字幕组在 2013 年已经宣布不再压制 RMVB 格式视频。
  • Flash Video 格式(后缀为 .flv):
    由 Adobe Flash 延伸出来的的一种流行网络视频封装格式。随着视频网站的丰富,这个格式已经非常普及。
  • Matroska 格式(后缀为 .mkv):
    是一种新的多媒体封装格式,这个封装格式可把多种不同编码的视频及 16 条或以上不同格式的音频和语言不同的字幕封装到一个 Matroska Media 档内。它也是其中一种开放源代码的多媒体封装格式。Matroska 同时还可以提供非常好的交互功能,而且比 MPEG 的方便、强大。
  • MPEG2-TS 格式 (后缀为 .ts)(Transport Stream「传输流」,又称 MTS、TS):
    是一种传输和存储包含音效、视频与通信协议各种数据的标准格式,用于数字电视广播系统,如 DVB、ATSC、IPTV 等等。MPEG2-TS 定义于 MPEG-2 第一部分,系统(即原来之 ISO/IEC 标准 13818-1 或 ITU-T Rec. H.222.0)。Media Player Classic、VLC 多媒体播放器等软件可以直接播放 MPEG-TS 文件。

目前,我们在流媒体传输,尤其是直播中主要采用的就是 FLV 和 MPEG2-TS 格式,分别用于 RTMP/HTTP-FLV 和 HLS 协议。

RTMP协议知识点:
  • RTMP协议是封装的FLV视频在互联网中进行传输。
  • RTMP协议基于tcp协议;而TCP协议实时性不如UDP,也非常占用带宽。目前基于UDP的RTMFP协议能很好的解决这些问题。
RTMP vs HLS vs HTTP FLV:
  • RTMP:Adobe公司的流媒体传输协议,端口号1935普通网络用户均可使用,包括非IOS平台用户,对非80端口(如1935)无限制的网络环境用户。优点:防HTTP下载,延时短。
    HLS:IOS平台下的流媒体传输协议 ,端口号80优点:H5浏览器支持比较好,IOS,安卓原生支持。缺点:延迟性比较大。楼上说的切片,关键帧改变后切片时间可以缩短,而且可以自己设定首次产生多少分片。
    HTTP FLV:是一种将直播流模拟成FLV文件,通过HTTP协议进行下载的模式来实现流媒体传输的协议,端口号80 一般建议使用HTTP FLV,实时性和RTMP相等。优点:HTTP相比于RTMP省去了一些协议交互时间,首屏时间更短。HTTP可拓展的功能更多。
    作者:世界与你同在
    链接:https://www.zhihu.com/question/47504661/answer/117559809
    来源:知乎
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
  • HLS:移动h5浏览器支持较好,但是延迟较大。移动端播放前需要产生三个分片,每个分片至少得是一个GOP。一个GOP即使是2秒,也意味着这个环节耗费了6秒的延时。
    RTMP:需要访问1935端口,支持双向互动,实时性很好,PC flash原生支持。
    HTTP-FLV:不支持双向互动,实时性和RTMP协议一致。我们目前用的是HTTP-FLV作为拉流协议。原因如下:1, 国内网络情况的恶劣程度,并不是每个网络防火墙都允许1935包通过。2,RTMP协议和HTTP-FLV,实际传输的内容都是相同的FLV,实时性也一样。3,RTMP协议握手方式比HTTP复杂。
    作者:ksy-codefarmer
    链接:https://www.zhihu.com/question/47504661/answer/106441080
    来源:知乎
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

这里写图片描述

  • RTP&RTCP基于UDP协议。
  • RTSP可选择TCP/UDP协议。
  • RTMP基于TCP协议。
  • 什么是GOP?就是视频流中两个I帧的时间距离。
  • 理论上RTSP RTMP HTTP都可以做直播和点播,但一般做直播用RTSP RTMP,做点播用HTTP。做视频会议的时候原来用SIP协议,现在基本上被RTMP协议取代了。

RTMP特点:

  • Adobe支持得很好:
    RTMP实际上是现在编码器输出的工业标准协议,基本上所有的编码器(摄像头之类)都支持RTMP输出。
    原因在于PC市场巨大,PC主要是Windows,Windows的浏览器基本上都支持flash,
    Flash又支持RTMP支持得非常好。
  • 适合长时间播放:
    因为RTMP支持的很完善,所以能做到flash播放RTMP流长时间不断流,
    当时测试是100万秒,即10天多可以连续播放。
    对于商用流媒体应用,客户端的稳定性当然也是必须的,否则最终用户看不了还怎么玩?
    我就知道有个教育客户,最初使用播放器播放http流,需要播放不同的文件,结果就总出问题,
    如果换成服务器端将不同的文件转换成RTMP流,客户端就可以一直播放;
    该客户走RTMP方案后,经过CDN分发,没听说客户端出问题了。
  • 延迟较低:
    比起YY的那种UDP私有协议,RTMP算延迟大的(延迟在1-3秒),
    比起HTTP流的延时(一般在10秒以上)RTMP算低延时。
    一般的直播应用,只要不是电话类对话的那种要求,RTMP延迟是可以接受的。
    在一般的视频会议应用中,RTMP延时也能接受,原因是别人在说话的时候我们一般在听,
    实际上1秒延时没有关系,我们也要思考(话说有些人的CPU处理速度还没有这么快)。
  • 有累积延迟:
    技术一定要知道弱点,RTMP有个弱点就是累积误差,原因是RTMP基于TCP不会丢包。
    所以当网络状态差时,服务器会将包缓存起来,导致累积的延迟;
    待网络状况好了,就一起发给客户端。
    这个的对策就是,当客户端的缓冲区很大,就断开重连。

HTTP协议/RTSP协议/RTMP协议的区别

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

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

相关文章

谷歌地图VS苹果地图:大数据领域竞争

摘要:iOS 6推出之后,争议最大的是什么?苹果地图。苹果地图成为人们抨击iOS 6的首选,而苹果放弃谷歌地图选择自力更生是迫不得已。苹果和谷歌之间的竞争领域可以用三个字来概括:大数据。谷歌拥有大数据,而苹…

Shell 参数传递、 $* 与 $@ 区别

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 传递参数 脚本内获取参数的格式为: $n。n 代表一个数字,1 为执行脚本的第一个参数, 2 为执行脚本的第…

微软正在考虑将Windows默认浏览器改为Chromium

据外媒报道,微软正在构建一个基于Chromium的浏览器,代号为Anaheim,目标是取代Windows中的Edge。 Microsoft Edge是微软于2015年推出的浏览器,该浏览器取代了IE成为Windows 10的默认浏览器。尽管如此,Microsoft Edge并没…

css文本属性

text-align文本水平对齐属性 取值 left(默认) right center text-indent 文本缩进属性 单位可以是px也可以是em(字符) text-decoration 文本装饰属性 取值 underline(下划线) overline(上划线) line-though(删除线) 转载于:https://www.cnblogs.com/c-aha/p/10298422.html

三次握手的第三个ACK包丢了,会发生什么?

转载自三次握手的第三个ACK包丢了,TCP的处理方式 三次握手的第三个ACK包丢了,客户端认为连接建立,写数据时,会触发RST。 当Client端收到Server的SYNACK应答后,其状态变为ESTABLISHED,并发送ACK包给Server&a…

运营商与厂商发力 智能机进入700元以下时代

千元智能手机的成功,并没有让运营商以及手机厂商感到满足。继中国电信宣布重点打造600元智能手机后,近日,中国联通也表态将发力700元以下智能手机市场。而运营商的表态立刻引来了多家手机厂商的呼应,产品价格的继续下探&#xff0…

输入一个数,判断他是不是质数

思路:先给一个数字x,然后让这个数字x从2开始除,如果 x 从 2 除到 (x-1) 能被整除,那这就不是质数.如果不能被整除,那就是质数. 当然如果x小于2,那x必然不是质数,也不是合数. #输入一个数,判断他是不是质数 x int(input("请输入一个数字:")) #先输入一个数字 co…

一分钟了解四层/七层反向代理

转自公众号:架构师之路今天花几分钟简单和大家解释一下。场景:访问用户通过proxy请求被访问的真实服务器 路径:用户 -> proxy -> real-server什么是代理? 回答:[proxy]代表[访问用户],此时proxy是代理…

tcp建立连接为什么需要三次握手

这是一个看似很“简单”的问题,但貌似并没有一个官方统一的答案。搜索了相关的资料,列举出一些答案。 以下部分转载自:tcp建立连接为什么需要三次握手 在《计算机网络》一书中其中有提到,三次握手的目的是“为了防止已经失效的连…

SFTPUtils工具类及使用

配置maven <dependency><groupId>com.jcraft</groupId><artifactId>jsch</artifactId><version>0.1.54</version> </dependency> 工具类 package com.sftp;import com.jcraft.jsch.*; import com.jcraft.jsch.ChannelSftp.LsE…

国内手机产业混乱:产业一窝蜂 企业捞快钱

对于当前国内手机行业的现状&#xff0c;本报记者采访的多位业内人士表示&#xff0c;目前国内手机行业仍是“红海”格局&#xff0c;多数企业并不了解手机产业规律&#xff0c;看到有钱赚就“一窝蜂”上项目。有行业人士认为&#xff0c;要走出目前行业的现状&#xff0c;企业…

查看私密文章方法

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 我只是记录下&#xff0c;曾经写过一次文章&#xff0c;勾选了私密&#xff0c;再后来就找不到了。 下面这个链接可以查出那篇文章&…

SDUT-3364_欧拉回路

数据结构实验之图论八&#xff1a;欧拉回路 Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description 在哥尼斯堡的一个公园里&#xff0c;有七座桥将普雷格尔河中两个岛及岛与河岸连接起来。 能否走过这样的七座桥&#xff0c;并且每桥只走一次&#xff1f;瑞士数学…

Tcp三次握手和四次挥手状态图

三次握手 四次挥手 正常情况下 同时挥手 SYN攻击&#xff1a; 在三次握手过程中&#xff0c;Server发送SYN-ACK之后&#xff0c;收到Client的ACK之前的TCP连接称为半连接&#xff08;half-open connect&#xff09;&#xff0c;此时Server处于SYN_RCVD状态&#xff0c;当…

QEMU 3.0.0 新特性一览

QEMU 在 2018年8月15发布了版本3.0.0&#xff0c; 正式从 2.12 进入了3.0 时代。 而且到今年位为止&#xff0c;QEMU 已经有15个年头了&#xff0c;出乎意料的长阿&#xff0c;:) 其主要新特性如下&#xff1a; ARM&#xff1a; 在virt机器中支持SMMUv3 IOMMU 在v8M中支持VLLDM…

OpenCL、OpenGL 同时工作

视频处理如果能使用OpenCL、OpenGL、omap将大量提高运算速度&#xff0c;简单介绍OpenCL、OpenGL 同时工作。 OpenCL和OpenGL都能用于操作GPU&#xff0c;但是前者主要用于通用计算&#xff0c;而后者主要用于图像渲染。在某些情况下&#xff0c;我们希望能用OpenCL计得到算图像…

财务自由之路——为什么选择淘宝(下)

接上文~一、淘宝之前的大佬们是怎么试错的?我们看看在淘宝之前的大佬们是怎么试错迭代产品的。都知道飞机是莱特兄弟发明的&#xff0c;但很少有人知道为什么是他们。在内燃机发明后的很长一段时间内全球各地发明家都在投入研究飞机&#xff0c;莱特兄弟相对于其他竞争者&…

java参数后面跟三个点是什么意思

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 AVA中类型后面跟三个点是什么来的。 看代码中那个三点&#xff0c;这样做起到重载的作用&#xff0c;但这是什么意思&#xff1f; cla…

一只视频程序猿的移动直播SDK初体验

本文转自一只视频程序猿的移动直播SDK初体验&#xff0c;此处仅做排版改动。 今早老板召开站会&#xff0c;“移动直播这么火&#xff0c;市面上有一百多个APP&#xff0c;小斌&#xff0c;你下周交个原型APP瞅瞅!” 小弟心中一万匹草泥马奔过&#xff0c;这玩意儿哪儿是几天就…

Xilinx zynq-7000系列FPGA移植Linux操作系统详细教程

Xilinx zynq-7000系列FPGA移植Linux操作系统详细教程 一&#xff1a;前言 最近手上压了一块米联客的Miz7035&#xff0c;一块xilinx zynq-7000系列的开发板&#xff0c;想着正好学习一下linux在ARM9上的移植&#xff0c;网上基本都是ZC702、zed的教程&#xff0c;这对于买了非标…