關於流媒體程序的開發(一)

       筆者,剛剛接觸視頻編解碼方面的工作,僅僅想借此機會和網友相互交流.希望大家能給予支持.

下面主要針對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.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章