博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

基础概念

Posted on 2014-09-23 16:06  bw_0927  阅读(162)  评论(0编辑  收藏  举报

 

***MPEG-2 (aka H.222/H.262 as defined by the ITU) is a standard for "the generic coding of moving pictures and associated audio information".

MPEG-2 was the second of several standards developed by the Moving Pictures Expert Group (MPEG)

***MPEG transport stream (MPEG-TSMTS or TS) is a standard format for transmission and storage of audiovideo, and Program and System Information Protocol (PSIP) data.

In telecommunications and computer networksmultiplexing (sometimes contracted to muxing) is a method by which multiple analog message signals or digital data streams are combined into one signal over a shared medium. The aim is to share an expensive resource. For example, in telecommunications, several telephone calls may be carried using one wire.

 

 

A device that performs the multiplexing is called a multiplexer (MUX), and a device that performs the reverse process is called ademultiplexer (DEMUX or DMX).

码率就是数据传输时单位时间传送的数据位数,一般我们用的单位是kbps即千位每秒。

FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。它包括了目前领先的音/视频编码库libavcodec。可以轻易地实现多种视频格式之间的相互转换,例如在本例中可以把MP4,MOV等文件转成我们用来切片的MPEG-TS文件。

利用ffmpeg对视频文件进行转码 ,视频文件 -- >ts文件

利用软件segmenter将转换好的ts文件切割成多个ts片,并生成.m3u8的索引文件

视频,其实是一张张连续图片快速显示形成的。首先了解几个词:

帧率:每秒显示的图片数 
分辨率:(矩形)图片的长度和宽度,即图片的尺寸 
码率:把每秒显示的图片进行压缩后的数据量。

视频码率是指每秒钟视频的数据量,码率越高视频质量好。码率大小还取决于分辨率、帧速率及编码器设置。

http://www.vmovier.com/43744

视频播放过程

首先简单介绍以下视频文件的相关知识。我们平时看到的视频文件有许多格式,比如 avi, mkv, rmvb, mov, mp4等等,这些被称为容器(Container), 不同的容器格式规定了其中音视频数据的组织方式(也包括其他数据,比如字幕等)。容器中一般会封装有视频和音频轨,也称为视频流(stream)和音频 流,播放视频文件的第一步就是根据视频文件的格式,解析(demux)出其中封装的视频流、音频流以及字幕(如果有的话),解析的数据读到包 (packet)中,每个包里保存的是视频帧(frame)或音频帧,然后分别对视频帧和音频帧调用相应的解码器(decoder)进行解码,比如使用 H.264编码的视频和MP3编码的音频,会相应的调用H.264解码器和MP3解码器,解码之后得到的就是原始的图像(YUV or RGB)和声音(PCM)数据,然后根据同步好的时间将图像显示到屏幕上,将声音输出到声卡,最终就是我们看到的视频。
http://www.findfunaax.com/notes/file/103
视频编解码器,是指一个能够对数字视频进行压缩或者解压缩的程序或者设备。通常这种压缩属于有损数据压缩。历史上,视频信号是以模拟形式存储在磁带上的。随着Compact Disc的出现并进入市场,音频信号以数字化方式进行存储,视频信号也开始使用数字化格式
DVDMPEG-2),VCDMPEG-1
常用的视频编解码器

高清

http://hexdigi.jimdo.com/2011/07/26/mpeg-h264-wmvhd-rmvb/

目前MPEG格式有三个压缩标准,分别是MPEG-1、MPEG-2、和MPEG-4,但真正能达到高清标准的只有MPEG-2和MPEG-4。MPEG文件格式是运动图像压缩算法的国际标准,它采用了有损压缩方法从而减少运动图像中的冗余信息。MPEG的压缩方法说的更加深入一点就是保留相邻两幅画面绝大多数相同的部分,而把后续图像中和前面图像有冗余的部分去除,从而达到压缩的目的。

相对于高清视频来说,MPEG-4格式 还显得有点不够用,因此它也不是主流的高清视频信号来源。这种视频格式的文件扩展名包括.asf、.mov和DivX 、AVI等。

 H.264是一种高性能的视频编解码技术。目前国际上制定视频编解码技术的组织有两个,一个是“国际电联(ITU-T)”,它制定的标准有H.261、H.263、H.263+等,另一个是“国际标准化组织(ISO)”它制定的标准有MPEG-1、MPEG-2、MPEG-4等。而H.264则是由两个组织联合组建的联合视频组(JVT)共同制定的新数字视频编码标准,所以它既是ITU-T的H.264,又是ISO/IEC的MPEG-4高级视频编码(Advanced Video Coding,AVC),而且它将成为MPEG-4标准的第10部分。因此,不论是MPEG-4 AVC、MPEG-4 Part 10,还是ISO/IEC 14496-10,都是指H.264。

当前在网络上见的最多的,肯定是RMVB视频,RMVB之所以这么流行,主要是RMVB在图像质量与文件大小之间取得了最好的平衡。

 

 

网络摄像机VS传统摄像机 http://www.xiangb.com/faq/faq_1660.html

http://blog.csdn.net/yangzhiloveyou/article/details/8832626

在视频压缩的过程中, I帧是帧内图像数据压缩,是独立帧。而P帧则是参考I帧进行帧间图像数据压缩,不是独立帧。在压

缩后的视频中绝大多数都是P帧,故视频质量主要由P帧表现出来。由于P帧不是独立帧,而只是保存了与邻近的I帧的差值,

故实际上并不存在分辨率的概念,应该看成一个二进制差值序列。

PTS和DTS
  
  幸运的是,音频和视频流都有一些关于以多快速度和什么时间来播放它们的信息在里面。音频流有采样,视频流有每秒的帧率。然而,如果我们只是简单的通过数帧和乘以帧率的方式来同步视频,那么就很有可能会失去同步。于是作为一种补充,在流中的包有种叫做DTS(解码时间戳)和PTS(显示时间戳)的机制。为了这两个参数,你需要了解电影存放的方式。像MPEG等格式,使用被叫做B帧(B表示双向bidrectional)的方式。另外两种帧被叫做I帧和P帧(I表示关键帧,P表示预测帧)。I帧包含了某个特定的完整图像。P帧依赖于前面的I帧和P帧并且使用比较或者差分的方式来编码。B帧与P帧有点类似,但是它是依赖于前面和后面的帧的信息的。

GOP是由固定模式的一系列I帧、P帧、B帧组成。MPEG-2压缩的帧结构有两个参数,一个是GOP(Group Of Picture)图像组的长度,一般可按编码方式从1-15;另一个是I帧和P帧之间B帧的数量,一般是1-2个。前者在理论上记录为N,即多少帧里面出现一次I帧;后者描述为多少帧里出现一次P帧,记录为M。

对于一个电影,帧是这样来显示的:I B B P。现在我们需要在显示B帧之前知道P帧中的信息。因此,帧可能会按照这样的方式来存储:IPBB。这就是为什么我们会有一个解码时间戳和一个显示时间戳的原因。解码时间戳告诉我们什么时候需要解码,显示时间戳告诉我们什么时候需要显示。所以,在这种情况下,我们的流可以是这样的:
  
  PTS: 1 4 2 3
  
  DTS: 1 2 3 4
  
  Stream: I P B B
  
  通常PTS和DTS只有在流中有B帧的时候会不同。