Advice on implementing a DVR application

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

Advice on implementing a DVR application

gimmeamilk
This post was updated on .
Hi,

I'm looking at using GStreamer in a DVR application. The DVR platform supports hardware decode/presentation of MPEG2 and h264 video in MPEG transport stream container.

Long-term, I plan to move the whole DVR record/playback engine into GStreamer elements, but for now I would just like to use GStreamer to support playback of other container types (still MPEG2/h264 codecs underneath) and over arbitrary network protocols, eg HLS. The plan would obviously be to construct a suitable acquire-and-remux pipeline, which would present transport stream to my decoders.

I have a few questions. Apologies if these have already been answered elsewhere; I did some searching but didn't find much info from later than 2009, so I want to be sure things are the same with the latest codebase:

1. Is there a bin available that can effectively work as a "convert anything to transport stream" bin? I am currently playing with several static pipelines, eg mp4-to-TS, avi-to-TS etc. Is there a bin that can be configured to automatically select the right demuxer from a list, and ensure that no codec transcoding will be performed (I only want remuxing)?

2. I would like to support high-speed trickplay using only I-pictures (ie keyframes). What support do the various demuxers have for a) parsing a container for the keyframe data in order to generate an index and b) using the index to push just the keyframes to a sink? I realise "various demuxers" is incredibly vague - as a start I would expect to support mp4, avi, flv, asf and mkv, both for MPEG2 and h264.

3. Are the PTS/DTS values produced by a pipeline always relative to zero (even if the source content has timestamps starting at an arbitrary value)?


I'm sure there will be many more questions to follow :) but for now any help/advice on these would be greatly appreciated.

Many thanks
Kevin Thornberry