视频2-视频文件解析和格式说明【转】

  • 1.序
  • 2.封装格式
  • 3.视频编码格式和音频编码格式
  • 4.分辨率
  • 5.码率
  • 6.帧率
  • 7.采样率
  • 8.扫描方式

1.序

前面一章已经介绍了视频的基础概念,接下来会重点说明下大家平时比较困惑的一些概念。

先来看一张图,这个是用某个解析工具,将视频的相关信息解析出来的:

从上面可以看到一些常见的比如封装格式,码率等信息。

2.封装格式

维基上称为多媒体封装格式(Multimedia Container Format,MCF),简称封装格式(也叫容器),就是将已经编码压缩好的视频轨和音频轨按照一定的格式放到一个文件中。当然一个封装格式中可以包括一个音频轨或视频轨,也可以包含多个音频轨和多个视频轨。

举个栗子说,正常情况下,一个视频文件(封装格式),可以只包含一个音频流信息,也可以包含多个音频流信息,同时可以只包含一个视频流信息,也可以包含多个视频流信息。

之前有碰到过,一个电视直播频道,前一个时刻播放的是A频道的内容,后一个时刻播放的是B频道的内容。最开始以为视频在转码过程中出现了异常,后来才发现是视频源中包含了两个音频流信息和两个视频流信息。在播放A频道内容时,两组信息都存在;当播放B频道内容的时候只有一组信息存在。

虽然有些人会针对视频和音频组合在一起的封装格式叫视频封装格式,而只有音频的封装格式叫音频封装格式,但是目前有些人也会将封装格式就直接叫成“视频封装格式”。了解了封装格式的定义和内容介绍,接下来再举例有哪些封装格式(视频封装格式):

这里需要注意的是,有些封装格式由于限制比较多,只能支持某个或某些特定格式的视频编码格式和音频编码格式;而其他的一些封装格式能够支持的范围就比较广,也正是因为各种原因,导致不同的封装格式的占比在不断地变化中。总体来说,支持范围广,耗资源低的视频封装格式将受到更多青睐,也会在后续的市场中占有很大的比例。

3.视频编码格式和音频编码格式

从上图中可以看到在Video和Audio类别中各有一个Format,分别指的是视频编码格式和音频编码格式。当解析的视频文件中有多个音频和视频流,则解析出来后将会看到多个。理论上一个视频文件,其可以包含多个不同类型的视频流,也可以包含多个不同格式的音频流。

网路上如果搜索“视频编码格式”和“音频编码格式”会有很多格式的说明。但这都是从视频编解码器和音频编解码器衍生过来的说法(或者也可以叫不同的定义说明),像上图解析出来的音频编码格式和视频编码格式,内容都是**codec,就是编解码器的意思。不过,为了减少更多的误解,这里也采用国内常用的“视频编码格式”和“音频编码格式”的说法,常见的视频编码格式有h264,h265等,而常见的音频编码格式有aac等。

当然,眼尖的人会发现,从上图中标注“视频编码格式”,其format为“Advanced Video Codec”,与提到的视频编码格式貌似差异有点大。在后续的视频和音频编码格式介绍内容中,再解开谜题。

4.分辨率

在上图中可以看到由分辨率宽和高即组成了分辨率。关于分辨率还有显示分辨率和图像分辨率之说。显示分辨率主要指比如在计算机屏幕上的最大的显示区域,以水平和垂直的像素来表示,比如640x480;图像分辨率主要指图像本身的信息量,是单位英寸中所含有的像素点,文件的大小与其图像分辨率的平方成正比(像素=分辨率宽*高)。后面所说的分辨率都主要指图像分辨率。

将上面两个概念稍微提下,主要一个是针对视频的分辨率信息,而另外一个一般是在视频的播放载体,比如电视等经常会提到。这里只简要说明,如果有兴趣的人,可以搜索显示分辨率、图像分辨率,或者类似打印分辨率等,深入了解他们的区别。

5.码率

音频或视频在单位时间内的数据传输率,叫码流或码率,也有叫比特率的,单位是kbps。了解电信领域的人,对于比特率肯定不陌生,同样地,在视频领域中,这个值也相当于带宽消耗量或吞吐量,也就表征了视频文件一定的信息量,这页能很直观的意识到,在分辨率相同的情况下,码率越大,视频文件越大。

提几个有意思的问题,如果一个源视频原来是x码率,然后经过重新编码,其他数据不变的情况下,设定其码率为2x,请问:1)输出文件会变大?2)如果有变化,会有多大的变化?原因是什么?3)这种处理有没有什么应用场景?感兴趣的,可自己验证下^_^

另外,从上图中可以看到,关于码率的,还有bit rate mode、bit rate、maximum bit rate,同时还有音频和视频的码率之分,由于内容很多,尤其涉及到bit rate mode的选择,以及何种分辨率需要配合什么样的bit rate是最佳的,篇幅略多,这里就不深入讨论,后面再更深入说明。

6.帧率

FPS(frames per second),指1s刷新或移动的图片帧数。帧率越大,视频越流畅;反之,小到一定程度,画面将有跳动感。目前很多视频主要都在25帧左右,因为在这个数值,人眼就已经较难察觉图像不连续。

目前有些视频的帧率会较高,比如在30,60等,但是越高帧率的视频,在播放时可能会存在一定的问题,软解上会消耗一定的资源,但一般也能正常播放;但如果针对某些硬件,其采用硬解,就可能存在问题。之前就碰到过某个品牌某个型号的电视,最高支持的帧率是50,而当时视频有60,就导致了声音画面不同步。

关于视频的播放(底层播放器),后面再找个时间细说下吧~

7.采样率

从上图中也可以看到,采样率主要在音频中说明,那就可以知道这个对于对于音频的重要性了。

两个常用的采样率:

  1. 44 100 Hz(44.1K) - 主要应用于音频CD、MPEG-1音频(VCD, SVCD, MP3),标准制定于1970s。(这里插一句,模拟音频采样率就是44.1K)

  2. 48 000 Hz(48K) - miniDV、DVD、DAT、电影和专业音频所用的数字声音

很多人都会说哪个好,网路上也各有说法,我给出的说法是it depend ,就看是要在什么场景。对于人耳来说,这两者的听觉质量差异很小了,那他们的主要差异是在视频同步和帧速率。视频文件中,都是以48KHZ来进行音频和视频帧同步,市场上的很多摄像机,其采样率也是48K。

8.扫描方式

扫描方式主要是指图像在显示器上的运动显示方法,其包括逐行扫描(也叫非隔行扫描),隔行扫描。

  1. 隔行扫描,Interlaced,也叫交错方式,如果有些电视或者解码器设备没有做相应的处理,视频播放过程中将产生花屏现象。因此,在水平应用场景,由于适配的电视和显示器端多种多样,为了正常播放,就需要视频进行反交错处理(deinterlace),重新编码输出。

  2. 逐行扫描,Progressive。在当前的很多电视机中,也有将隔行扫描转化为逐行扫描。

【说明】
文章转自,华为云社区,作者Higeeon,相关版权解释权归原作者所有。https://bbs.huaweicloud.com/blogs/d69574b260ea11e9bd5a7ca23e93a891

视频2-视频文件解析和格式说明相关推荐

  1. 网页视频之MP4文件解析

    为了研究如何把H264打包成fMp4文件,今天先开始研究如何从fMp4中解析出H264数据. fMP4包括ftype+moov+(moof+mdat)*N这种格式组成. Box的定义: ftyp格式: ...

  2. OpenCV读写视频文件解析(二)

    OpenCV读写视频文件解析(二) VideoCapture::set 设置视频捕获中的属性. C++: bool VideoCapture::set(int propId, double value ...

  3. OpenCV读写视频文件解析

    OpenCV读写视频文件解析 一.视频读写类 视频处理的是运动图像,而不是静止图像.视频资源可以是一个专用摄像机.网络摄像头.视频文件或图像文件序列. 在OpenCV 中,VideoCapture 类 ...

  4. 视频头文件解析--ts

    视频头文件解析--ts 分类: 视频编解码 2013-01-16 12:34 347人阅读 评论(0) 收藏 举报 TS ts 视频封装 数据结构: typedef struct pmt_es_com ...

  5. 开发视频网站,asp.net视频文件转换.fla格式

    最经公司有一个小项目需要把视频转换成FLASH文件,效果就是像用户注册youku网一样,自己可以视频上传,转换成flash格式播放. 苦于以前没有做过,于是马上搜索了相关的文章,看了 http://w ...

  6. 怎么把video文件改成mp4_腾讯视频文件怎么转换格式_如何把腾讯视频转换成mp4格式-win7之家...

    视频软件不一样,视频的格式也会不一样,比如qlv视频格式是腾讯视频的独有格式,想要观看qlv格式的视频文件,就只能下载腾讯视频播放器,但是这样显得有点麻烦,其实我们也可以对腾讯视频文件转换格式,比如转 ...

  7. 教你压缩视频文件为MP4格式

    在电脑上下载视频到MP4上不知道大家有没有发现下载的视频不能播放,挥着是下载到U盘中,使用U盘在小轿车上播放视频,下载的很多视频或是音频都是不能正常的播放的,车上的播放器会显示为格式错误,那么怎样将下 ...

  8. 音视频文件的容器格式和编码格式

    转自:http://blog.chinaunix.net/uid-25885064-id-3338166.html 音视频文件的容器格式和编码格式 视频和音频以视频文件格式的形式放在一个文件中,方便同 ...

  9. 利用Python将WEBVTT格式的视频字幕文件转为SRT格式

    1 WebVTT & SRT 格式 WebVTT字幕格式与SRT字幕格式主要区别在于时间格式的区分. 下面是一个WebVTT格式的字幕文件 WEBVTT1 00:00:20.000 --> ...

  10. java mp4 视频时间戳_MP4文件中音视频时间戳的计算

    MP4文件的组成 MP4文件的格式遵循ISO/IEC 14496-12标准,即ISO base media file format.所有数据都封装在被称为Box的数据结构中,一个MP4文件,是由多个B ...

最新文章

  1. SimBERTv2 融合检索和生成的RoFormer-Sim模型
  2. Linux yum 报错:One of the configured repositories failed (Unknown), and yum doesn't have.
  3. Android一个自定义的进度环:ProgressChart
  4. 带你一起学软件工程的专业英语!(IT行业、四六级党快记起来)《软件工程专业英语》第一单元:启动软件项目——单词、短语、名词缩写、难句、备忘录的基本格式样本(必备技能)
  5. 电闹上赠么使用计算机,计算器怎么算n次方 怎么用电脑计算器算次方
  6. CSS字体系列(CSS、HTML)
  7. 神经网络+CNN模型训练总结:
  8. 其实,我是靠怼产品上位的。。。
  9. 只要是[运算] 就会提升数据类型
  10. 3.mysql的主从原理是什么_mysql 的主从实现原理
  11. PDF中批量数据的提取与处理
  12. axure如何导出原件_彻底抛弃WORD!教你用Axure快速输出高质量的PRD
  13. 【SVN】SVN创建分支
  14. 测试计算机性能的软件比较专业,用什么软件测验电脑CPU性能最好
  15. 算法解析——矩阵快速幂
  16. 木马 --- 基本概念和分类
  17. 计算机无共放怎么播放音乐,笔记本电脑怎么放歌没声音
  18. WebView 视频播放,全屏按钮显示不出来,全屏后不能播放视频
  19. 六款在线项目管理工具
  20. OpenStack搭建私有云一:认证服务

热门文章

  1. 主题:北京亿阳信通Oracle笔试题
  2. python毫秒级sleep
  3. 自考深圳大学本科难吗?亲身经历分享
  4. 计算机等级考试四级--数据库原理
  5. 寒江独钓学习笔记 -- 第四章 Hook分发函数 过滤键盘输入
  6. 微信公众平台之模拟登录
  7. 计算机术语一种单向密码体制,密码体制有哪五部分
  8. Windows环境下使用UHD PythonAPI开发USRP X310
  9. Android开发:toast封装工具类
  10. java detach_Java Node.detach方法代码示例