#include <BasicUsageEnvironment.hh>#include "DynamicRTSPServer.hh"#include "RTSPOverHTTPServer.hh"#include "version.hh"Include dependency graph for live555MediaServer.cpp:

Go to the source code of this file.
Functions | |
| int | main (int argc, char **argv) |
| int main | ( | int | argc, | |
| char ** | argv | |||
| ) |
Definition at line 25 of file live555MediaServer.cpp.
References UserAuthenticationDatabase::addUserRecord(), RTSPOverHTTPServer::createNew(), DynamicRTSPServer::createNew(), BasicUsageEnvironment::createNew(), BasicTaskScheduler::createNew(), TaskScheduler::doEventLoop(), env, UsageEnvironment::getResultMsg(), LIVEMEDIA_LIBRARY_VERSION_STRING, MEDIA_SERVER_VERSION_STRING, NULL, rtspServer, rtspServerPortNum, RTSPServer::rtspURLPrefix(), and UsageEnvironment::taskScheduler().
00025 { 00026 // Begin by setting up our usage environment: 00027 TaskScheduler* scheduler = BasicTaskScheduler::createNew(); 00028 UsageEnvironment* env = BasicUsageEnvironment::createNew(*scheduler); 00029 00030 UserAuthenticationDatabase* authDB = NULL; 00031 #ifdef ACCESS_CONTROL 00032 // To implement client access control to the RTSP server, do the following: 00033 authDB = new UserAuthenticationDatabase; 00034 authDB->addUserRecord("username1", "password1"); // replace these with real strings 00035 // Repeat the above with each <username>, <password> that you wish to allow 00036 // access to the server. 00037 #endif 00038 00039 // Create the RTSP server. Try first with the default port number (554), 00040 // and then with the alternative port number (8554): 00041 RTSPServer* rtspServer; 00042 portNumBits rtspServerPortNum = 554; 00043 rtspServer = DynamicRTSPServer::createNew(*env, rtspServerPortNum, authDB); 00044 if (rtspServer == NULL) { 00045 rtspServerPortNum = 8554; 00046 rtspServer = DynamicRTSPServer::createNew(*env, rtspServerPortNum, authDB); 00047 } 00048 if (rtspServer == NULL) { 00049 *env << "Failed to create RTSP server: " << env->getResultMsg() << "\n"; 00050 exit(1); 00051 } 00052 00053 *env << "LIVE555 Media Server\n"; 00054 *env << "\tversion " << MEDIA_SERVER_VERSION_STRING 00055 << " (LIVE555 Streaming Media library version " 00056 << LIVEMEDIA_LIBRARY_VERSION_STRING << ").\n"; 00057 00058 char* urlPrefix = rtspServer->rtspURLPrefix(); 00059 *env << "Play streams from this server using the URL\n\t" 00060 << urlPrefix << "<filename>\nwhere <filename> is a file present in the current directory.\n"; 00061 *env << "Each file's type is inferred from its name suffix:\n"; 00062 *env << "\t\".aac\" => an AAC Audio (ADTS format) file\n"; 00063 *env << "\t\".amr\" => an AMR Audio file\n"; 00064 *env << "\t\".m4e\" => a MPEG-4 Video Elementary Stream file\n"; 00065 *env << "\t\".mp3\" => a MPEG-1 or 2 Audio file\n"; 00066 *env << "\t\".mpg\" => a MPEG-1 or 2 Program Stream (audio+video) file\n"; 00067 *env << "\t\".ts\" => a MPEG Transport Stream file\n"; 00068 *env << "\t\t(a \".tsx\" index file - if present - provides server 'trick play' support)\n"; 00069 *env << "\t\".wav\" => a WAV Audio file\n"; 00070 *env << "See http://www.live555.com/mediaServer/ for additional documentation.\n"; 00071 00072 #if 0 // RTSP-over-HTTP tunneling is not yet working 00073 // Also, attempt to create a HTTP server for RTSP-over-HTTP tunneling. 00074 // Try first with the default HTTP port (80), and then with the alternative HTTP 00075 // port number (8000). 00076 RTSPOverHTTPServer* rtspOverHTTPServer; 00077 portNumBits httpServerPortNum = 80; 00078 rtspOverHTTPServer = RTSPOverHTTPServer::createNew(*env, httpServerPortNum, rtspServerPortNum); 00079 if (rtspOverHTTPServer == NULL) { 00080 httpServerPortNum = 8000; 00081 rtspOverHTTPServer = RTSPOverHTTPServer::createNew(*env, httpServerPortNum, rtspServerPortNum); 00082 } 00083 if (rtspOverHTTPServer == NULL) { 00084 *env << "(No server for RTSP-over-HTTP tunneling was created.)\n"; 00085 } else { 00086 *env << "(We use port " << httpServerPortNum << " for RTSP-over-HTTP tunneling.)\n"; 00087 } 00088 #endif 00089 00090 env->taskScheduler().doEventLoop(); // does not return 00091 00092 return 0; // only to prevent compiler warning 00093 }
1.5.2