📄 readme
字号:
February 04, 2003MPEG4IP Project===============The MPEG4IP project provides a standards-based system for encoding, streaming, and playing MPEG-4 encoded audio and video. To achieve this we've integrated a number of existing open source packages, and also created some original code to fill in the gaps.Please note this project is intended for developers who are interestedin MPEG-4 audio and video, and Internet streaming. It is not intendedfor end-users. Please read all the legal information in the file "COPYING"!Also note that the primary development focus of this project is the Linux platform. If you're going to use the package on other platforms,especially non-UNIX platforms, you'll probably have some work to do.Please use the SourceForge site to report problems, suggest enhancements,ask questions, etc. The URL is http://www.sourceforge.net/projects/mpeg4ipThere is also a project web site at http://www.mpeg4ip.net/ that has somegeneral information on MPEG4IP. We also have a guide to MPEG4IP donated by everwicked. Seedoc/MPEG4IP_Guide.pdf.Overview========There are two ways to use MPEG4IP to create content:The older method assumes that you've somehow managed to capture raw audioand/or video into a file. That's the starting point from which you can usethe MPEG4IP encoding tools to create an MP4 file. The simplest method being to use the 'mp4encode' script. Detailed instructions for this script and theindividual tools that it uses are in doc/encoding/encoding.htm The newer method is an integrated live encoding tool called mp4live. This program is designed to make it easy to create MP4 files or transmit liveaudio/video streams over the network. It can even do both things simultaneously! The key requirement to use this tool is to have a video capture device and a Video for Linux (v4l) driver for it. So far we've tested with the bttv driver for Brooktree based video capture cards, and the qce driver for Logitech QuickCam Express USB webcams. Both of these solutions can be acquired for about $50 US! Please see the file mpeg4ip/server/live/README for more information about mp4live.Once an MP4 file is prepared, it can be placed in the content directory of a streaming server. We typically use Apple's Darwin Streaming Server, but any server that understands MP4 files (or hinted Quicktime files) can be used. When the content is encoded and available on the server, you can runthe player. Start 'gmp4player' and then enter the RTSP URL to the server and the content, (command line works too). E.g. $ gmp4player rtsp://myserver.mydomain.com/mycontent.mp4Although we're focussed on streaming, the player will also playback froma local file. E.g $ gmp4player mycontent.mp4That's not all! The player is not limited to local playback of MP4 files.It can also read AVI, CMP, DIVX, AAC, MP3, and WAV. This is useful for debugging since the encoded data can be check independently of the MP4 file container, and known good content, such as your favorite MP3, can be used to verify that the player is working correctly with your hardware. E.g. $ gmp4player mymusic.mp3And that's still not all... You can set up your player to run a playlistby creating a simple text file with the extension .mp4plist, witheach item (file or stream) on it's own line.Note: If you prefer a no UI version of the player, or your system does notinclude GTK or GLIB, just the bare video window, 'mp4player' is available to fit that need.Legal=====Please see the file "COPYING".Building and Installing=======================We are now (as of release 0.9.5) using make dist for our tarball. Tobuild, you should only have to issue the following: ./bootstrap <params for configure> make make install (needs root privileges).We no longer include lame in our distribution; however, we requirelame version 3.92 or later for mp4live. This may change at some point, but for now, it is required. If you wish to make without mp4live, you can give the --disable-mp4live or --disable-server arguments. Neitherthe bootstrap or cvs_bootstrap scripts will allow you to build withoutlame installed.If you don't have root privileges, but still wish to install the distribution to a directory to which you do have write permission,then here is an example of how to do that: mkdir -p $HOME/local/bin $HOME/local/lib ./bootstrap --prefix=$HOME/local make make installIf this process works for you, you can skip down to the next section on Configure Script Options. If this does not work, or you have downloaded from CVS, the below applies.We've built the distribution using GNU autoconf, automake and libtool.We have attempted to follow the GNU conventions for open source packages. This is complicated by the fact that we build on many other packages. Where the package was already using the GNU tools, we left things alone. Where the package was using it's own Makefile, we left things alone if it was a complicated Makefile. If it was straightforward we replaced it with an equivalent automake file.If you have to install any of these tools (for example, automake isnot included with Mac OS X), find out where the others are installed(which autoconf). If the path does not start with /usr/local, use the"configure --prefix=<path before /bin on other packages>"For example, if autoconf is in /usr/bin, use the "configure --prefix=/usr"command when installing automake or libtools.Note: libtool is frequently not installed on Linux systems (autoconf, and automake generally are). You can download libtool from a GNU mirrorsite, or http://download.sourceforge.net/mpegip/libtool-1.3.5.tar.gzIn order to compile mpeg4ip from CVS, we require the following tools:gcc 3.2 or greaterlibtool 1.4.3autoconf 2.53automake 1.6.If you don't have these tools and are trying to compile from CVS, don'tcomplain.Be sure to read the OS specific section later before continuing here.In general, the code should be portable, but as someone once said "There's no such thing as portable code, just code that has been ported." When you find problems please be sure to use the SourceForge site to tell us what you encountered, and hopefully how you fixed it.To build: ./cvs_bootstrap <arguments to pass to configure scripts> make make install (optional, typically need root privileges)The bootstrap script will pass any arguments to the configure scripts.For the curious, the bootstrap script invokes the configure scripts of the included packages that have them, and then our own top level configure script is generated and run. At the end of this process all the Makefile'sare ready, and setup in the correct hierarchy. If this doesn't work for you,you're free to hack as needed ;-) Configure Script Options========================Two options of potential interest are "--disable-server" and "--disable-player"which disable the building of the server and player respectively. Bydefault both server and player are built.If you are building on a system with an Intel x86 CPU clone, you mayneed to specify the configuration option "--enable-mmx=no". Theconfiguration script automatically detects an x86 target CPU and enables MMX assembly code in the build (if the NASM assembler is available).If your CPU doesn't support MMX instructions you will want to disable this feature. The configure script will also check for the minimumversion of nasm supported; we require 0.98.19 or greater.To build with IPv6 support, use the --enable-ipv6 command option.Darwin Quicktime Streaming Server=================================Please note that the Apple Darwin Quicktime Streaming Server is NOT distributedwith mpeg4ip. It can be downloaded from Apple, http://www.apple.com/ as eithersource or pre-built binaries. For those who choose the source option, below isthe express version of the build and install process for the Darwin StreamingServer:To build the Darwin Streaming Server: cd DSS4 ./BuilditTo install the Darwin Streaming Server from the build: cd DSS4 mkdir Dist ./DSS_MakeRoot -f Dist cd Dist ./Install (need root privileges)See the documentation that accompanies the server on how to configure itfor your environment. Note the default content directory is /usr/local/movies.There are some sample mp4 files available on the mpeg4ip SourceForge download area. Also Envivio, http://www.envivio.com/, has some sample mp4 files. We suggest first downloading one of these samples and try opening the file with gmp4player. If that works, then try copying the file to the streaming server's content directory (e.g. /usr/local/movies), and enter the appropriate RTSP URL in gmp4player.OS Supported============Currently, we have compiled and tested on the following platforms:linux, freeBSD, BSD/OS, Solaris and windows. For all varietiesof *nux, X11 is required.To date we've built on Red Hat Linux 6.1, 6.2, 7.0, 7.1, and 7.2 withthe native compilers, on 7.1 and 7.2 with gcc 3.0, and on 7.3 with gcc 3.1. Windows-------For windows, Visual Studio 6.0 projects are included. You will needto install nasm in the VC98/bin directory before compiling. You shouldget nasm-0.98.22-win32.zip from the nasm web site. You will need to rename nasmw.exe to nasm.exe. We recommend getting Service Pack 5.Use the encoding60.dsw project for encoding tools, and the player/src/player60.dsw for the player.We recommend installing DirectX 8.1 or later. If that is not possible, and you have problems with video, try uncommenting out #define OLD_SURFACEin player/src/video.cpp. Other than that, you'll have to figure itout yourself - libsdl.org is a good resource.To run mp4player other than in Visual Studio, install both mp4player.exe and SDL.DLL into a directory on your Window's path (install them intothe same directory). You will also need to install all the plugin.dlls into the same directory as well. Look for the *_plugin projectsin player60.dsw.In encoding60.dsw and player60.dsw, if you do a batch build, you willsee several projects that do not build correctly - these are Lamewith GTK, and common with IPv6. This is as designed. If you wantthese to build, please see the appropriate package creator for thecorrect steps - they are not supported in mpeg4ip.For windows GUI player, see below section.Mac OSX-------We haven't been able to build mpeg4ip on a MAC for quite sometime. We just don't understand the toolchains, and it's not ahigh priority for us. One of our forum member (yakima) sent usthe following steps:- updated automake -> 1.6.3- installed DLCompat (dlfcn.h etc., see above)- bootstrap w/ --disable-shared --disable-mp4live- make w/ LDFLAGS='-flat_namespace -undefined warning' Version 0.9.7.2 should have the other changes required to get thisto compile. He didn't have any luck with the player plugins, andwe hope to get that done before the next release.This makes the below accurate again./*When building on Mac OSX, you may get an error that libtoolize isnot installed correctly. Mac OSX comes with libtool installed asglibtool. Automake (which doesn't come included with OSX) does notcorrect its scripts.To fix this problem, do a link of libtoolize to glibtoolize (ie:ln -s libtoolize glibtoolize where ever glibtoolize is installed).You should also use the --disable-shared command when issuing thebootstrap shell. This should be done for you if you use the projectbuilder project. We've tested the latest build on OSX, and have some strange resultsat times. Your mileage may vary.*/Slackware---------When building on Slackware-8.0, you need to consider the following (from maersk): The Slackware distribution does not as standard come with shared libraries for libXv and libXxf86dga. In other cases, where you have upgraded from xfree86 version 4.0 to 4.1, you may not have compiled the shared versions. The fix to this is in general is this: # pushd /usr/X11R6/lib # rm -f libXv.so libXxf86dga.so # ld --whole-archive -shared -o \ libXv.so libXv.a # ld --whole-archive -shared -o \ libXxf86dga.so libXxf86dga.a # popd Note that you need to be root to do this.Solaris-------When building on Solaris, libtool and gnu make must be installed andused. If libtool is installed, you make get a warning message thatcommon libraries made with gcc less than 3.0 might have problems, ignore it, but don't take binary libraries from any other machines.General UNIX------------If you have built a previous version of mpeg4ip, do a make uninstall first,or go in and remove libsndfile from your shared libraries directory, unlessyou have another version installed.Executables
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -