[Live-devel] MPEG demuxing

Aleksandar Milenkovic aleksandar.milenkovic at rt-rk.com
Thu Sep 20 07:48:46 PDT 2012


@Zahira

you can try demuxing your TS with ffmpeg and then delivering two 
separate streams for audio and video via RTP-over-RTSP. You will need to 
reassemble them correctly on the receiving side however, or face 
terrible lipsync issues.
You can wrap both of these as a Transport Stream at the receiving side; 
however asking further questions about it should better be directed at 
the ffmpeg crew.

Hope that helps.

*Aleksandar Milenkovic*
Software Engineer

Phone: +381-(0)11-2695-244
Fax: +381-(0)21-450-721
Mobile: +381-(0)64-31-666-82
E-mail: Aleksandar.Milenkovic at rt-rk.com 
<mailto:aleksandar.milenkovic at rt-rk.com>

RT-RK Computer Based Systems LLC
Bulevar Milutina Milankovica 19a
11000 Beograd, Serbia
www.rt-rk.com <http://www.rt-rk.com>


On 9/20/2012 4:09 PM, live-devel-request at ns.live555.com wrote:
> Send live-devel mailing list submissions to
> 	live-devel at lists.live555.com
>
> To subscribe or unsubscribe via the World Wide Web, visit
> 	http://lists.live555.com/mailman/listinfo/live-devel
> or, via email, send a message with subject or body 'help' to
> 	live-devel-request at lists.live555.com
>
> You can reach the person managing the list at
> 	live-devel-owner at lists.live555.com
>
> When replying, please edit your Subject line so it is more specific
> than "Re: Contents of live-devel digest..."
>
>
> Today's Topics:
>
>     1. Re: MPEG1or2DemuxedElementaryStream use (Ross Finlayson)
>     2. Re: Enumerate all 'clients' and memory leak (Ross Finlayson)
>     3. Re: Enumerate all 'clients' and memory leak (Ross Finlayson)
>     4. Re: Enumerate all 'clients' and memory leak (??????????????)
>     5. Re: MPEG1or2DemuxedElementaryStream use (Zahira Ammarguellat)
>
>
> ----------------------------------------------------------------------
>
> Message: 1
> Date: Thu, 20 Sep 2012 06:28:56 -0700
> From: Ross Finlayson<finlayson at live555.com>
> To: LIVE555 Streaming Media - development&  use
> 	<live-devel at ns.live555.com>
> Subject: Re: [Live-devel] MPEG1or2DemuxedElementaryStream use
> Message-ID:<4FE7CB02-4CF0-487E-AAAD-4FDBEB013121 at live555.com>
> Content-Type: text/plain; charset="us-ascii"
>
>> You say:
>> Instead, you should by transmitting audio and/or video as separate RTP streams, without any Transport Stream encapsulation.
>>
>>
>> How do I do that please?
> It's hard to answer this, because you haven't said anything about your system/environment.
>
> Are you using (or planning to use) a RTSP server?  If so, then I suggest starting by reviewing the "testOnDemandRTSPServer", and reading the FAQ.
>
>
> Ross Finlayson
> Live Networks, Inc.
> http://www.live555.com/
>
> -------------- next part --------------
> An HTML attachment was scrubbed...
> URL:<http://lists.live555.com/pipermail/live-devel/attachments/20120920/57f48a53/attachment-0001.html>
>
> ------------------------------
>
> Message: 2
> Date: Thu, 20 Sep 2012 06:37:23 -0700
> From: Ross Finlayson<finlayson at live555.com>
> To: LIVE555 Streaming Media - development&  use
> 	<live-devel at ns.live555.com>
> Subject: Re: [Live-devel] Enumerate all 'clients' and memory leak
> Message-ID:<3ECEC68E-8A0A-44D4-B73C-CECA1C8D0FB6 at live555.com>
> Content-Type: text/plain; charset="us-ascii"
>
>>> My ptable pointer allocated in MediaLookupTable::ourMedia but never deleted
>>> No, that's incorrect - it *will* get deleted, if/when all "Medium" objects end
>> up getting deleted (so there's no memory leak here).
>>
>> Both VLD (visual leak detector) and ms crt debug runtime reports leaks in that
>> code.
> Once again, this table will get deleted if (and only if) all "Medium" objects get deleted.  (Recall that "Medium" objects are deleted by calling "Medium::close()".)
>
>
>> BTW, i also interested in removing UsageEnvironment object too. In the sample
>> code you are advised termination code looks like this:
>>
>> pliveenvironment->reclaim();
>> delete m_plivetaskscheduller;
> That's correct.  Note that the call to "UsageEnvironment::reclaim()" will reclaim all allocated memory, but *only if* all "Medium" objects have already been deleted.
>
> But the best/easiest way to reclaim all of the memory for all of the LIVE555-allocated objects is simply to call "exit(0)" - i.e., by exiting the entire process.  (But I forget - this is the 21st century.  For some odd reason, software developers now have forgotten how to structure their applications using multiple processes :-)
>
>
> Ross Finlayson
> Live Networks, Inc.
> http://www.live555.com/
>
> -------------- next part --------------
> An HTML attachment was scrubbed...
> URL:<http://lists.live555.com/pipermail/live-devel/attachments/20120920/593cc357/attachment-0001.html>
>
> ------------------------------
>
> Message: 3
> Date: Thu, 20 Sep 2012 06:44:46 -0700
> From: Ross Finlayson<finlayson at live555.com>
> To: LIVE555 Streaming Media - development&  use
> 	<live-devel at ns.live555.com>
> Subject: Re: [Live-devel] Enumerate all 'clients' and memory leak
> Message-ID:<87900AA7-0EA5-4FA8-985D-B7259E24DE3F at live555.com>
> Content-Type: text/plain; charset="us-ascii"
>
>> And one more question, in the samples and the library itself many places in the
>> code looks like this:
>>
>>   RTSPClient* rtspClient = ourRTSPClient::createNew(env, rtspURL,
>> RTSP_CLIENT_VERBOSITY_LEVEL, progName);
>>
>>   if (rtspClient == NULL) {
>>
>> createNew() just a wrapper over the standard operator new (not overloaded, not a
>> `nothrow` version). But according the c++ standard operator new is never return
>> NULL, but throws bad_alloc on error. Why we need to check the return value?
> Yes, you're correct - in this case, the test for "rtspClient == NULL" is not needed, and could be removed.
>
> Note, however, that not all "createNew()" functions are simply wrappers around operator new.  "RTSPServer::createNew()", for example, is not.
>
>
> Ross Finlayson
> Live Networks, Inc.
> http://www.live555.com/
>
> -------------- next part --------------
> An HTML attachment was scrubbed...
> URL:<http://lists.live555.com/pipermail/live-devel/attachments/20120920/5037da69/attachment-0001.html>
>
> ------------------------------
>
> Message: 4
> Date: Thu, 20 Sep 2012 13:55:36 +0000 (UTC)
> From: ??????????????<zvyagintsev at atlantis.ru>
> To: live-devel at ns.live555.com
> Subject: Re: [Live-devel] Enumerate all 'clients' and memory leak
> Message-ID:<loom.20120920T154955-990 at post.gmane.org>
> Content-Type: text/plain; charset=utf-8
>
> Ross Finlayson<finlayson at ...>  writes:
>
>> But the best/easiest way to reclaim all of the memory for all of the
> LIVE555-allocated objects is simply to call "exit(0)" - i.e., by exiting the
> entire process. ?(But I forget - this is the 21st century. ?For some odd reason,
> software developers now have forgotten how to structure their applications using
> multiple processes
> Nice irony, but my code (and live555 code also) live in a dynamic link library
> which is directshow filter (COM object). I cant just 'exit(0)-and-have-fun' :)
>
>
>
> ------------------------------
>
> Message: 5
> Date: Thu, 20 Sep 2012 06:49:51 -0700
> From: Zahira Ammarguellat<zammargu at marvell.com>
> To: LIVE555 Streaming Media - development&  use
> 	<live-devel at ns.live555.com>
> Subject: Re: [Live-devel] MPEG1or2DemuxedElementaryStream use
> Message-ID:
> 	<B2A7C617B3AB7F44B7B44C7D374B431E13A0FD6067 at sc-vexch3.marvell.com>
> Content-Type: text/plain; charset="us-ascii"
>
> Ross,
>
> Ok here is more info that might help you help me :)
> My server is a Linux system. My client is a QNX device. The idea is to use WIFI display (using LIVE555 to build an MPEG2-TS stream) to stream an input multi-media file to the QNX target.
> It looks likes from your previous email that creating an MPEG2-TS stream is not an ideal thing. Creating an RTP audio stream and a video stream are better suited for this work?
> With this (small amount) information looking at testOnDemandRTSPServer still holds?
> Thanks,
> -Zahira
>
>
>
> From: live-devel-bounces at ns.live555.com [mailto:live-devel-bounces at ns.live555.com] On Behalf Of Ross Finlayson
> Sent: Thursday, September 20, 2012 9:29 AM
> To: LIVE555 Streaming Media - development&  use
> Subject: Re: [Live-devel] MPEG1or2DemuxedElementaryStream use
>
> You say:
> Instead, you should by transmitting audio and/or video as separate RTP streams, without any Transport Stream encapsulation.
>
> How do I do that please?
>
> It's hard to answer this, because you haven't said anything about your system/environment.
>
> Are you using (or planning to use) a RTSP server?  If so, then I suggest starting by reviewing the "testOnDemandRTSPServer", and reading the FAQ.
>
> Ross Finlayson
> Live Networks, Inc.
> http://www.live555.com/
>
> -------------- next part --------------
> An HTML attachment was scrubbed...
> URL:<http://lists.live555.com/pipermail/live-devel/attachments/20120920/54bd8fb0/attachment.html>
>
> ------------------------------
>
> _______________________________________________
> live-devel mailing list
> live-devel at lists.live555.com
> http://lists.live555.com/mailman/listinfo/live-devel
>
>
> End of live-devel Digest, Vol 107, Issue 37
> *******************************************
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.live555.com/pipermail/live-devel/attachments/20120920/a1be4858/attachment-0001.html>


More information about the live-devel mailing list