关于流媒体程序的开发(一)
2004-06-28 10:01
274 查看
笔者,刚刚接触视频编解码方面的工作,仅仅想借此机会和网友相互交流.希望大家能给予支持.
下面主要针对XVID和H264视频编解码方面与大家共同探讨.
1.What is XviD?
You had to ask. XviD is an MPEG-4 compliant Video codec. It either encodes a video-file into a (hopefully) MPEG-4 compliant data stream which can be saved into a container-file like an .avi, .ogm, .mp4 or others. By itself it can't do any encoding, it needs another tool to feed the data-to-encode to it. A typical example would be VirtualDub or virtualDubMod (often shortened to VDub and VDubMod). The decoder part usually comes built-in in the encoder, hence the term codec (COder/DECoder) . There are also standalone decoders. These can only playback files, not encode them. The best-known of these is Nic's decoder filter. With it you can play XviD video with any avi-capable media player. Typical examples of these are Windows Media Player(WMP), Media Player Classic(MPC), BsPlayer and Zoomplayer, but there are many more.
XviD is open source and is released under the GNU General Public License. Basically this means that anyone can take the source code, use it and alter it any way they see fit to, as long as the result is also released under the same license.
2.What is MPEG-4?
MPEG-4 is a video compression standard developed by an industrial group called 'Moving Picture Experts Group' or 'MPEG' for short. MPEG-4's official description by the MPEG is 'a standard for Very Low Bitrate Audio-Visual Coding'. Many of the standards developed by this group are accepted standards by the ISO (International Standards Organisation) and are therefore also called ISO-standards. MPEG-4 is ISO/IEC standard #14496. XviD follows MPEG-4 Part 2, also known as MPEG-4 Visual or ISO standard #14496-2. The MPEG standards are widely accepted by the media industry and you can find them in VCD's, DVD's, mp3's and all sorts of other applications.(the latest addition to the MPEG-4 family of standards for video coding is MPEG-4 Part 10/AVC (Advanced Video Coding) also known as H.264. XviD does not support H.264 though.)
Basically, MPEG-4 is a video compression standard with many extensions that are specifically designed to achieve very high compression on standard video content. Standard means in this case real-world video, not stuff like cartoons, pixar films, and anime for instance. (That's part of the reason why these type of footage are so hard to encode properly; MPEG-4 was not designed for it).
MPEG-4 became a proper MPEG standard in 1998, and became an ISO standard in 2001. A technical overview of the MPEG-4 standard can be found here.
Typically MPEG-4 applications are implemented either in software or in hardware. In software usually means in some form of encoder or decoder program, while hardware implementations are typically electronic chips or circuitry designed to encode and/or decode MPEG-4.
Typical MPEG-4 codecs are DivX, 3ivx, Quicktime MPEG-4 and of course XviD. While these are all MPEG-4 compliant, that does not necessarily mean they can all play each others files properly. An example of this is the handling of more than 1 B-frame, which XviD can handle but DivX cannot. Another example would be XviD's 3-warppoint GMC.
MPEG-4 implementations in standalone hardware players, like DVD-players that can also play DivX, are usually not real hardware implementations but a sort of semi-hardware implementations. They load software contained in a flashable chip called an Eeprom into a more general-purpose digital processing chip, that then decodes the file it finds on the inserted disc.
The software in the Eeprom is called firmware and can sometimes be upgraded to incorporate better support for other MPEG-4 files besides just DivX.
下面主要针对XVID和H264视频编解码方面与大家共同探讨.
1.What is XviD?
You had to ask. XviD is an MPEG-4 compliant Video codec. It either encodes a video-file into a (hopefully) MPEG-4 compliant data stream which can be saved into a container-file like an .avi, .ogm, .mp4 or others. By itself it can't do any encoding, it needs another tool to feed the data-to-encode to it. A typical example would be VirtualDub or virtualDubMod (often shortened to VDub and VDubMod). The decoder part usually comes built-in in the encoder, hence the term codec (COder/DECoder) . There are also standalone decoders. These can only playback files, not encode them. The best-known of these is Nic's decoder filter. With it you can play XviD video with any avi-capable media player. Typical examples of these are Windows Media Player(WMP), Media Player Classic(MPC), BsPlayer and Zoomplayer, but there are many more.
XviD is open source and is released under the GNU General Public License. Basically this means that anyone can take the source code, use it and alter it any way they see fit to, as long as the result is also released under the same license.
2.What is MPEG-4?
MPEG-4 is a video compression standard developed by an industrial group called 'Moving Picture Experts Group' or 'MPEG' for short. MPEG-4's official description by the MPEG is 'a standard for Very Low Bitrate Audio-Visual Coding'. Many of the standards developed by this group are accepted standards by the ISO (International Standards Organisation) and are therefore also called ISO-standards. MPEG-4 is ISO/IEC standard #14496. XviD follows MPEG-4 Part 2, also known as MPEG-4 Visual or ISO standard #14496-2. The MPEG standards are widely accepted by the media industry and you can find them in VCD's, DVD's, mp3's and all sorts of other applications.(the latest addition to the MPEG-4 family of standards for video coding is MPEG-4 Part 10/AVC (Advanced Video Coding) also known as H.264. XviD does not support H.264 though.)
Basically, MPEG-4 is a video compression standard with many extensions that are specifically designed to achieve very high compression on standard video content. Standard means in this case real-world video, not stuff like cartoons, pixar films, and anime for instance. (That's part of the reason why these type of footage are so hard to encode properly; MPEG-4 was not designed for it).
MPEG-4 became a proper MPEG standard in 1998, and became an ISO standard in 2001. A technical overview of the MPEG-4 standard can be found here.
Typically MPEG-4 applications are implemented either in software or in hardware. In software usually means in some form of encoder or decoder program, while hardware implementations are typically electronic chips or circuitry designed to encode and/or decode MPEG-4.
Typical MPEG-4 codecs are DivX, 3ivx, Quicktime MPEG-4 and of course XviD. While these are all MPEG-4 compliant, that does not necessarily mean they can all play each others files properly. An example of this is the handling of more than 1 B-frame, which XviD can handle but DivX cannot. Another example would be XviD's 3-warppoint GMC.
MPEG-4 implementations in standalone hardware players, like DVD-players that can also play DivX, are usually not real hardware implementations but a sort of semi-hardware implementations. They load software contained in a flashable chip called an Eeprom into a more general-purpose digital processing chip, that then decodes the file it finds on the inserted disc.
The software in the Eeprom is called firmware and can sometimes be upgraded to incorporate better support for other MPEG-4 files besides just DivX.
相关文章推荐
- 关于流媒体程序的开发(二)
- 关于RTX二次开发.net程序,80040154问题的解决办法
- VS2010中关于OpenCV 2.3.1开发环境配置及第一个OpenCV程序
- 关于linux图形界面编程基本知识 - 技术文档 - 程序开发 Linux时代 - 开源、... (转载)
- 关于利用avicap32.dll开发摄像头程序中取景框部分的实现
- 关于.net平台开发程序连接oracle数据库查询语句中包含汉字的问题
- 关于PB程序的开发
- 关于PSP的远程联机程序开发
- 安卓开发关于手柄外设控制程序
- 关于eclipse 开发java程序的要点
- 关于作为IT行业中程序开发人员的一些反思!!!
- 关于Qt开发MySQL程序移植后出现"Driver not loaded"的问题
- 关于微信小程序开发的一些细节
- 关于java开发邮件接收程序的一点总结
- 谈谈个人关于程序开发中,“零配置”和“有配置”的看法
- 关于phonegap 开发iOS 程序时 的ERROR whitelist rejection【不能请求服务端】
- 谈谈程序开发中,关于“零配置”和“有配置”的看法
- 基于ASM开发的一个关于class文件加密程序,可对整个jar进行加密且不影响资源文件
- 程序整体设计,关于客户端开发之我鉴(一)
- 关于Chrome扩展程序开发 popup.html页面通过jsonp的方式与服务端交互问题