📄 readme
字号:
ABOUT LIBMPEG2libmpeg2 is a free library for decoding mpeg-2 and mpeg-1 videostreams. It is released under the terms of the GPL license.The main goals in libmpeg2 development are: * Conformance - libmpeg2 is able to decode all mpeg streams that conform to certain restrictions: "constrained parameters" for mpeg-1, and "main profile" for mpeg-2. In practice, this is what most people are using. For streams that follow these restrictions, we believe libmpeg2 is 100% conformant to the mpeg standards - and we have a pretty extensive test suite to check this. * Speed - there has been huge efforts there, and we believe libmpeg2 is the fastest library around for what it does. Please tell us if you find a faster one ! With typical video streams as found on DVD's, and doing only decoding with no display, you should be able to get about 110 fps on a PIII/666, or 150 fps on an Athlon/950. This is less than 20 cycles per output pixel. In a real player program, the display routines will probably take as much time as the actual decoding ! * Portability - most of the code is written in C, and when we use platform-specific optimizations (typically assembly routines, currently used for the motion compensation and the inverse cosine transform stages) we always have a generic C routine to fall back on. This should be portable to all architectures - at least we have heard reports from people running this code on x86, ppc, sparc, arm and sh4. Assembly-optimized implementations are available on x86 (MMX) and ppc (altivec) architectures. Ultrasparc (VIS) is probably the next on the list - we'll see. * Reuseability - we do not want libmpeg2 to include any project-specific code, but it should still include enough features to be used by very diverse projects. We are only starting to get there - the best way to help here is to give us some feedback !The project homepage is at http://libmpeg2.sourceforge.net/MPEG2DECmpeg2dec is a test program for libmpeg2. It decodes mpeg-1 and mpeg-2video streams, and also includes a demultiplexer for mpeg-1 and mpeg-2program streams. It is purposely kept simple : it does not includefeatures like reading files from a DVD, CSS, fullscreen output,navigation, etc... The main purpose of mpeg2dec is to have a simpletest bed for libmpeg2.The libmpeg2 source code is always distributed in the mpeg2decpackage, to make it easier for people to test it.The basic usage is to just type "mpeg2dec file" where file is ademultiplexed mpeg video file.The "-s" option must be used for multiplexed (audio and video) mpegfiles using the "program stream" format. These files are usualy foundon the internet or on unencrypted DVDs.The "-t" option must be used for multiplexed (audio and video) mpegfiles using the "transport stream" format. These files are usualyfound in digital TV applications.The "-o" option is used to select a given output module - for exampleto redirect the output to a file. This is also used for performancetesting and conformance testing.The "-c" option is used to disable all optimizations.OTHER PROJECTS USING LIBMPEG2libmpeg2 is being used by various other projects, including: * xine (http://xine.sourceforge.net/) - started as a simple mpeg-2 audio and video decoder, but it since became a full-featured DVD and video media player. * VideoLAN (http://www.videolan.org/) - video streaming over an ethernet network, can also be used as a standalone player. * MPlayer (http://www.MPlayerHQ.hu) - another good player, it is also very robust against damaged streams. * movietime (http://movietime.sourceforge.net/) - still quite young, but it looks very promising ! * mpeg2decX (http://homepage1.nifty.com/~toku/software_en.html) - a graphical interface for mpeg2dec for macintosh osX. * TCVP (http://tcvp.sf.net) - video and music player for unix. * drip (http://drip.sourceforge.net/) - a DVD to DIVX transcoder. * PoMP (http://www.dmclab.hanyang.ac.kr/research/project/PoDS/PoDS_sw.htm) - a research player optimized to minimize disk power consumption. * OMS (http://www.linuxvideo.org/oms/) * XMPS (http://xmps.sourceforge.net/) * GStreamer (http://www.gstreamer.net/) - a framework for streaming media; it has an mpeg2 decoding plugin based on libmpeg2. * mpeglib (http://mpeglib.sourceforge.net/) - a video decoding library that usess libmpeg2 when decoding mpeg streams. * daphne (http://daphne.rulecity.com/) - a laserdisc arcade game simulator. * GOPchop (http://outflux.net/unix/software/GOPchop/) - a GOP-accurate editor for MPEG2 streams.If you use libmpeg2 in another project, let us know !TASKSThere are several places where we could easily use some help: * Documentation: libmpeg2 still has no documentation. Every project using it has had to figure things out by looking at the header files, at the mpeg2dec sample application, and by asking questions. Writing down a nice documentation would make the code more easily reuseable. * Testing: If you find any stream that does not decode right with libmpeg2, let us know ! The best thing would be to mail to the libmpeg2-devel mailing list. Also, it would be nice to build a stress test so we can make sure libmpeg2 never crashes on bad streams. * Coding: There is a small TODO list in the mpeg2dec package, you can have a look there ! Most items are pretty terse though. * Porting: If you're porting to a new architecture, you might want to experiment with the compile flags defined in configure.in . When you figure out whats fastest on your platform, send us a patch ! * Assembly optimizations: We only have x86 and altivec optimizations yet, it would be worthwhile writing routines for other architectures, especially those that have SIMD instruction set extensions ! Also the yuv2rgb x86 routines could probably be optimized a lot.CVS SNAPSHOTSA daily snapshot is created using "make distcheck" every night anduploaded to http://libmpeg2.sourceforge.net/files/mpeg2dec-snapshot.tar.gz .It is easier to use than the CVS repository, because you do not needto have the right versions of automake, autoconf and libtoolinstalled. It might be convenient when working on a libmpeg2 port forexample.CVS REPOSITORYThe latest libmpeg2 and mpeg2dec source code can always be found byanonymous CVS:# export CVSROOT=:pserver:anonymous@cvs.libmpeg2.sourceforge.net:/cvsroot/libmpeg2# cvs login (Just press Return when prompted for a password)# cvs checkout mpeg2decYou can also browse the latest changes online athttp://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/libmpeg2/mpeg2dec/The other CVS modules are mpeg2dec-streams for the test suite, andmpeg2dec-livid for the CVS history of the project while it was stillhosted on the linuxvideo.org servers.MAILING LISTSSee the subscription information at http://libmpeg2.sourceforge.net/lists.htmllibmpeg2-develThis is the main mailing list for technical discussion aboutlibmpeg2. Anyone wanting to work on libmpeg2, or maybe just stayinformed about the development process, should probably subscribe tothis list.libmpeg2-checkinsAll libmpeg2 checkins are announced there. This is a good way to keeptrack of what goes into CVS.libmpeg2-announceThis is a very low traffic mailing list, only for announcements of newversions of libmpeg2. Only project administrators can post there.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -