zoukankan      html  css  js  c++  java
  • 视频格式研究

      我们平常笼统说的「视频格式」其实包含三个部分:视频编码、音频编码、容器格式。其中「编码」这个概念其实又包含两个方面:编码和解码。「视频编码」作为动词指的是将动态的图像信息转化为二进制数据的过程;其逆过程称为「视频解码」。「视频编码」作为名词则通常指的是某种特定的编码方式。同样的概念也适用于「音频编码」,只不过它转化的是声音信息。大多数「视频文件」都同时包含视频和音频,因此编码后至少都有两组二进制数据,并且两组数据必须按照特定的方式同步起来,否则我们看到的画面和听到的声音将不吻合。为了解决编码后多组不同类型的的数据的存储、传输问题,需要将他们按照一定的规律组织起来,这种组织方式即是「容器格式」。

      我们常见的视频文件扩展名包括 .avi, .rmvb, .mp4, .mkv 等。其实扩展名都是指的某种容器格式。这些容器里面存放的数据可能采用了多种不同的编码方式。例如,常见的 avi 文件里面存放的通常是 xvid 或 divx 编码的视频和 mp3 编码的音频。rmvb 文件里面存放的通常是 RV40 编码的视频和 cook 编码的音频。mp4 文件里面通常存放的是 H.264 编码的视频和 AAC 编码的音频。mkv 文件里面存放的则可能包含前面各种。
    问题中要比较的其实并不是 MKV、MP4、RMVB。这些只是封装格式。比较画质其实是比较视频编码,也就是 MKV、MP4 中常见的 H.264 和 RMVB 中的 RV40 (RealVideo 的最高版本编码)。
      以下 A/B 表达方式指的是 B 容器格式中的 A 视频编码
      在 H.264/MP4 出现之前,广泛使用的 DivX/AVI 压缩比并不高。在国内网络视频兴起的时候,绝大部分网民的带宽很低( < 1Mbps。即便是现在也不高,家用『宽带』通常也就 2~5 Mbps)。因此网络视频的文件尺寸异常重要。在提供可以接受的画质条件下,RV40/RMVB 要比 DivX/AVI 来的好。一部时长两个小时、分辨率约 720x480 的 RMVB 电影通常可以在画质不至于太糟糕的情况下压缩到 400MB 以下。于是在各大视频组就出现了基于 RMVB 的各种成熟的工具和流程,可以很方便的从片源转码到 RMVB,中间同时完成硬烧字幕、广告等功能。为什么要硬烧(不可逆)?因为:1)普通用户不同操心软字幕的编码、播放问题。拜 Windows 所赐,跨语言通用的 UTF-8 编码文本字幕在中文圈子里很少。2) 硬烧的视频组、字幕组广告无法消除,有效防止其他人『盗用』(都是盗版,墨迹个啥……)自己组编码、翻译的视频。
      H.264/MP4 出现后,国外工业界基本就统一到了这个格式上了。Flash 的兴起也让 Real 没落了。国外的 BT 站现在根本找不到 RMVB 视频。一般就低画质、小尺寸的 Xvid/AVI 和高画质、大尺寸的 H.264/MP4 或 H.264/MKV。发达国家的家用带宽现在很不错了,10~100Mbps 都有。高带宽的连接让用户可以下载体积在 5GB 以上的 1080p 或 720p H.264/MP4 视频(我曾下过 30GB 一部的 Wall-E 高清 1080p)。这样的划分形成了个误区,让很多『不明真相的群众』认为 MP4、MKV 臃肿。其实 H.264 也可以做低画质、小尺寸的视频,而且效果至少和 RMVB 的低码率相当(如果不是更好的话)。而且因为 H.264 成为工业标准,近年来兴起的移动设备上通常有硬件解码芯片,可以低功耗的播放 H.264/MP4 视频。新的桌面系统如 Windows 7、Mac OS X 现在也都自带 H.264/MP4 解码能力,无须额外安装解码器。因此无论从任何方面讲,现在的视频组都应该着手向 H.264/MP4 过渡(虽然 MKV 容器很灵活,但 H.264/MKV 不是工业标准,在移动设备上会有问题)。
      在这样的情况下,为何国内的视频站还抱着 RMVB 不放呢?一个原因是之前形成的那个误区,用户认为 H.264/MP4 的尺寸太大。另外一个更重要的原因则是相应的工具、流程还没有完善。H.264 的压缩很慢,即便在新机器上,速度也很难接受。视频组每天要应对大量的转码任务,而且要为抢先发布争分夺秒。缓慢的压缩过程降低了视频组的吞吐量和时效性。这个问题随着 Intel 开发的 QuickSync [1] 技术的普及(Sandy Bridge 架构 CPU 开始搭载)会慢慢解决。如果转码软件支持,QuickSync 可以高速(两倍)的进行 H.264 视频转码。此外,H.264 的硬烧字幕、广告、剪辑工具目前还没有完善(起码还没有盗版到,因而在国内无法普及)。等工具和流程的问题解决了,RMVB 就可以寿终正寝了。就像人人影视发出的公告:“鉴于RMVB格式的老去,MP4格式的普及,以及设备和软件的支持,在春季播出的新美剧,我们将不再提供RMVB格式,一律使用 MP4格式取代之。RMVB技术10年了没有进行改进,已经不适应现在的各种需求,感谢大家的支持。 MP4在相同容量下会比RMVB更优秀,且播放器和手持设备都支持。”
      rmvb的兴起缘由,可能是因为realplayer是首先普及并领先的,4-5年前divx、xvid、mp4、等等压缩、封装协议,在没kmp、shooter、暴风影音这些做codec整合解决方案的播放器的时候,rmvb是为数不多、方便的、且市面上存在大量的媒体资源。
      在没流行flash嵌入、html5播放前,rm、wmv是两大主要的ie嵌activeX播放解决方案。当时rm的helix平台技术比windows media的强大且盗版普及率高。
    1.压制难度:X264的压制要比RMVB的难度要大,目前支持压制RMVB的软件技术已经非常成熟了,而且real公司也没在更新这种格式。而X264还在一直更新中,涉及到的滤镜问题也是相当棘手
    2.压制时间:用X264编码一个符合720P标准的120分钟电影,如果用一个4核的普通电脑要大概10小时以上的时间,而Rmvb只需要1-2个小时,有的小组为了抢首发,于是选择了这种格式。
    3.质量问题:与其说字幕组不放弃在这个格式,倒不如说是用户不放弃这个格式,Rmvb给人的印象好像就是体积小,清晰;至于清晰不清晰这个问题,在很多人眼里是不一样的,比如说我,我对清晰的最低标准就是用BD做源,码率不低于5000,标准的1280X720,但是有的人可能认为“爱奇艺”的在线视频就很清晰了,这种人对于高清格式没有一个普遍认识,这种人对于电影的观影体验要求度极小,对于字幕也没有什么要求,能看懂就行,我认识的人中间甚至没有听说过MKV格式,更别提什么X264编码了。

     

  • 相关阅读:
    关于.NET Reflector
    Windows Debugging之九
    在IA32如何将程序计数器的值放入到整数寄存器中?
    [陆续添加]计算机网络最最基础的基本概念
    ASCII表
    [翻译文章]我们是如何做到的: 提高SharePoint.Microsoft.com站点的性能
    Windows API是什么?
    寄存器使用惯例
    阅读笔记 了解ASP.NET底层架构 之一
    汇编程序中的返回值
  • 原文地址:https://www.cnblogs.com/guanghe/p/6277118.html
Copyright © 2011-2022 走看看