[Live-devel] Creating receiver-streamer combined H264 videoconference server

Filip Koperski filu005 at gmail.com
Wed Aug 6 03:32:20 PDT 2014


Hi,
I'm trying to create a server application for video conference, working in
a following way:
get incoming H264 data on RTP protocol from multiple clients, decode data
to get seperate frames, manipulate frames, encode frames to H264 and
finally stream data to multiple clients.

For now I have two separate parts working together:
H264 live streamer - gets frames from camera (using opencv), encodes them
to H264 (with x264lib) and streams as RTP multicast.
H264 receiver - collects incoming H264 data from multicast RTP, decodes
them (with ffmpeg) and displays in window (using opencv).

My current idea for stitching theese two parts and creating my server is to
create a sequence of sources (filters) with a single sink at the end:

inputRTPSource = H264VideoRTPSource(rtpGroupsockIn) <- collects incoming
data from clients
computingSource = H264ComputingSource(inputRTPSource); <- this is where
decoding, manipulating frames and encoding takes place; it takes
inputRTPSource as input source
videoSource = H264VideoStreamDiscreteFramer(computingSource);
sink = H264VideoRTPSink(rtpGroupsockOut); <- streams data to clients

start two (for incoming and outcoming stream) RTCP sessions:

rtcpInstanceIn = RTCPInstance(rtcpGroupsockIn, inputRTPSource);
rtcpInstanceOut = RTCPInstance(rtcpGroupsockOut, sink);

and play whole thing like this:

sink->startPlaying(*videoSource, afterPlaying, NULL);

Is this the way to go? Am I on the right track? I'd be grateful for any
insight!
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.live555.com/pipermail/live-devel/attachments/20140806/424439fd/attachment-0001.html>


More information about the live-devel mailing list