[Live-devel] mpeg2transportstreamfromessource

Jeff Shanab jshanab at smartwire.com
Wed Dec 14 05:48:32 PST 2011


I am not using the "LIVE555 Media Server" because I didn't think it could do Http Live Streaming.**
I have my own web server and generate the index on the fly. This is very simple and works well, it is just the contents of the .ts file that are incorrect.
I think this because the saved .ts file is also unplayable with VLC when other recorded files from the same H264 source play fine.
I do not know if the ts file is just a container or if it needs to be wrapped around RTP that then contains the Elementary Stream data.
Or perhaps the frames coming to the MPEG2TransportStreamFromESSource are looked at to determine the meta data and non payload stuff. I have an aggregated keyframe that contains the SPS,PPS and the keyframe slices. I am gonna have VLC dump a ts file and do the byte-by-byte comparison, I just thought I was maybe missing something fundamental.

**HTTP Live Streaming is delayed by usually 3 - 10 second chunks or 30 seconds. The index (playlist ) does not contain the end marker and the client just goes back for more when it runs out. So ... HTTP almost Live Streaming.

From: live-devel-bounces at ns.live555.com [mailto:live-devel-bounces at ns.live555.com] On Behalf Of Ross Finlayson
Sent: Tuesday, December 13, 2011 9:08 PM
To: LIVE555 Streaming Media - development & use
Subject: Re: [Live-devel] mpeg2transportstreamfromessource

I have an existing multi rtsp source application that records video to disk and streams saved video and live video across our own http protocol. I am now trying to add HTTP Live Streaming for portable devices. I go to the point where all the connections are happening and index files and ts files are created but the .ts files containing the H264 video are not playable. I don't know what I am doing wrong.

If you stream these (indexed) files using the (original, unmodified) "LIVE555 Media Server" application, can iPhones or iPads receive the stream OK?  If not, then the problem is probably that the iPhone/iPad is unhappy with some feature of the H.264 (e.g., the H.264 "profile").  (If that's the case, then there's nothing we can do about this; you need to modify your encoding).


I have an evvironment and scheduler and a MPEG2TransportStreamFrameFromSource instance with a ESSource modeled after the DeviceSource and a class that inherits from MediaSink for the sink. Frames are added into the source and everything flows with 188 byte packets coming out the other side. The eventloop calls my sink and I add the 188 byte packets into the buffer that represents the .ts file. (it is all in memory).  The web server creates the index file (.m3u8 playlist) and the client comes back for the file. It downloads the file to disk in Firefox on windows and tries to play the video on the iPad.

??? I don't understand what this has to do with HTTP Live Streaming.  For our server code to do HTTP Live Streaming, you *must* be streaming *indexed* Transport Stream *files*.  Our implementation of HTTP Live Streaming *cannot* work with a live input source, even if you (somehow) have made the data look like a file, because the file also needs to be indexed, and that's something that you can do only with a prerecorded file.

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

________________________________
No virus found in this message.
Checked by AVG - www.avg.com<http://www.avg.com>
Version: 2012.0.1873 / Virus Database: 2108/4679 - Release Date: 12/13/11
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.live555.com/pipermail/live-devel/attachments/20111214/2bf9af79/attachment-0001.html>


More information about the live-devel mailing list