[Live-devel] Activate VUI on existing (h264).mpeg2ts stream.

Ismail OUCHATTI iouchatti at otonomy-aviation.com
Fri Jan 27 05:46:26 PST 2017


Hello

I have a stream where i have to add fps informations on the sps nal. Is there please a way to do this with an existing stream without encoding it again?

Ismail Ouchatti
R&D Engineer
iouchatti at otonomy-aviation.com
+33 557892163
+33 617052862


-----Message d'origine-----
De : live-devel [mailto:live-devel-bounces at ns.live555.com] De la part de live-devel-request at ns.live555.com
Envoyé : jeudi 26 janvier 2017 21:00
À : live-devel at ns.live555.com
Objet : live-devel Digest, Vol 158, Issue 20

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: Live streaming MKV video (mehdi semsarzadeh)
   2. Re: When streaming RTP over TCP, Live555 Proxy Server
      sometimes does not reconnect to 'back end' device (Ross Finlayson)
   3. Re: Proxy Server using TCP crashes (Ross Finlayson)
   4. where to call signalNewFrameData (Roland Aigner)
   5. Re: where to call signalNewFrameData (Ross Finlayson)
   6. Re: where to call signalNewFrameData (Roland Aigner)


----------------------------------------------------------------------

Message: 1
Date: Wed, 25 Jan 2017 15:11:03 -0500
From: mehdi semsarzadeh <msemsarz at uottawa.ca>
To: "LIVE555 Streaming Media - development & use"
	<live-devel at ns.live555.com>
Subject: Re: [Live-devel] Live streaming MKV video
Message-ID:
	<CA+40FEwsM1mbiDW5_K+ftS2HL0Wk+EHJxE4AmCq+DyyQb5nPCw at mail.gmail.com>
Content-Type: text/plain; charset="utf-8"

Thanks for replying Ross,
I understand that MKV is a container and not used for streaming, but the reason that I am using MKV is its ability to carry custom data within its container (which is injected in gstreamer as buffer's timestamp).
I could manage to stream live MKV video using Live555 in certain conditions and by doing some modifications. Here is more detailed explanation for anyone who may be interested.

In order to stream pipe's containing live MKV info we should make sure that
Live555 is not seeking pipe at all. The are two possible cases where
Live555 seeks inside the stream:
1 - If the MKV stream has seek related content (like cue)

2 - MKV parser in Live555 parses portion of the file during creating an instance of MatroskaFile (called in testMKVStreamer) and reads from start of file again when startPlaying method (trackState[i].sink->startPlaying)
is called.

to solve the 1st seek issue we should give Live555 an stream which does not need to perform any seek during streaming (in gstreamer you can disable seeking by setting streamable=true for matroskamux element).

to solve the 2nd seeking issue we should modify doReadFromFile method in ByteStreamFileSource class, to avoid reading any memory area more than once.  To do so, we can save the first read from pipe in a buffer and avoid reading the pipe for 2nd time and using the saved data in buffer, instead.
And after that continue normal read from pipe.
yours,
Mehdi


On Wed, Jan 18, 2017 at 4:19 PM, Ross Finlayson <finlayson at live555.com>
wrote:

> > I am trying to make a live555 rtsp server which streams live MKV video.
>
> The phrase ?streams live MKV video? doesn?t really make much sense, 
> because ?MKV? is a filename suffix that?s used for Matroska-format files.
>
> From reading the rest of your email, I gather that you?re trying to 
> pipe a Matroska-format file - as it?s being created - to our 
> ?testOnDemandRTSPServer? demo application, which can stream from from 
> a Matroska-format file.  That won?t work, because when a server is 
> streaming from a Matroska-format file, it has to demultiplex the video 
> (and audio, if
> present) from it, and this demultiplexing involves seeking within the 
> file, rather than just reading through the file sequentially.  But you 
> can?t ?seek? within a pipe; that?s probably why you?re getting a crash.
>
> As you discovered, you *can* pipe a media file to our server, but that 
> will work only if the media file format is one (like ?.h264?) that is 
> read sequentially.
>
> It doesn?t really make much sense to try to stream a Matroska-format 
> file as it?s being created.  Instead, just create a raw video stream, 
> and stream that.  (Or else have our server read and stream the 
> discrete media frames, as described in our FAQ.)
>
>
> Ross Finlayson
> Live Networks, Inc.
> http://www.live555.com/
>
>
> _______________________________________________
> live-devel mailing list
> live-devel at lists.live555.com
> http://lists.live555.com/mailman/listinfo/live-devel
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.live555.com/pipermail/live-devel/attachments/20170125/347cff4c/attachment-0001.html>

------------------------------

Message: 2
Date: Fri, 27 Jan 2017 00:34:49 +1300
From: Ross Finlayson <finlayson at live555.com>
To: LIVE555 Streaming Media - development & use
	<live-devel at ns.live555.com>
Subject: Re: [Live-devel] When streaming RTP over TCP, Live555 Proxy
	Server sometimes does not reconnect to 'back end' device
Message-ID: <F94C2010-BB07-4280-8DF6-75A38E16D2FA at live555.com>
Content-Type: text/plain; charset=utf-8

Sorry for taking so long to get around to this?

I have now installed a new version (2017.01.26) of the ?LIVE555 Streaming Media? code that incorporates your patch (mostly).

Please let us know if you run into any problems with this.


Ross Finlayson
Live Networks, Inc.
http://www.live555.com/




------------------------------

Message: 3
Date: Fri, 27 Jan 2017 00:36:21 +1300
From: Ross Finlayson <finlayson at live555.com>
To: LIVE555 Streaming Media - development & use
	<live-devel at ns.live555.com>
Subject: Re: [Live-devel] Proxy Server using TCP crashes
Message-ID: <E1208389-6DC8-46C6-93F5-4EC4DD525AA4 at live555.com>
Content-Type: text/plain; charset=utf-8

Sorry for the delay.  I wasn?t able to diagnose your problem, but it?s likely that it?s fixed in the newest version (2017.01.26) of the code.  Please upgrade to this newest version, and let us know if you still see the problem.


Ross Finlayson
Live Networks, Inc.
http://www.live555.com/




------------------------------

Message: 4
Date: Thu, 26 Jan 2017 12:33:53 +0000
From: Roland Aigner <Roland.Aigner at aec.at>
To: LIVE555 Streaming Media - development & use
	<live-devel at ns.live555.com>
Subject: [Live-devel] where to call signalNewFrameData
Message-ID: <C5AE8C2599165B45A2F99CE0597C19EC66577F11 at outlook.aec.at>
Content-Type: text/plain; charset="utf-8"

Hi,

I'm struggling a bit to get started. I was implementing a test RTSP server for streaming of live-encoded H.264 data. Since there may be hickups in delivering the data, especially in the beginning, where I have to do a lot of initialization, the NAL units buffer may underrun. In fact it does every time. Now I saw in your sample code of DeviceSource.cpp a template for signalNewFrameData which I apparently have to use if this happens. Now I'm not sure where a good place to call this would be. Ideally, I would call it from my subsession class, which is derived from OnDemanServerMediaSubsession, but I don't know where. Also, it seems like the subsession does not have a reference to the source, but only to the sink, at least in the sample implementations. I don't know if it is a good idea to keep a pointer to the source in the Subsession, maybe the source gets deleted somewhere and I'd try to access it... would you recommend this? I tried signaling from checkForAuxLine1, but I'm n!
 ot sure. Also, the call doesn't work like that as it seems to just trigger a new call of the source's deliverFrame, but not of its doGetNextFrame. I'm not sure if this is the way it's supposed to work.

Is there a sample or documentation somewhere?

Thanks,
Roland



------------------------------

Message: 5
Date: Fri, 27 Jan 2017 02:41:30 +1300
From: Ross Finlayson <finlayson at live555.com>
To: LIVE555 Streaming Media - development & use
	<live-devel at ns.live555.com>
Subject: Re: [Live-devel] where to call signalNewFrameData
Message-ID: <9DD9F79E-C0F1-443F-8416-545260A56C0D at live555.com>
Content-Type: text/plain; charset=us-ascii

>  Now I saw in your sample code of DeviceSource.cpp a template for signalNewFrameData which I apparently have to use if this happens. Now I'm not sure where a good place to call this would be.

See	http://lists.live555.com/pipermail/live-devel/2016-September/020285.html


Ross Finlayson
Live Networks, Inc.
http://www.live555.com/




------------------------------

Message: 6
Date: Thu, 26 Jan 2017 17:20:54 +0000
From: Roland Aigner <Roland.Aigner at aec.at>
To: LIVE555 Streaming Media - development & use
	<live-devel at ns.live555.com>
Subject: Re: [Live-devel] where to call signalNewFrameData
Message-ID: <C5AE8C2599165B45A2F99CE0597C19EC66577FFC at outlook.aec.at>
Content-Type: text/plain; charset="iso-8859-1"

Thanks. Seems like I'm trying to do 2b. What I'm still not getting out of this is, where and how I would call signalNewFrameData on my source object. I've now added a callback I'm calling from my encoder class, which is a bit messy, because the encoder actually wasn't supposed to be aware of the streaming code. Is there a place within the live555 classes where this would have to go?

Another question: is there a way of figuring out that the connection was lost/closed? Currently, my session keeps sending forever, as I couldn't find out how to handle this.

Best,
Roland




-----Urspr?ngliche Nachricht-----
Von: live-devel [mailto:live-devel-bounces at ns.live555.com] Im Auftrag von Ross Finlayson
Gesendet: Donnerstag, 26. Januar 2017 14:42
An: LIVE555 Streaming Media - development & use <live-devel at ns.live555.com>
Betreff: Re: [Live-devel] where to call signalNewFrameData

>  Now I saw in your sample code of DeviceSource.cpp a template for signalNewFrameData which I apparently have to use if this happens. Now I'm not sure where a good place to call this would be.

See	http://lists.live555.com/pipermail/live-devel/2016-September/020285.html


Ross Finlayson
Live Networks, Inc.
http://www.live555.com/


_______________________________________________
live-devel mailing list
live-devel at lists.live555.com
http://lists.live555.com/mailman/listinfo/live-devel



------------------------------

Subject: Digest Footer

_______________________________________________
live-devel mailing list
live-devel at lists.live555.com
http://lists.live555.com/mailman/listinfo/live-devel


------------------------------

End of live-devel Digest, Vol 158, Issue 20
*******************************************



More information about the live-devel mailing list