標籤:des os 檔案 art io for
hostzhu點評:MPlayer對流媒體的支援,讓大家能更進一步地利用linux來看網路直播,對Linux下多媒體應用的推動作用可以說不可度量。
RTSP/RTP streaming support for MPlayer
The Open Source "MPlayer" media player can now receive and play standards-comp
liant RTP audio/video streams, using the "LIVE555 Streaming Media" source code
libraries.
* For example, MPlayer can be used to view the MPEG/RTP streams sent by th
e "testMP3Streamer", "testMPEGVideoStreamer" or "testMPEGAudioVideoStreamer" d
emo applications, using the corresponding ".sdp" file (or, if the built-in RTS
P server is enabled, using a "rtsp://" URL).
* MPlayer can also play many other "rtsp://" streams, including ISMA-compl
iant MPEG-4 audio/video streams.
Note: We now recommend the use of the VLC media player. VLC, like MPlayer, use
s the "LIVE555 Streaming Media" code for RTSP client support, but is generally
more reliable than MPlayer. The VLC web site also has pre-built binary versio
ns; you may not need to build it from source code.
Building MPlayer to support RTSP/RTP streaming
Please do the following steps, in order:
1. Download and build the "LIVE555 Streaming Media" libraries. You may wish
to move the resulting "live/" directory to "/usr/local/", "/usr/local/lib/",
or "/usr/lib/". (Note: If you do this, you must move the entire "live/" direct
ory - not just the library files.)
2. Download the newest version of the MPlayer source code.
3. If, in Step 1, you moved the "live/" directory to "/usr/local/", "/usr/l
ocal/lib/", or "/usr/lib/", run
cd MPlayer* ; ./configure --enable-live
Otherwise, run
cd MPlayer* ; ./configure --enable-live --with-livelibdir=
4. Now, build and install MPlayer as usual - i.e.,
make ; make install
(Note that you must build MPlayer with the same version of "gcc" that yo
u used to build the LIVE555 Streaming Media code.)
Running the new MPlayer
MPlayer can be run just as before. However, it can now open "rtsp://" URLs:
mplayer rtsp:///
* To see details of the complete RTSP protocol exchange, add the "-V" ( ve
rbose ) option.
Alternatively, using a "sdp://" pseudo-URL, MPlayer can read a SDP file that d
escribes a RTP session:
mplayer sdp://
(SDP files are usually used only for playing multicast RTP sessions.)
Audio/Video synchronization
MPlayer s "A-V:" display (at the bottom of the console window) shows the curre
nt time difference (in seconds) between the audio and video streams. MPlayer w
ill automatically attempt to synchronize audio and video - i.e., to bring the
"A-V:" number close to zero - using information provided by incoming RTCP "Sen
der Report" packets. Sometimes, however, MPlayer s default synchronization mec
hanism can be slow to respond. If you need to make it respond more aggressivel
y, try adding the option
-mc 10
MPlayer s principal author has also written an informative article that discus
ses techniques for tuning the performance of MPlayer.
Streaming over TCP
By default, incoming data (RTP and RTCP packets) are streamed using UDP. If, h
owever, you have a broken Internet connection that (for whatever reason) does
not pass incoming UDP packets, then you can ask that the incoming data be stre
amed over TCP instead. (It will use the same TCP connection as RTSP.)
To do this, add the option
-rtsp-stream-over-tcp
to MPlayer. (Note that TCP streaming can be used only with "rtsp://" URLs; it
can t be used with sessions that are specified using a SDP file.)
Streaming access-controlled RTSP sessions
Some RTSP servers require user authentication (via a name and password) before
a session can be streamed. To stream such a session, use the "-user -passwd " options. The program authenticates using RTSP "digest au
thentication"; the password will not get sent in the clear over the net.
Alternatively, you could try including the user name and password inside the U
RL, as: "rtsp://:@:". (In this case, thoug
h, the password will be sent in the clear over the net.)
Playing SIP (IP telephony) sessions
MPlayer can also open and play SIP IP telephony sessions - i.e., those specifi
ed by a "sip:" URL. Of course, because MPlayer is a receive-only application,
you can listen in on such sessions - but you won t be able to talk back. (For
two-way communication on a SIP session, you should instead use a dedicated SIP
softphone application, such as linphone.)
A note about RealAudio and RealVideo sessions
Note that the LIVE555 Streaming Media libraries do not support RealAudio and/o
r RealVideo streams - even those described by a "rtsp://" URL - because these
streams do not use RTP for transport. (Instead, these streams use RealNetworks
proprietary "RDT" protocol.)
Recently, however, MPlayer was updated so that it can play RealAudio/RealVideo
"rtsp://" streams. It does this by first checking whether the URL ends with "
.rm" or ".ra". If it does, it handles it as a special case, not using the LIVE
555 Streaming Media support. Otherwise, it uses the LIVE555 Streaming Media su
pport, as usual.
Support
General questions about MPlayer should be posted to one of the MPlayer mailing
lists. However, questions specifically about the RTSP/RTP streaming support (
except for playing RealAudio or RealVideo streams) should be posted instead to
the "LIVE555 Streaming Media" developers mailing list.
Work still to be done...
* Support additional RTP media types. At present, the following media type
s are known to work:
audio: MPEG-1 or 2 elementary streams (including layer III - i.e., "MP3"
); MPEG-4 (AAC) audio; PCM (u-law or a-law); GSM; AC-3; QCELP
video: MPEG-1, 2 or 4 elementary streams; H.263+; motion-JPEG
* Use the RTSP "PAUSE" and "PLAY" commands to support the pausing and seek
ing of RTSP-initiated streams.
* Handle video RTP multicast sessions that contain more than one video sou
rce (multiplexed by RTP SSRC) - e.g., sessions such as the MBone "Places all o
ver the world". For example, MPlayer might pop up a separate video window for
each such source.
播放網路檔案資訊
2 Playing rtsp://gnu-linux.3322.org/test.3gp.avi.
3 Resolving gnu-linux.3322.org for AF_INET...
4 Connecting to server gnu-linux.3322.org[58.41.179.173]: 554...
5 rtsp_session: unsupported RTSP server. Server type is ‘LAIM1.0.0‘.
6 Resolving gnu-linux.3322.org for AF_INET...
7 Connecting to server gnu-linux.3322.org[58.41.179.173]: 80...
8 Server returned 404: Not Found
9 No stream found to handle url rtsp://gnu-linux.3322.org/test.3gp.avi