⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 readme

📁 网络MPEG4IP流媒体开发源代码
💻
📖 第 1 页 / 共 2 页
字号:
===========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 + -