Skip to content

Latest commit

 

History

History
64 lines (51 loc) · 1.74 KB

README.md

File metadata and controls

64 lines (51 loc) · 1.74 KB

live555helper

Helper for live555

The aim of this project is to simplify usage of live555 Streaming Media, that is powerful but need to implement lots of logic.

A simple RTSP client could be implement with :

#include <iostream>
#include "environment.h"
#include "rtspconnectionclient.h"


int main(int argc, char *argv[])
{
	class MyCallback : public RTSPConnection::Callback
	{
		public:
			virtual bool    onData(const char* id, unsigned char* buffer, ssize_t size, struct timeval presentationTime) {
				std::cout << id << " " << size << " ts:" << presentationTime.tv_sec << "." << presentationTime.tv_usec << std::endl;
				return true;
			}
	};

	Environment env;
	MyCallback cb;
	RTSPConnection rtspClient(env, &cb, "rtsp://pi2.local:8554/unicast");
	env.mainloop();
	return 0;
}

A simple SDP client could be implement with :

#include <iostream>
#include "environment.h"
#include "sdpclient.h"


int main(int argc, char *argv[])
{
	class MyCallback : public RTSPConnection::Callback
	{
		public:
			virtual bool    onData(const char* id, unsigned char* buffer, ssize_t size, struct timeval presentationTime) {
				std::cout << id << " " << size << " ts:" << presentationTime.tv_sec << "." << presentationTime.tv_usec << std::endl;
				return true;
			}
	};

	std::string ip("127.0.0.1");
	std::string port("6901");
	std::string rtppayloadtype("96");
	std::string codec("H264");

	std::ostringstream os;
	os << "m=video " << port << " RTP/AVP " << rtppayloadtype << "\r\n"
	   << "c=IN IP4 " << ip <<"\r\n"
	   << "a=rtpmap:" << rtppayloadtype << " " << codec << "\r\n";
		
	Environment env;
	MyCallback cb;
	SDPClient rtpClient(env, &cb, os.str().c_str());
	env.mainloop();
	return 0;
}