Use the library in live555 to write a simple rtspserver program for learning purposes only. The Code in the following example shows the function call process of the rtspserver.
# Include <basicusageenvironment. hh> # include "livemedia. HH "static servermediasession * createnewsms (usageenvironment & ENV, char const * filename); int main () {taskscheduler * schedename; optional * env; rtspserver * rtspserver; servermediasession * SMS; // create the task caller schedew = basictaskschedew: createnew (); // create the interaction environment Env = basicusageenvironment: createnew (* schedew); // create the RTSP server rtspserver = rtspserver:: createnew (* ENV, 554); // use port 554 if (rtspserver = NULL) {rtspserver = rtspserver: createnew (* ENV, 8554 ); // port 554 is occupied, use port 8554} // print the server address * env <"play streams from this server using the URL \ n \ t" <rtspserver-> rtspurlprefix () <"<FILENAME>. \ n "; // create session SMS = createnewsms (* ENV," test. MPG "); rtspserver-> addservermediasession (SMS); // Add the session corresponding to other files... // env-> taskscheduler (). doeventloop (); // does not return 0;} static servermediasession * createnewsms (usageenvironment & ENV, char const * filename) {char const * extension = strrchr (filename ,'. '); servermediasession * SMS = NULL; Boolean reusesource = false; // do not reuse source SMS = servermediasession: createnew (ENV, filename ); // create a session //// add subssesion to the session // If (strcmp (extension ,". AAC ") = 0) {SMS-> addsubsession (adtsaudiofileservermediasubsession: createnew (ENV, filename, reusesource);} else if (strcmp (extension ,". 264 ") = 0) {SMS-> addsubsession (hsf-videofileservermediasubsession: createnew (ENV, filename, reusesource);} else if (strcmp (extension ,". MPG ") = 0) {inclu* Demux = mpeg1or2fileserverdemux: createnew (ENV, filename, reusesource); SMS-> addsubsession (Demux-> newvideoservermediasubsession ()); SMS-> addsubsession (Demux-> newaudioservermediasubsession ();} // Add support for other media formats... return SMS ;}