A while ago, because the project needs, studied the Live555 open source framework, the study is not very deep, basically put Live555 as API for a while, but after all, I see the first open source framework, in this record summary.
LIVE555 is an open-source streaming media framework that implements the RTSP protocol, LIVE555 contains the implementation of RTSP server side and the implementation of RTSP client. LIVE555 can convert several formats of video files or audio files into video streams or audio streams distributed through the RTSP protocol in the network, which is the core function of the streaming media server. LIVE555 supports streaming of the following file formats:
- A MPEG Transport Stream file (with file name suffix ". ts")
- A Matroska or WebM file (with filename suffix ". mkv" or ". WebM")
- An Ogg file (with filename suffix ". Ogg", "OGV", or ". Opus")
- A MPEG-1 or 2 program Stream file (with file name suffix ". mpg")
- A MPEG-4 Video Elementary Stream file (with file name suffix ". m4e")
- A H. Elementary Stream file (with file name suffix ". 264")
- A h.265 Video Elementary Stream file (with file name suffix ". 265")
- A VOB Video+audio file (with file name suffix ". VOB")
- A DV Video file (with file name suffix ". DV")
- A MPEG-1 or 2 (including Layer iii-i.e., ' MP3 ') audio file (with file name suffix ". mp3")
- A WAV (PCM) audio file (with file name suffix ". wav")
- An AMR audio file (with file name suffix ". Amr")
- An AC-3 audio file (with file name suffix ". AC3")
- An AAC (ADTS format) audio file (with file name suffix ". AAC")
Video streaming or audio streaming after Live555 streaming can be played through a player (such as VLC) that implements the standard RTSP protocol.
LIVE555 's official website: http://www.live555.com/, download Live555 source code: http://www.live555.com/liveMedia/public/
Download the source code after extracting the live directory, directory structure as follows, the Lib directory is compiled after the resulting directory:
The main use of these four directories, respectively, corresponding to the Live555 four libraries:
Basciusageenvironment directory, generated static library for LibBasicUsageEnvironment.lib, this library mainly contains some basic data structure and the definition of the tool class
Groupsock directory, generated static library for Libgroupsock.lib, this library mainly contains the network related class definition and implementation
Livemedia directory, generated static library for LibliveMedia.lib, this library contains the implementation of Live555 core functions
Usageenvironment directory, generated static library for LibUsageEnvironment.lib, this library mainly contains some classes in the Basicusageenvironment library implementation
The MediaServer directory contains a standard sample program for Live555 streaming media servers, and the following interface appears after running Live555MediaServer.exe:
Put your media files in the MediaServer directory, such as Test.mp3, select "Media"-"open network stream" in VLC player, and then enter Rtsp://127.0.0.1:8554/test.mp3 to play the mp3 file just now.
The ProxyServer directory is an example of a proxy server implemented by LIVE555, which can take real-time video streams from other streaming media servers (such as RTSP-enabled cameras) and forward them to multiple RTSP clients, a program that is useful for forwarding real-time video streaming of cameras.
Testprogs directory contains a lot of test example programs, I often use testOnDemandRTSPServer.cpp, I am starting from this example program to learn Live555.
Live555 Study (i) basic introduction of-------Live555