?? readme
字號:
===========If you ran 'make install' with the defaults, then all the MPEG4IP executableswill end up in /usr/local/bin. For encoding tools, you get:mp4live Integrated, live encoding to file or network - Linux onlymp4encode Front-end script to the following encoding tools:avi2raw Extracts raw audio/video tracks from an AVI filelboxcrop Vertically crops raw video to a new aspect ratiofaac Encodes raw audio into MPEG-4 AAC encoded audiomp4venc Encodes raw video into MPEG-4 encoded video using ISO codecmp4creator Creates and hints audio/video tracks to an mp4 filexvidenc Encodes raw video into MPEG-4 encoded video using the Xvid codecThese are described in more detail in doc/encoding/encoding.htmA few debugging tools are also included:mp4extract Utility to extract tracks from an MP4 filemp4dump Utility to dump MP4 file meta-information in text formmp4info Utility to display MP4 file summaryavidump Utility to display AVI file summaryyuvdump Utility to display a raw video file on the screenFor playback, you get:gmp4player Simple graphical interface playermp4player Bare video window with sync'ed audioIf you installed the Darwin Streaming Server, those executables will endup in /usr/local/sbin.DarwinStreamingServer Provides streaming service for MP4 filesPlaylistBroadcaster Provides multicast playlist service for MP4 filesExecutable Notes================FAAC and FAAD=============In our desire to make the package smaller, we have removed SNDFILE.This has the effect of allowing FAAC to only encode raw PCM files,unless bootstrap detects that SNDFILE is installed. We do not havethe complete version of FAAD, so the faad standalone decoder will notbuild.If the existing translation behaviour of FAAC is required, pleaseobtain SNDFILE and install it, then re-run bootstrap and make for*nux base platforms. For windows based platforms, obtain a freshcopy of faac and use it instead of the one in our package.An even better idea would be to obtain the complete faac/faad packagefrom www.audiocoding.com.Directory Structure===================If you're going to start hacking, a map of the territory may prove useful:mpeg4ip - top level project directory config - autoconf files doc - the minimal doc we've written so far encoding - how to encode contenet ietf - copies of the relevant RFC's mcast - how to multicast mp4v2 - man pages for mp4v2 library programs - man pages for core programs include - project wide includes common - shared code video libmpeg32 - mpeg1/2 encoder/decoder mpeg4 - ISO MPEG-4 video encoder/decoder lib - project wide libraries SDL - Simple DirectMedia Layer avi - AVI file format bitstream - MPEG style low level bitstream utlity config_file - Configuration file utility gnu getopt - gnu getopt routines mp4 - MP4 (aka MOV/Quicktime) file format library mp4v2 - new MP4 library written from scratch test - contains some test programs util - contains new mp4dump and mp4extract utilities mpeg2t - mpeg2 transport stream utilities msg_queue - SDL based Inter-thread messages utlity rtp - UCL RTP sdp - Our own SDP win32 - libary files need for MS Windows xvid - xvid video encoder/decoder player - player specific code lib - libraries specifically for the player audio faad - FAAD AAC decoder mp3 - MP3 decoder libhttp - Our own http client rtsp - Our own RTSP client plugin - home of player plugins audio - audio plugins raw - raw audio plugin rtp - rtp bytestream plugins h261 - h261 rtp plugin isma_audio - isma audio format plugin video - video plugins raw - raw video plugin mpeg3 - mpeg1/2 video plugin xvid - xvid video plugin h261 - h261 decoder src - the player executable codec - aa - aac plugin mp3 - mp3 plugin mpeg4 - mpeg4 ISO decoder plugin wav - wav plugin osx - Mac OS X UI win_common - common windows code win_client - windows client win_gui - windows gui code. server - server specific code audio faac - AAC encoder program mp4creator - create and hint A/V tracks to an mp4 file mp4live - mp4 live encoding interface gui - gtk gui for mp4 live. util avi2raw - extract raw A/V data from AVI files avidump - dump AVI meta information. lboxcrop - vertically crop raw video mp4encode - front-end script to simplify encoding process rgb2yuv - rgb to yuv converter xvidenc - command line interface to Xvid MPEG-4 encoder video H26L - ITU H.26L TML 9.4 reference video encoder (EXPERIMENTAL) util - generally useful utilities iptv - read Cisco IP/TV programs from a content manager yuv - simple tools for examining raw videoStandards Compliance====================We're not only supporters of open source, we're supporters of open standards!We've attempted to use the publically defined standards as much as possible.Here's what we believe we are following. If you find something non-compliant,please let us know. We certainly will want to fix it.Here are the citations:ISO/IEC 14496-1:2001 MPEG-4 Systems (includes MP4 file format)ISO/IEC 14496-2:2000 MPEG-4 VideoISO/IEC 14496-3:1999 MPEG-4 Audio (includes AAC)ISO/IEC 11172-3:1993 MPEG-1 Audio (includes MP3)ISO/IEC 13818-3:1998 MPEG-2 Audio (includes extensions to MP3)ISO/IEC 13818-7:1997 MPEG-2 AACThe ISO/IEC documents must be purchased from either ISO (www.iso.ch)or one of the national bodies. In the US, ANSI is the representativebody, and provides an online store under www.ansi.orgIETF RFC 1889 & 1890 RTPIETF RFC 2326 RTSPIETF RFC 2327 SDPIETF RFC 2250 RTP Payload for MPEG-1/2 Note: we're just using the audio part for MP3 (and video reception for the player).IETF RFC 3119 A More Loss-Tolerant RTP Payload Format for MP3 AudioIETF RFC 3016 RTP Payload for MPEG-4 Audio/Visual Note: we're implementing the MPEG-4 video partIETF draft-ietf-avt-mpeg4-simple-06.txt - work in progress Note: we're implementing the AAC audio part, and for the next release will finalize implementation.The IETF RFCs can be found in mpeg4ip/doc/ietfNote the MP4 file format is derived from Apple's QuickTime file format.That specification is:Apple Computer QuickTime File Format, June 28 2000http://developer.apple.com/quicktime/We're also involved in the Internet Streaming Media Alliance (ISMA) which seeks to standardize the protocols and formats used for streaming.We believe MPEG4IP is interoperable with that organization's 1.0 Technical Specification. For more information see http://www.isma.tvLatency in mpeg4ip==================There have been enough questions to merit a place in the README aboutthe latency in mpeg4ip.First of all, mpeg4ip is not designed for video conferencing or realtime display of data. Most streaming products are not (look at Realor Quicktime's buffering schemes - QT buffers 3.0 seconds of data, while Real can buffer up to 30-40 seconds).When you need to look at latency in a streaming environment, you needto look at each potential piece. In the simplest case (mp4live to mp4player), there are 5 potential places where latency can take place - at mp4live, in the kernel IP transmit stack, in the network, in thekernel IP receive stack and in the player.Mp4live has very little latency. In video, it tends to be 1 frame. Inaudio, it tends to be 3-4 audio frames (if using AAC, frames tend tobe 1024 samples. MP3 tends to be 1152 samples, but can change based onsampling frequency and bit rate. Samples can be converted to seconds bydividing by the sample rate).The kernal IP stacks can have some latency built in, as well. Probablynot too much, but you should be aware that it can exist (look at a sniffertrace of DSS output and you'll see what I mean).Network latency can occur, as well. Collisions, etc, can happen, especiallyif server and player are not on the same network.Finally, the player has latency as well. For streaming, we tend to buffer2 seconds for each stream. This is changeable by setting the RtpBufferTimeMsec variable in the .gmp4player_rc file (for Windows users, you'll have to change the registry to do so). The value is in milliseconds, and you need to set it to a non-zero value (0 indicates the default value).Player Information==================See the new README in player/src.Known Problems==============* There have been some changes to the MPEG4 AAC DTS headers in the latest version of the MPEG4 specification. This renders previous .aac files pretty much obsolete. We have NOT made this change to mpeg4ip - we will make it in the next release.* If you're playing through a NAT box, you may have to specify the default client IP ports. Use the command RtpIpPortMin=<port> and RtpIpPortMax=<port> in the .gmp4player_rc file created in your home directory. The IETF recommends a range of 6970 to 6999.* The ISO MPEG-4 video codec bitrate control feature is broken. We've heard that a fix is available, so we're trying to track that down.* The player for windows is sketchy at best. We have included project files that should build for Dev Studio 6.0. We recommend installing DirectX 8.1 or later. If that is not possible, and you have problems with video, try uncommenting out #define OLD_SURFACE in player/src/video.cpp. If you have problems with choppy playback, and you're using Windows 98, forget about it. The timer tick time is too slow (55 msec) for us to use effectively. Try Quicktime or Real with Envivio, or update to a newer Windows OS.* Mac OSX player sometimes will lock up, or stop playing video while continuing the audio - we need someone to help us add the sound buffer delay to get really good audio/video sync.* FreeBSD based OS's have a problem with thread delays. This can cause the player to skip rendering many frames. If you have this problem update to the latest version of FreeBSD - the problem still can occur, but is reduced. This is due to an error in the thread scheduling code that causes a problem with a delay of less than the thread scheduler quantum (200 msec in some versions, 20 in others). Since the average delay used is 9 to 10 msec (less as we get closer to the video rendering time), this can have a great effect on video playback. You can get around this error by rebuilding your libc, after changing the THREAD_SCHED_USECS to 20000 (or lower) from 200000 in thread_private.h.* If you're running on Linux, and trying to play a raw audio file, and notice that you get garbage, try setting the LimitAudioSdlBuffer config variable to 1 in the .gmp4player_rc file. This seems to occur on a Soundblaster Live, Red Hat 7.3 machine.* As the RTP standard (or new draft) suggests, the round trip delay can be approximated at the sender side by subtracting the intercepted time of a RTCP SR and the delay at the client side from the intercepted time of the corresponding RTCP RR. That is: RRT = Time_RR - Time_SR - Time_delay_at_client. However, as the Windows run-time library only provides up to 1 millisecond resolution (0.001 sec), such measurement on Windows machines on a LAN may be very inaccurate. A typical RRT between two hosts on a LAN is around 0.5 millisecond. Measurements between Linux/Unix boxes have no such a problem. * It appears that mpeg audio created and hinted with our mp4creator do not work correctly with Quicktime when streaming. This is most likely because we use a dynamic RTP payload number and a RTP TS frequency that matches the sampling frequency. QT seems to only like an RTP payload of 14 and a RTP TS frequency of 90000. (This is with QT 6.0). This will work with mpeg 1/2 files, or if you use -timescale=90000 when using mp4creator with mp3 files. If you're using mp4live to stream audio, use the rtpUseMp4RtpPayload14 config file option. Neither QT or Real appear to understand mpeg1/2 or mp3 content in a .mp4 container file for local playback.=== END OF README ===
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -