闲说视频清晰度和各种格式、编码技术的发展历史
文章目录
- 引子
- 清晰度
- 视频格式:MP4、AVI 、MKV、MOV、WMV、FLV 、RMVB等等
- 什么是视频格式
- MP4
- AVI
- MKV
- MOV
- WMV
- FLV
- RM / RMVB
- 其他
- 编码技术:MPEG-1、MPEG-2、MPEG-4、RealVideo、DivX、XviD、H.264(AVC)、H.265(HEVC)等等
- 什么是视频编码技术
- H.264等的视频编码原理
- 硬解码和软解码
- 硬解码(Hardware Decoding)
- 软解码(Software Decoding)
- H.264、H.265、AV1 等的实际硬件解码支持情况
- MPEG-1
- MPEG-2
- MPEG-4
- RealVideo
- DivX
- XviD
- H.264(AVC)
- H.265(HEVC)
- H.266(VVC)
- 其他
- 闲说历史
- DivX 和 XviD 的恩怨纠葛
- 流媒体的时代兴衰
- MPEG-3 的胎死腹中
- RMVB 的昙花一现
- H.264 的卧薪尝胆
- H.265 的收费陷阱
引子
影视飓风 10 月 8 日发布的视频《清晰度不如 4 年前!视频变糊是你的错觉吗》已经全网下架了,甚至据说所有补档视频也在以极快速度被下架,没吃上瓜的可以在这个回答里去找下备份视频(最高清晰度版本(文件大小841.2MB,3840*2160P分辨率,29.97fps,8.87mbps版本)): https://www.zhihu.com/question/790765906/answer/4598439272
这个事情吧,本质上是ISP流量费太贵,最终造成了这种在盈利和服务上的折中现实。B站现在还没有开头广告、中间插播广告,也算守住了最初免费的承诺。反倒是那些长视频平台(不点名了,反正都知道),本应该对视频观看清晰度更有责任,但不但反其道行之,而且吃相就没好看过。AcFun不知道会不会迎来一波机遇,反正那句梗“还好我们家4K不要钱。因为我们可能会倒闭,但永远不会变质”倒是很讨喜。
顺便说下 YouTube 为啥720p比国内1080p都还清晰(这是真的,高码率就是这么好),为啥敢肆无忌惮地高码率,其本质原因还是受益于 Google (及其旗下的 YouTube) 能够同ISP进行流量交换与对等互联,因此其带宽成本几乎为零。
作为引子,更想聊下视频清晰度,以及视频的各种格式、编码技术的发展历史,谈一谈那些年的趣事。
清晰度
简单来讲,人们所提到的清晰度是一个非常主观的感受。就整体过程而言,从原始的数据源到人们看到最终的视频,其过程涉及到数字信号获取、图像处理、显示器/显示设备输出,其中每一步都会影响到最终的清晰度效果。
单说其中图像处理中的视频文件的清晰度,也是有以下几个关键方面的对主观感受影响最大,通俗(但非严格)描述如下:
- 提高帧率:让动作更流畅、连贯(也就是主观感受更自然),让动态场景主观感受更清晰。
- 提高分辨率:让画面更大,在合适的码率下可以让细节更加丰富,比如纹理更细致,所以主观感受更清晰。
- 提高码率:让数据量更大,可以更精准地记录和还原信息,可以让色彩更加准确、展现更为细腻,所以主观感受更清晰。
更详细参见之前文章所述:码率、帧率、分辨率与清晰度的复杂关系。
视频格式:MP4、AVI 、MKV、MOV、WMV、FLV 、RMVB等等
什么是视频格式
视频格式就像是一个“盒子”或“容器”,用来装视频和音频数据。这个“盒子”不仅包含视频画面,还可能包括声音、字幕以及其他信息(比如元数据)。你可以把视频格式想象成一个文件夹,里面可以放各种各样的东西,比如图片、文字说明、音乐等等。
MP4
- 全称:MPEG-4 Part 14
- 时间:2001年发布
- 开发/发布组织:ISO/IEC(国际标准化组织/国际电工委员会)
- 特点:
- 高度兼容性:几乎所有的现代设备和平台都支持MP4格式。
- 多编码支持:可以封装多种音频和视频编码,如H.264, H.265, AAC等。
- 适合网络传输:文件大小适中,适合在线流媒体和移动设备播放。
- 广泛的应用:用于互联网视频、移动设备播放、社交媒体分享等。
- 用途:广泛用于互联网视频、移动设备播放、社交媒体分享。
AVI
- 全称:Audio Video Interleave
- 时间:1992年发布
- 开发/发布组织:微软(Microsoft)
- 特点:
- 较老的格式:是早期的多媒体容器格式之一。
- 高质量:通常提供较高的视频质量,但文件较大。
- 广泛的编解码器支持:可以包含多种音频和视频编解码器。
- 主要用于PC:主要在个人电脑上使用,特别是在Windows系统中。
- 用途:主要用于个人电脑上的多媒体播放。
MKV
- 全称:Matroska
- 时间:2002年发布
- 开发/发布组织:Matroska开源项目
- 特点:
- 开放标准:基于开源标准,免费且无版权限制。
- 多轨支持:可以包含多个音轨、字幕轨道和元数据。
- 高质量存储:非常适合存储高质量视频,包括高清和超高清内容。
- 灵活的容器:支持多种编解码器,包括最新的视频编码技术。
- 用途:高清电影、家庭影院系统、高质量视频收藏。
MOV
- 全称:QuickTime Movie
- 时间:1991年发布
- 开发/发布组织:苹果(Apple)
- 特点:
- 苹果原生格式:由苹果公司开发,常用于Mac系统和iOS设备。
- 多编解码器支持:可以包含多种音频和视频编解码器。
- 编辑友好:广泛用于视频编辑软件输出,便于后期处理。
- 网页嵌入:可以在网页中嵌入,支持HTML5视频标签。
- 用途:视频编辑软件输出,iDevices播放,网站视频嵌入。
WMV
- 全称:Windows Media Video
- 时间:1999年发布
- 开发/发布组织:微软(Microsoft)
- 特点:
- 专为流媒体设计:压缩率高,文件较小,适合低带宽网络传输。
- 微软生态系统:与Windows Media Player和其他微软产品紧密集成。
- 企业应用:常用于企业内部培训视频和网络会议。
- DRM支持:支持数字版权管理(DRM),保护内容不被非法复制。
- 用途:Windows平台上的媒体播放,企业内部培训视频,网络流媒体。
FLV
- 全称:Flash Video
- 时间:2003年发布
- 开发/发布组织:Adobe Systems
- 特点:
- 早期主流格式:曾经是在线视频的主要格式,尤其在YouTube早期广泛应用。
- Sorenson Spark和H.264编码:支持多种编码技术,包括Sorenson Spark和H.264。(F4V 是 Adobe 公司推出继 FLV 格式后的支持 H.264 的流媒体格式)
- 网页嵌入:可以通过Flash插件在网页中嵌入播放。
- 逐渐淘汰:随着HTML5的普及,FLV格式正在逐渐被淘汰。
- 用途:早期YouTube和其他视频分享网站,网页嵌入视频。
RM / RMVB
- 全称:RealMedia Variable Bitrate
- 时间:2003年发布
- 开发/发布组织:RealNetworks
- 特点:
- 可变比特率:根据视频内容动态调整压缩比,提高效率。
- 低带宽适应性:适合低带宽网络环境,提供不错的画质。
- 早期流行:在早期的在线视频服务中非常流行,尤其是在中国。
- 逐渐减少:随着其他更高效的编码技术的出现,使用逐渐减少。
- 用途:早期的在线视频服务,特别是下载和共享高质量电影。
其他
-
WebM
- 标准:Google主导的开源项目
- 特点:
- VP8/VP9编码:使用VP8或VP9视频编码技术。
- 免费且无版权限制:完全开源,没有专利费用。
- 高效压缩:提供高效的压缩比,适合在线流媒体。
- 网页友好:支持HTML5视频标签,适合网页嵌入。
- 用途:网页视频、HTML5视频标签。
-
3GP/3G2 (3rd Generation Partnership Project)
- 标准:3GPP
- 特点:
- 为手机设计:专门为移动电话设计,文件小,适合低带宽网络。
- 较低质量:由于文件小,画质一般。
- 广泛应用:在早期的移动电话中广泛使用。
- 用途:移动电话中的视频录制与分享。
-
TS/MTS (MPEG-2 Transport Stream)
- 标准:MPEG
- 特点:
- 广播标准:广泛用于电视广播和蓝光光盘。
- 多节目支持:可以包含多个节目流,适用于直播和点播服务。
- 高清晰度:支持高清电视广播。
- 实时传输:适合实时视频传输,如卫星和有线电视。
- 用途:蓝光光盘,高清电视广播。
-
MPG (MPEG-1, MPEG-2)
- 标准:ISO/IEC的MPEG、MPEG2
- 特点:
- VCD和DVD:MPEG-1常用于VCD,MPEG-2常用于DVD。
- VCD的DAT:VCD中的视频文件通常以
.dat扩展名存储,实际上是MPEG-1格式。 - DVD的VOB:DVD中的视频文件通常以
.vob扩展名存储,实际上是MPEG-2格式。 - 高质量:MPEG-2提供较高的视频质量。
- 广泛支持:几乎所有DVD播放器和电视机都支持MPEG-2。
- 用途:VCD制作,DVD视频。
-
TS/MTS/M2TS (MPEG-2 Transport Stream)
- 标准:MPEG2
- 特点:
- MTS:主要用于AVCHD(Advanced Video Coding High Definition)格式,通常由高清摄像机生成。
- M2TS:与MTS类似,但更常见于蓝光光盘,用于存储高清视频。
- 高清晰度:支持1080p等高清分辨率。
- 容器格式:可以包含多种音频和视频流。
- 用途:高清摄像机录制,蓝光光盘。
编码技术:MPEG-1、MPEG-2、MPEG-4、RealVideo、DivX、XviD、H.264(AVC)、H.265(HEVC)等等
什么是视频编码技术
视频编码技术是一种将原始视频数据压缩的方法,目的是减小文件大小,同时尽可能保持视频的质量。这种技术就像是把一堆杂乱无章的衣物折叠整齐放进一个小行李箱里,这样既节省了空间,又方便携带。
H.264等的视频编码原理
H.264的视频编码原理、编码过程,参见 H.264编码技术。
H.265 的主要技术提升:
-
更大的编码单元:
- 编码树单元 (CTU):最大尺寸可达 64x64 像素,比 H.264 的 16x16 宏块更大,有助于提高压缩效率。
-
灵活的块划分:
- 四叉树结构:支持更灵活的块划分方式,可以根据图像内容自适应地选择最佳的块大小,从而提高压缩效率。
-
改进的预测技术:
- 帧内预测:增加了更多的预测模式,提高了帧内预测的精度。
- 帧间预测:引入了多假设预测(Multiple Hypothesis Prediction),利用多个参考帧进行预测,提高了帧间预测的准确性。
- 仿射运动补偿:能够更好地处理旋转、缩放和平移等复杂运动,提高了运动估计的精度。
-
增强的变换编码:
- 多种变换核:除了传统的 DCT 变换外,还引入了 DST(离散正弦变换)和其他类型的变换核,以更好地匹配不同类型的残差信号。
- 二次变换:在主要变换之后应用二次变换,进一步去除残差信号中的冗余。
-
自适应量化:
- 精细的量化参数调整:支持更精细的量化参数调整,可以根据不同的图像内容和区域进行优化,从而在保持视觉质量的同时减少比特率。
-
增强的环路滤波:
- 去块效应滤波器 (Deblocking Filter):增强了去块效应滤波器,减少了块效应。
- 样本自适应偏移 (Sample Adaptive Offset, SAO):通过像素级别的调整,进一步提高了视频质量。
-
并行处理:
- 条带 (Tiles):支持更高效的并行处理,提高编码速度。
- 波前并行处理 (Wavefront Parallel Processing, WPP):进一步优化并行处理,提高编码效率。
H.266 的主要技术提升:
-
更灵活的编码单元:
- 更大的编码树单元 (CTU):最大尺寸可达 128x128 像素,比 H.265 的 64x64 更大,进一步提高压缩效率。
- 多类型树划分 (Multipartitioning):引入了二叉树、三叉树和四叉树等多种块划分方式,使得编码器能够更灵活地选择最佳的块划分方案。
-
增强的预测技术:
- 仿射运动补偿 (Affine Motion Compensation):进一步改进了仿射运动模型,更好地处理复杂的运动。
- 局部光照补偿 (Local Illumination Compensation, LIC):通过补偿局部区域的光照变化,提高帧间预测的准确性。
- 多假设预测 (Multiple Hypothesis Prediction):利用多个参考帧进行预测,提高预测精度。
- 三角预测单元 (Triangular Prediction Unit, TPU):允许使用三角形块进行预测,更好地适应图像中的边缘和纹理。
-
改进的变换编码:
- 多种变换核 (Multiple Transform Kernels):除了 DCT 和 DST 外,还引入了其他类型的变换核,如 DTT(离散三角变换)。
- 二次变换 (Secondary Transform):在主要变换之后应用二次变换,进一步去除残差信号中的冗余。
- 低频非分离变换 (Low-Frequency Non-Separable Secondary Transform, LFNST):针对低频成分进行非分离变换,提高变换效率。
-
自适应量化:
- 精细的量化参数调整:支持更精细的量化参数调整,根据不同的图像内容和区域进行优化。
-
增强的环路滤波:
- 自适应循环滤波 (Adaptive Loop Filter, ALF):根据图像内容自适应地应用滤波器,减少块效应和其他伪影。
- 几何自适应循环滤波 (Geometrically Adaptive Loop Filter, G-ALF):进一步优化滤波过程,提高视频质量。
-
新的编码工具和技术:
- 联合编码 (Joint Coded Information, JCI):通过共享信息来提高编码效率。
- 模式决策优化:通过更智能的模式决策算法,选择最优的编码模式,减少不必要的计算开销。
-
并行处理和优化:
- 条带 (Tiles) 和子图 (Subpictures):支持更高效的并行处理,提高编码速度。
- 波前并行处理 (Wavefront Parallel Processing, WPP):进一步优化并行处理,提高编码效率。
硬解码和软解码
硬解码(Hardware Decoding)
硬解码是指使用专门的硬件电路来处理视频解码任务。这种硬件通常集成在显卡、CPU 或专用的视频处理芯片中,能够高效地执行视频解码操作,从而减轻 CPU 的负担,提高系统性能和降低功耗。
优点:
- 低功耗:由于硬件专门设计用于视频解码,因此比软件解码更节能。
- 高性能:硬件解码可以实时处理高分辨率和高帧率的视频流,而不会显著影响系统性能。
- 流畅播放:即使在低性能设备上也能实现流畅的视频播放。
缺点:
- 兼容性问题:某些编码格式或特定的编码特性可能不受硬件支持。
- 更新限制:硬件解码器的固件更新不如软件解码器灵活,可能无法及时支持最新的编码标准。
软解码(Software Decoding)
软解码是指通过软件程序在 CPU 上运行解码算法来处理视频解码任务。这种方式依赖于 CPU 的通用计算能力,不需要专门的硬件支持。
优点:
- 灵活性:软件解码器可以通过更新来支持新的编码标准和特性。
- 广泛的兼容性:几乎所有编码格式都可以通过软件解码器进行解码。
- 调试方便:软件解码器更容易调试和优化。
缺点:
- 高功耗:CPU 在处理视频解码时会消耗更多的电力,尤其是在处理高分辨率视频时。
- 性能瓶颈:在低性能设备上,软解码可能会导致视频播放不流畅或卡顿。
H.264、H.265、AV1 等的实际硬件解码支持情况
H.264 是目前最广泛使用的视频编码标准之一,几乎所有的现代设备都支持 H.264 的硬件解码。
- 智能手机和平板电脑:绝大多数 Android 和 iOS 设备都内置了 H.264 硬件解码支持。例如,苹果的 A 系列芯片(从 A11 Bionic 开始)和高通的 Snapdragon 800 系列及以后的处理器都提供了强大的 H.264 硬件解码能力。
- 个人电脑:大多数现代显卡(如 NVIDIA 的 GeForce 系列、AMD 的 Radeon 系列)和 CPU(如 Intel 的集成显卡)都支持 H.264 硬件解码。Windows 和 macOS 操作系统也内置了对 H.264 硬件解码的支持。
- 智能电视和机顶盒:大多数智能电视和机顶盒都支持 H.264 硬件解码,使得高清视频流媒体服务(如 Netflix 和 YouTube)能够流畅播放。
- 游戏机:PlayStation 5、Xbox Series X/S 等游戏机都内置了 H.264 硬件解码支持,以确保流畅的游戏录制和视频播放体验。
H.265 作为 H.264 的继任者,但其硬件支持情况也相对较广泛。
- 智能手机和平板电脑:
- iPhone:从 iPhone 8 及以后的型号(A11 Bionic 及之后的芯片)支持 H.265 硬件解码。
- Android 旗舰机型:高通的 Snapdragon 835 及以后的处理器(如 Snapdragon 845, 855, 865, 888, 8 Gen 1 等)支持 H.265 硬件解码。三星的 Exynos 9810 及以后的处理器也支持 H.265 硬件解码。
- 个人电脑:
- 显卡:NVIDIA 的 Pascal 架构(GeForce 10 系列)及以后的显卡,AMD 的 Polaris 架构(Radeon RX 400 系列)及以后的显卡。
- CPU:Intel 的第七代酷睿处理器(Kaby Lake)及以后的处理器,AMD 的 Ryzen 2000 系列及以后的处理器。
- 智能电视和机顶盒:许多新推出的智能电视和机顶盒支持 H.265 硬件解码,尤其是那些支持 4K 视频的设备。
- 游戏机:PlayStation 5 和 Xbox Series X/S 支持 H.265 硬件解码,为 4K 游戏录制和流媒体提供更好的体验。
AV1 是一种免费且开源的视频编码标准。作为一种新兴的标准,它在硬件支持上还在逐步增加。
- 智能手机和平板电脑:部分较新的高端设备开始支持 AV1 硬件解码,例如 Google Pixel 6(Tensor 芯片)、三星 Galaxy S21 Ultra(Exynos 2100 和 Snapdragon 888)。
- 个人电脑:NVIDIA 的 RTX 30 系列显卡和 Intel 的第 11 代及以后的处理器支持 AV1 硬件解码。此外,AMD 的 RDNA 2 架构显卡(如 Radeon RX 6000 系列)也开始支持 AV1 硬件解码。
- 智能电视和机顶盒:一些新推出的智能电视和机顶盒开始支持 AV1 硬件解码,但普及程度还不高。
- 浏览器:主流浏览器如 Chrome、Firefox 和 Edge 已经支持 AV1 软件解码,并逐渐增加对硬件解码的支持。
MPEG-1
- 全称:Moving Picture Experts Group 1
- 时间:1993年发布
- 开发/发布组织:ISO/IEC
- 特点:
- 第一代标准:最早的MPEG标准之一。
- VCD质量:支持VCD质量的视频。
- 音频编码:包括MPEG-1 Audio Layer III (MP3)。
- 广泛支持:在早期数字视频应用中广泛使用。
- 用途:VCD制作,早期数字视频应用。
MPEG-2
- 全称:Moving Picture Experts Group 2
- 时间:1994年发布
- 开发/发布组织:ISO/IEC
- 特点:
- 广播电视:广泛应用于DVD和数字电视广播。
- 隔行扫描和逐行扫描:支持多种扫描方式。
- 高质量:提供较高的视频质量。
- 广泛支持:几乎所有DVD播放器和电视机都支持MPEG-2。
- 用途:传统电视、卫星电视、DVD视频。
MPEG-4
- 全称:Moving Picture Experts Group 4
- 时间:1998年发布
- 开发/发布组织:ISO/IEC
- 特点:
- 更高的压缩效率:相比MPEG-2提供更高的压缩效率。
- 多种应用场景:支持移动设备视频、互联网视频、视频会议等多种应用场景。
- 对象编码:支持基于对象的编码技术,可以对视频中的不同部分进行独立编码。
- 广泛支持:在移动设备和互联网视频中广泛使用。
- 用途:移动设备视频、互联网视频、视频会议。
RealVideo
- 全称:RealVideo
- 时间:1997年首次推出
- 开发/发布组织:RealNetworks
- 特点:
- 可变比特率:根据视频内容动态调整压缩比。
- 低带宽适应性:适合低带宽网络环境,提供不错的画质。
- 早期流行:在早期的在线视频服务中非常流行。
- 逐渐减少:随着其他更高效的编码技术的出现,使用逐渐减少。
- 用途:早期在线视频服务,尤其是RMVB格式。
DivX
- 全称:DivX
- 时间:1999年首次发布
- 开发/发布组织:DivX, LLC
- 特点:
- 商业版本:基于MPEG-4 Part 2的商业版本。
- 高压缩比:提供较好的压缩比,文件相对较小。
- 广泛支持:在互联网视频分发中广泛使用。
- DRM支持:支持数字版权管理(DRM),保护内容不被非法复制。
- 用途:互联网上的视频分发,特别是通过CD或DVD进行传播。
XviD
- 全称:XviD
- 时间:2001年推出
- 开发/发布组织:XviD开源项目
- 特点:
- 开源项目:与DivX类似但免费且开放源代码。
- 高压缩比:提供较好的压缩比,文件相对较小。
- 广泛支持:在网络视频分享中广泛使用,尤其是在P2P网络中。
- 灵活性:支持多种分辨率和帧率。
- 用途:网络视频分享,尤其是早期的P2P网络。
H.264(AVC)
- 全称:Advanced Video Coding
- 时间:2003年正式成为国际标准
- 开发/发布组织:ITU-T VCEG(国际电信联盟视频编码专家组)和ISO/IEC MPEG(运动图像专家组)
- 特点:
- 高效压缩:提供比以前标准更高的压缩效率。
- 广泛支持:几乎所有的现代设备和平台都支持H.264。
- 多分辨率支持:支持从标清到高清的各种分辨率。
- 低延迟:适合实时视频传输和流媒体应用。
- 用途:蓝光光盘、高清电视、移动设备、网络流媒体服务(如YouTube)。
H.265(HEVC)
- 全称:High Efficiency Video Coding
- 时间:2013年批准为国际标准
- 开发/发布组织:ITU-T VCEG和ISO/IEC MPEG
- 特点:
- 更高压缩效率:相比H.264提供约50%的比特率节省。
- 高分辨率支持:特别适合4K UHD视频。
- 广泛支持:越来越多的设备和平台开始支持H.265。
- 低延迟:适合实时视频传输和流媒体应用。
- 收费:其专利池和许可模式导致了复杂的收费问题。
- 用途:4K UHD视频、直播、在线流媒体服务(Netflix, Amazon Prime Video等)。
H.266(VVC)
- 全称:Versatile Video Coding
- 时间:2020年批准为国际标准
- 开发/发布组织:ITU-T VCEG和ISO/IEC MPEG
- 特点:
- 更高压缩效率:进一步提高了压缩效率,比H.265再节省约50%的比特率。
- 高分辨率支持:特别适合8K视频。
- 未来技术:面向未来的视频编码标准,支持虚拟现实(VR)和增强现实(AR)应用。
- 低延迟:适合实时视频传输和流媒体应用。
- 收费:其专利池和许可模式导致了复杂的收费问题。
- 用途:未来的8K视频、虚拟现实(VR)和增强现实(AR)应用。
其他
-
VP8 / VP9
- 时间:VP8于2010年发布,VP9于2013年发布
- 特点:Google开发的开源编码技术,VP9在压缩效率上接近HEVC。
- 用途:主要用于Web视频,如YouTube、Vimeo等网站。
-
AV1 (AOMedia Video 1)
- 时间:2018年最终确定
- 特点:由开放媒体联盟(AOMedia)开发,旨在提供比现有标准更好的压缩效率。
- 用途:正在逐渐被各大流媒体平台采用,以降低带宽成本并提高画质。
-
Theora
- 时间:2004年首次发布
- 特点:Xiph.Org基金会开发的开源视频压缩格式。
- 用途:虽然不如其他标准流行,但曾经也在一些开源社区中使用。
闲说历史
DivX 和 XviD 的恩怨纠葛
微软是最早实现MPEG-4 Part 2标准的公司之一,并开发了一个闭源的编码器。这个编码器在当时提供了高效的压缩技术,使得高质量视频能够在有限的带宽和存储条件下进行传输。然而,由于它是闭源的,用户无法自由地修改或分发该编码器。
1999年,DivXNetworks 公司发布了第一个版本的 DivX 编码器。DivX 最初是从微软的 MPEG-4 编码器中逆向工程而来的。DivXNetworks 通过解码微软的实现,开发了自己的编码器,并在此基础上进行了改进。所以,DivX 是完全兼容MPEG-4格式的。DivX 在发布之初就迅速获得了用户的欢迎,因为它提供了高效的压缩比和良好的视频质量。
然而,随着时间的推移,DivXNetworks 开始将 DivX 商业化。他们引入了数字版权管理(DRM)功能,并对编码器进行了封闭,不再提供免费的、无版权限制的版本。这种做法引起了广大用户的不满,尤其是那些依赖于开放共享的社区成员。
面对 DivX 的商业化转变,一些开发者和用户决定创建一个完全开源且免费的替代方案。2001年,一个名为“Project Mayo”的开源项目启动了,该项目后来更名为 XviD。XviD 的目标是创建一个与 DivX 兼容但完全免费且开源的编码器。所以,XviD 也是完全兼容MPEG-4格式的。
XviD 的开发团队利用了 DivX 的开源代码作为起点,并在此基础上进行了大量的改进和优化。由于 XviD 与 DivX 同源,其技术基础和功能上几乎没有差别。XviD 提供了类似的压缩效率和视频质量,同时保持了开源和免费的特点。
XviD 迅速获得了开源社区的支持,并在 P2P 网络和其他在线视频分享平台上变得非常流行。许多用户从 DivX 转向了 XviD,因为 XviD 不仅提供了相同的技术优势,还避免了 DivX 的商业限制和 DRM 问题。
DivXNetworks 曾试图通过法律手段阻止 XviD 的传播,声称 XviD 侵犯了他们的专利权。这一举动引发了广泛的争议,开源社区强烈反对这种做法,认为 DivX 的做法是在扼杀创新和自由软件的发展。尽管如此,XviD 依然继续发展,并逐渐成为广泛接受的标准。
因为 XviD 是完全兼容MPEG-4格式的,在当时的辉煌时期,几乎就是MP4的代名词。
但是,后来因为更先进的编码标准如 H.264 和 H.265 提供了更高的压缩效率和更好的视频质量,满足了高清和超高清视频的需求,DivX 和 XviD 逐渐失去了市场主导地位,并最终先后退出了历史舞台。
流媒体的时代兴衰
在20世纪90年代末至21世纪初,随着互联网带宽的逐渐增加,流媒体开始成为在线视频传播的重要方式。这一时期,微软的 Windows Media Video (WMV) 和 RealNetworks 的 RealMedia (RM) 成为了主流的流媒体格式。
微软推出的 WMV 格式以其高效的压缩率和良好的画质迅速获得了广泛的应用。它不仅用于个人电脑上的视频播放,还被许多企业和教育机构用于内部培训和教学视频。WMV 与 Windows Media Player 紧密集成,使得用户可以在 Windows 操作系统上轻松地播放和管理视频内容。此外,WMV 还支持数字版权管理(DRM),这使得它在商业应用中非常受欢迎。
与此同时,RealNetworks 的 RealMedia 格式是最早的流媒体格式之一,尤其适合低带宽环境下的视频传输。RM 格式包括 RealAudio 和 RealVideo 两个部分,能够提供流畅的视频播放体验。RealPlayer 是当时最流行的媒体播放器之一,支持多种格式,并且在早期的互联网视频服务中占据主导地位。尽管后来其他格式逐渐兴起,RM 在某些常规视频应用中仍然有一定的使用。
到了2000年代中期,Adobe 的 Flash Video (FLV) 格式开始崛起,尤其是在 YouTube 等视频分享平台的推动下,FLV 迅速成为了新的主流流媒体格式。FLV 格式基于 Adobe Flash 技术,提供了跨平台的支持,并且在网页嵌入方面表现出色。YouTube、Vimeo 等视频分享网站广泛采用了 FLV 格式,因为它可以通过 Flash 插件在浏览器中无缝播放。FLV 的普及导致了 WMV 的市场份额逐渐下降,因为越来越多的内容提供商和用户转向了更加便捷和兼容性更强的 FLV 格式。
然而,随着移动设备和智能手机的普及,以及对更高效、更安全的视频播放技术的需求,HTML5 标准应运而生。HTML5 引入了 <video> 和 <audio> 标签,使得浏览器可以直接支持多种视频格式,而无需依赖插件。HTML5 支持 H.264/AVC、WebM (VP8/VP9) 和 Ogg Theora 等多种编码格式,这些格式在压缩效率、画质和安全性方面都优于 FLV。
在这个过程中,Chrome 浏览器等现代浏览器起到了关键的助攻作用。2010年,Google 宣布将在 Chrome 中逐步移除对 Flash 的支持,并积极推动 HTML5 的发展。随后,其他主要浏览器如 Firefox、Safari 和 Edge 也纷纷跟进,宣布不再支持 Flash。这一系列举措加速了 FLV 格式的衰落。由于 Flash 插件存在安全隐患、性能问题和移动设备不支持等问题,各大浏览器厂商最终决定完全停止对 Flash 的支持。2020年底,Adobe 官方正式停止了 Flash Player 的更新和支持,标志着 Flash 和 FLV 格式的彻底退出历史舞台。
MPEG-3 的胎死腹中
MPEG-3 是一个鲜为人知且常常被误解的视频编码标准。实际上,MPEG-3 从未真正成为一个独立的标准,它在开发过程中就被放弃了。这个名称现在通常与音频编码技术 MP3 联系在一起,但实际上两者是完全不同的。
在 MPEG 标准的发展历程中,MPEG-1 和 MPEG-2 分别于 1993 年和 1994 年发布,并迅速成为视频编码领域的主流标准。MPEG-1 主要用于 VCD 和早期的数字视频应用,而 MPEG-2 则广泛应用于 DVD 和数字电视广播。
最初,MPEG 组织计划开发一个名为 MPEG-3 的新标准,旨在处理高清晰度视频(HDTV)。然而,在 MPEG-2 的开发过程中,研究人员发现通过扩展和改进 MPEG-2,可以满足高清晰度视频的需求,而不需要一个新的标准。因此,MPEG-3 的开发工作被取消,其功能和目标被整合到了 MPEG-2 中。
尽管 MPEG-3 没有成为现实,但它的名字却以另一种形式流传了下来。现在的 MP3 实际上是指 MPEG-1 Audio Layer III,这是一种高效的音频压缩格式,它是 MPEG-1 视频编码标准中的配套音频编码部分。MPEG-1 标准包括三个层次的音频编码:Layer I 提供基本的音频压缩;Layer II 提供更高的压缩效率和更好的音质;Layer III 即 MP3,提供了最高的压缩效率和最佳的音质。
MP3 的成功在于它能够在保持良好音质的同时显著减小文件大小,这使得它非常适合在带宽有限的互联网上传播。随着 MP3 的普及,它逐渐脱离了 MPEG-1 视频编码的背景,成为了一个独立的音频格式。MP3 作为一种音频编码技术,从 MPEG-1 标准中分离出来,迅速成为了互联网时代最流行的音频格式之一,广泛用于音乐文件的存储和传输。
RMVB 的昙花一现
RMVB格式在2000年代初期曾是互联网上非常流行的视频格式,尤其是在中国。它由 RealNetworks 公司开发,最初以其高效的压缩率和对低带宽环境的良好适应性而受到用户的青睐。RMVB 格式能够在有限的带宽下提供相对较高的视频质量,这使得它在早期的在线视频分享和 P2P 网络中广受欢迎。
如今,已很难再听到 RMVB 这个词了。
首先,RealNetworks 改变了其商业模式,从最初的免费使用转向收费模式。起初,用户可以轻松地下载和使用 RMVB 编码器,但随着公司开始对编码器收取费用,并加强了对版权的保护,许多用户开始寻找其他免费或开源的替代方案,如 XviD 和后来的 H.264。这种收费模式的变化导致 RMVB 的用户基础逐渐流失。
为了进一步保护其知识产权,RealNetworks 甚至雇佣了专门的律师团队,对未经授权使用 RMVB 编码器的行为进行起诉。这些法律行动不仅增加了用户的成本,还带来了法律风险,进一步削弱了 RMVB 的吸引力。一些用户和内容提供商为了避免潜在的法律问题,在之后几个版本的升级中,纷纷转向了其他更安全且无版权限制的编码技术。
除了商业策略的变化,RMVB 在技术上的局限也是其没落的重要原因。RMVB 在处理动态场景时,其质量明显下降。特别是在高运动场景中,RMVB 容易出现色块、模糊和其他视觉伪影。这些问题在高清视频时代尤为突出,因为用户对视频质量的要求越来越高。相比之下,H.264 和后来的 H.265/HEVC 等更先进的编码标准提供了更高的压缩效率和更好的画质,特别是在处理复杂的动态场景时。这些新标准迅速成为主流,取代了 RMVB 在高质量视频领域的地位。
最终,MP4 格式的崛起对所有其他视频格式都实行了降维打击。MP4 作为一种容器格式,支持多种编解码器,包括 H.264 和 AAC,广泛应用于各种硬件平台,尤其是手机。几乎所有现代移动设备、智能电视、游戏机和计算机都内置了对 MP4 的支持,这使得 MP4 成为了事实上的标准。由于其广泛的兼容性和强大的生态系统,MP4 迅速成为用户和内容提供商的首选格式,进一步挤压了 RMVB 及其他老旧格式的生存空间。
H.264 的卧薪尝胆
H.264,也称为 MPEG-4 Part 10 或 AVC(Advanced Video Coding),在二十多年前的 2003 年就已经正式发布了。它却经历了从默默无闻到成为事实上的视频编码标准的漫长历程。
H.264 由 ITU-T 视频编码专家组(VCEG)和 ISO/IEC 动态图像专家组(MPEG)联合开发,旨在提供比当时流行的视频编码标准(如 MPEG-2 和 MPEG-4 Part 2)更高的压缩效率和更好的视频质量。然而,在 H.264 刚推出时,硬件支持是其面临的主要障碍之一。当时的处理器性能有限,无法高效地处理 H.264 编码和解码所需的复杂计算。此外,初期的硬件设备(如手机、便携式媒体播放器和电视)很少内置对 H.264 的支持,这使得该格式在消费者市场上的普及受到了限制。
尽管如此,H.264 仍然在一些专业领域得到了应用,例如广播行业和蓝光光盘。这些领域的高端设备能够提供足够的计算资源来处理 H.264 编码,从而利用其高效的压缩率和高质量的视频输出。随着技术的进步,特别是多核处理器和专用硬件加速器的发展,H.264 的编解码效率得到了显著提升,逐渐降低了对硬件性能的要求。
进入 2000 年代中期,智能手机和平板电脑开始兴起,这些移动设备的硬件性能不断提升,为 H.264 的广泛应用创造了条件。苹果公司在 2007 年推出的 iPhone 和后来的 iPad 都内置了对 H.264 的支持,这不仅提升了用户体验,还推动了其他厂商跟进。随后,Android 设备也开始广泛支持 H.264,进一步扩大了该格式的用户基础。
与此同时,流媒体服务如 YouTube、Netflix 和 Hulu 等也开始采用 H.264 作为主要的编码格式。这些平台需要一种能够在不同带宽条件下提供良好画质的编码标准,而 H.264 正好满足了这一需求。随着互联网带宽的增加和流媒体服务的普及,H.264 成为了在线视频传输的标准选择。
最终,H.264 凭借其卓越的技术性能和广泛的硬件支持,逐步取代了其他视频编码格式,成为了事实上的标准。如今,几乎所有的现代设备——从智能手机、平板电脑、智能电视到游戏机和计算机——都内置了对 H.264 的支持。H.264 不仅在消费电子领域占据主导地位,还在许多专业应用中发挥着重要作用,包括视频会议、远程教育和监控系统等。
H.265 的收费陷阱
H.264 是一个完全免费的视频编码标准,由 ITU-T 视频编码专家组(VCEG)和 ISO/IEC 动态图像专家组(MPEG)联合开发,并且已经广泛应用于各种设备和平台。许多硬件和软件都已经内置了对 H.264 的支持,无需额外的费用。相比之下,H.265 也是由 ITU-T VCEG 和 ISO/IEC MPEG 联合开发的国际标准,但它在实际应用中却面临着复杂的专利许可模式和高昂的费用问题。
首先,H.265 标准涉及多个专利持有者,这些专利持有者通常会联合起来形成专利池,以便集中管理和授权这些专利。主要的专利池包括 HEVC Advance 和 MPEG LA。专利池的存在虽然简化了授权过程,但其收费标准和结构却非常复杂且不透明。不同的设备类型(如智能手机、平板电脑、电视、监控摄像头等)可能有不同的收费标准,而对于内容提供商和流媒体服务,根据内容分发的方式(如按次付费、订阅服务等)可能会有不同的费用结构。某些情况下,费用是基于终端用户的数量来计算的,这使得成本难以预测和控制。
除了初始的一次性费用外,许多专利池还要求支付持续的年度费用或其他形式的计费方式,这增加了长期使用的成本。特别是对于大规模的内容提供商和硬件制造商,专利费用可能非常高昂。
即使支付了专利费用,如果某个实现中包含了未授权的专利技术,使用者仍可能面临法律风险。不同国家和地区对专利保护的法律规定有所不同,这也增加了跨国企业的合规难度和法律风险。
由于专利费用的问题,一些硬件制造商在提供 H.265 硬件加速支持方面较为滞后,导致在某些设备上使用 H.265 需要更多的 CPU 资源,影响用户体验。开源社区在开发 H.265 编解码器时需要避开已知的专利技术,这限制了开源实现的功能和性能。开源项目如 x265 虽然提供了免费的 H.265 编解码器实现,但仍需谨慎处理潜在的专利问题。
相比之下,H.264 作为完全免费的标准,已经被广泛接受和采用,拥有成熟的生态系统和技术支持。同时,免费且开源的视频编码标准如 AV1 和 VP9 提供了类似的压缩效率,并且没有专利费用。这些标准逐渐获得更多的支持,成为 H.265 的有力竞争者,不过,相较而言,H.265 目前在实际中仍有不可撼动的地位。
相关文章:
闲说视频清晰度和各种格式、编码技术的发展历史
文章目录 引子清晰度视频格式:MP4、AVI 、MKV、MOV、WMV、FLV 、RMVB等等什么是视频格式MP4AVIMKVMOVWMVFLVRM / RMVB其他 编码技术:MPEG-1、MPEG-2、MPEG-4、RealVideo、DivX、XviD、H.264(AVC)、H.265(HEVCÿ…...
嵌入式职业规划
嵌入式职业规划 在嵌入式的软件开发中,可以分为: 嵌入式MCU软件开发工程师; 嵌入式Linux底层(BSP)软件开发工程师; 嵌入式Linux应用开发工程师; 嵌入式FPGA算法开发工程师 对于前两个阶段 …...
Nginx - 实现 TCP/DUP流量的按 IP 动态转发
文章目录 需求背景需求目标:使用场景:成功标准:技术要求: Ng配置测试验证 需求 Nginx Stream TCP 协议按 IP 转发 背景 为了优化网络性能和提升服务的可用性,我们需要在 Nginx 中配置 stream 模块,使其根…...
基于深度学习的进化神经网络设计
基于深度学习的进化神经网络设计(Evolutionary Neural Networks, ENNs)结合了进化算法(EA)和神经网络(NN)的优点,用于自动化神经网络架构的设计和优化。通过模拟自然进化的选择、变异、交叉等过…...
软考-软件设计师(10)-专业英语词汇汇总与新技术知识点
场景 以下为高频考点、知识点汇总。 软件设计师上午选择题知识点、高频考点、口诀记忆技巧、经典题型汇总: 软考-软件设计师(1)-计算机基础知识点:进制转换、数据编码、内存编址、串并联可靠性、海明校验码、吞吐率、多媒体等: 软考-软件设计师(1)-计算机基础知识点:进制…...
PyTorch 2.5 发布带来一些新特性和改进
官网:https://github.com/pytorch/pytorchGitHub:https://github.com/pytorch/pytorch原文:https://github.com/pytorch/pytorch/releases/tag/v2.5.0 主要亮点 (Highlights)] SDPA CuDNN 后端:为 torch.nn.functional.scaled_d…...
算法:560.和为k的子数组
题目 链接:leetcode链接 思路分析(前缀和) 注意:我们前面讲过滑动窗口可以处理子数组、子串等问题, 但是在这道题目里面注意数据范围 -1000 < nums[i] < 1000 nums[i]可正可负,区间的和没有单调性,使…...
C++之list(2)
list(2) list的迭代器 const迭代器 根据我们之前学过的知识: const int*p1;//修饰的是指向的内容 int *const p2;//修饰的是迭代器本身我们写const迭代器,期望的是指向的内容不能修改。 所以更期望写上面p1的形式 const迭代器与普通迭代器的不同点在于…...
React Componet类组件详解(老项目)
React类组件是通过创建class继承React.Component来创建的,是React中用于构建用户界面的重要部分。以下是对React类组件的详细解释: 一、定义与基本结构 类组件使用ES6的class语法定义,并继承自React.Component。它们具有更复杂的功能&#…...
位运算题目-Java实现-LeetCode题解:判断字符是否唯一-丢失的数字-两整数之和-只出现一次的数字 II-消失的两个数字
这里是Themberfue 上一篇文章讲完了常见位运算的技巧以及总结 那么本章则通过五道题来运用这些技巧 判定字符是否唯一 题目解析 本题要求判断给定字符串中的字符是否唯一,也就是每个字符是否只出现一次 算法讲解 本题用哈希表遍历每一个字符也可以解决 如果这题使…...
复合泊松过程
复合泊松过程的均值、方差与特征函数 复合泊松过程的定义 复合泊松过程 ( Y(t) ) 是一种常见的随机过程,通常定义为: Y ( t ) ∑ k 1 N ( t ) X k Y(t) \sum_{k1}^{N(t)} X_k Y(t)k1∑N(t)Xk 其中: ( N(t) ) 是一个强度为 ( \lambd…...
[week1] newstar ctf ezAndroidStudy
本题主要考查对 APK 基本结构的掌握 查看 AndroidManifest.xml 可以发现 activity 只有 Homo 和 MainActivity 我们用 Jadx 打开 work.pangbai.ezandroidstudy.Homo 就可以获得 flag1 打开 resources.arsc/res/value/string.xml 搜索 flag2 即可 按描述到 /layout/activity_ma…...
TCP——Socket
应用进程只借助Socket API发和收但是不关心他是怎么进行传和收的 数据结构 图示Socket连接 捆绑属于隐式捆绑...
OpenStack服务Swift重启失效(已解决)
案例分析Swift重启失效 1. 报错详情 在重新启动 VMware 虚拟机后,我们发现 OpenStack 的 Swift 服务出现了 503 Service Unavailable 错误。经过排查,问题根源在于 Swift 服务所使用的存储挂载是临时挂载,而非永久挂载。 Swift 服务依赖于…...
System.Text.Json类库进行json转化时ValueKind:Object问题
当你的使用的Json库是System.Text.Json,而不是Newtonsoft.Json库的时候,你可能遇到以下问题及其解决办法。通常的解决办法是进行一些对应的配置。此外就需要根据情况使用自定义转换器实现你的需求。以下是通常遇到的使用自定义转换器解决的例子: Q1.当遇…...
免费Excel工作表同类数据合并工具
下载地址:https://pan.quark.cn/s/81b1aeb45e4c 在 Excel 表格里,当我们试图手动将多行同类数据合并为一行时,会遭遇诸多棘手的困难以及繁杂的操作流程。在确定哪些数据属于可合并的同类数据时,单纯依靠人工进行对比,极…...
如何在算家云搭建Video-Infinity(视频生成)
一、模型介绍 Video-Infinity是一个先进的视频生成模型,使用多个 GPU 快速生成长视频,无需额外训练。它能够基于用户提供的文本或图片提示,创造出高质量、多样化的视频内容。 二、模型搭建流程 1.大模型 Video-Infinity 一键使用 基础环境…...
LeetCode搜索插入位置
题目描述 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。 请必须使用时间复杂度为 O(log n) 的算法。 示例 1: 输入: nums [1,3,5,6], target 5 输出: 2 …...
UE5学习笔记24-添加武器弹药
一、给角色的武器添加弹药 1.创建界面,根据笔记23的界面中添加 2.绑定界面控件 UPROPERTY(meta (Bindwidget))UTextBlock* WeaponAmmoAmount;UPROPERTY(meta (Bindwidget))UTextBlock* CarriedAmmoAmount; 3.添加武器类型枚举 3.1创建武器类型枚举头文件 3.2创建文…...
限制游客在wordpress某分类下阅读文章的数量
在WordPress中实现某个分类下的内容限制游客只能阅读前5篇文章,注册用户可以阅读更多文章的功能,可以通过以下步骤来完成: 1. 安装和激活插件 首先,你可以使用一个插件来简化这个过程。一个常用的插件是 “MemberPress” 或 “R…...
生成xcframework
打包 XCFramework 的方法 XCFramework 是苹果推出的一种多平台二进制分发格式,可以包含多个架构和平台的代码。打包 XCFramework 通常用于分发库或框架。 使用 Xcode 命令行工具打包 通过 xcodebuild 命令可以打包 XCFramework。确保项目已经配置好需要支持的平台…...
conda相比python好处
Conda 作为 Python 的环境和包管理工具,相比原生 Python 生态(如 pip 虚拟环境)有许多独特优势,尤其在多项目管理、依赖处理和跨平台兼容性等方面表现更优。以下是 Conda 的核心好处: 一、一站式环境管理:…...
学习STC51单片机31(芯片为STC89C52RCRC)OLED显示屏1
每日一言 生活的美好,总是藏在那些你咬牙坚持的日子里。 硬件:OLED 以后要用到OLED的时候找到这个文件 OLED的设备地址 SSD1306"SSD" 是品牌缩写,"1306" 是产品编号。 驱动 OLED 屏幕的 IIC 总线数据传输格式 示意图 …...
【决胜公务员考试】求职OMG——见面课测验1
2025最新版!!!6.8截至答题,大家注意呀! 博主码字不易点个关注吧,祝期末顺利~~ 1.单选题(2分) 下列说法错误的是:( B ) A.选调生属于公务员系统 B.公务员属于事业编 C.选调生有基层锻炼的要求 D…...
Spring Boot+Neo4j知识图谱实战:3步搭建智能关系网络!
一、引言 在数据驱动的背景下,知识图谱凭借其高效的信息组织能力,正逐步成为各行业应用的关键技术。本文聚焦 Spring Boot与Neo4j图数据库的技术结合,探讨知识图谱开发的实现细节,帮助读者掌握该技术栈在实际项目中的落地方法。 …...
leetcodeSQL解题:3564. 季节性销售分析
leetcodeSQL解题:3564. 季节性销售分析 题目: 表:sales ---------------------- | Column Name | Type | ---------------------- | sale_id | int | | product_id | int | | sale_date | date | | quantity | int | | price | decimal | -…...
前端开发面试题总结-JavaScript篇(一)
文章目录 JavaScript高频问答一、作用域与闭包1.什么是闭包(Closure)?闭包有什么应用场景和潜在问题?2.解释 JavaScript 的作用域链(Scope Chain) 二、原型与继承3.原型链是什么?如何实现继承&a…...
全面解析各类VPN技术:GRE、IPsec、L2TP、SSL与MPLS VPN对比
目录 引言 VPN技术概述 GRE VPN 3.1 GRE封装结构 3.2 GRE的应用场景 GRE over IPsec 4.1 GRE over IPsec封装结构 4.2 为什么使用GRE over IPsec? IPsec VPN 5.1 IPsec传输模式(Transport Mode) 5.2 IPsec隧道模式(Tunne…...
蓝桥杯3498 01串的熵
问题描述 对于一个长度为 23333333的 01 串, 如果其信息熵为 11625907.5798, 且 0 出现次数比 1 少, 那么这个 01 串中 0 出现了多少次? #include<iostream> #include<cmath> using namespace std;int n 23333333;int main() {//枚举 0 出现的次数//因…...
什么是Ansible Jinja2
理解 Ansible Jinja2 模板 Ansible 是一款功能强大的开源自动化工具,可让您无缝地管理和配置系统。Ansible 的一大亮点是它使用 Jinja2 模板,允许您根据变量数据动态生成文件、配置设置和脚本。本文将向您介绍 Ansible 中的 Jinja2 模板,并通…...
