Me TV, playbin, and MPEG streams

classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

Me TV, playbin, and MPEG streams

Russel Winder
Hi,

So far I have managed to make Me TV (a DVB player) without really
understanding the GStreamer pipeline that takes data from the DVB kernel
driver and delivers audio and video to the user. This is due to the wonders of
playbin. I have to fiddle with video elements and GTK+3 widgets, but with
Sebastian's guidance got something that seems to work just fine.

However, someone has asked about recording things as well as / instead of
playing them live. I am guessing the best bet is to write an MPEG-4 file in
this case and have people use Glide or Totem as the playback tool.

From my position of knowing essentially zero about what playbin is doing for
me, can anyone point me at examples (preferably in Rust, obviously :-) ) of
applications that play streams and file them at the same time? Is this sort of
thing even possible with playbin, or will I have to start manually
constructing pipelines?

I am guessing playing and recording is the hard bit, just recording without
playing should be a lot easier, but then I am not sure I want to get into all
that PVR stuff, people have PVRs and Web streaming for all that.
 
--
Russel.
===========================================
Dr Russel Winder      t: +44 20 7585 2200
41 Buckmaster Road    m: +44 7770 465 077
London SW11 1EN, UK   w: www.russel.org.uk


_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel

signature.asc (849 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

AW: Me TV, playbin, and MPEG streams

BGraaf
Hi Russel,

If you want to implement something like time shift, MP4 isn't a nice idea
for that, because MP4 is written the timing information at last (while
closing it). Therefore it's not possible to write and read a mp4-file in the
same time.
I'm using mp2ts for that, because the timestamps are written in the stream.
Therefore it's possible to jump forward/backward in the stream, while
recoding it.

Regards
Bernhard


-----Ursprüngliche Nachricht-----
Von: gstreamer-devel [mailto:[hidden email]]
Im Auftrag von Russel Winder
Gesendet: Montag, 17. Dezember 2018 17:35
An: GStreamer Developers
Betreff: Me TV, playbin, and MPEG streams

Hi,

So far I have managed to make Me TV (a DVB player) without really
understanding the GStreamer pipeline that takes data from the DVB kernel
driver and delivers audio and video to the user. This is due to the wonders
of
playbin. I have to fiddle with video elements and GTK+3 widgets, but with
Sebastian's guidance got something that seems to work just fine.

However, someone has asked about recording things as well as / instead of
playing them live. I am guessing the best bet is to write an MPEG-4 file in
this case and have people use Glide or Totem as the playback tool.

From my position of knowing essentially zero about what playbin is doing for
me, can anyone point me at examples (preferably in Rust, obviously :-) ) of
applications that play streams and file them at the same time? Is this sort
of
thing even possible with playbin, or will I have to start manually
constructing pipelines?

I am guessing playing and recording is the hard bit, just recording without
playing should be a lot easier, but then I am not sure I want to get into
all
that PVR stuff, people have PVRs and Web streaming for all that.
 
--
Russel.
===========================================
Dr Russel Winder      t: +44 20 7585 2200
41 Buckmaster Road    m: +44 7770 465 077
London SW11 1EN, UK   w: www.russel.org.uk


_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: Me TV, playbin, and MPEG streams

Russel Winder
In reply to this post by Russel Winder

It seems that I can transform an MPEG-TS file to an MPEG4 file with:

gst-launch-1.0 filesrc=<path-to-source> ! decodebin ! x264enc ! mp4mux ! filesink location=<path-to-sink>

so now all there is to do is to code this up as a Rust program and replace the
file source with a live DVB stream with a start and stop time.

However, I am fairly sure this is easier said than done.

--
Russel.
===========================================
Dr Russel Winder      t: +44 20 7585 2200
41 Buckmaster Road    m: +44 7770 465 077
London SW11 1EN, UK   w: www.russel.org.uk


_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel

signature.asc (849 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: AW: Me TV, playbin, and MPEG streams

Russel Winder
In reply to this post by BGraaf
Bernhard,

Thanks for chipping in, much appreciated.

> If you want to implement something like time shift, MP4 isn't a nice idea
> for that, because MP4 is written the timing information at last (while
> closing it). Therefore it's not possible to write and read a mp4-file in the
> same time.
> I'm using mp2ts for that, because the timestamps are written in the stream.
> Therefore it's possible to jump forward/backward in the stream, while
> recoding it.

I wasn't thinking of pausing live streams as PVRs can do, but now you mention
it, that is a spiffing idea. I shall add it to the list of things to think
about. I suspect it isn't going to be possible with the current architecture,
but it is something to think about nonetheless.

The user requirement (*) turns out just to be scheduled recording. In the
spirit of keeping things small and simple I am going to do this as a separate
application rather than adding things to the live player. This means just
taking the DVB feed and generating an MPEG4 file given a start time and either
an end time or a duration.

I think this gets round the problem you are describing – though for live
stream pausing the problem is crucial.


(*) Unbelievably perhaps, Me TV actually has users other than me. OK only
about 7, but they keep coming out of the woodwork with requests for things in
Me TV!

--
Russel.
===========================================
Dr Russel Winder      t: +44 20 7585 2200
41 Buckmaster Road    m: +44 7770 465 077
London SW11 1EN, UK   w: www.russel.org.uk


_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel

signature.asc (849 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

AW: AW: Me TV, playbin, and MPEG streams

BGraaf
Hi Russel,

That's the same way I do, but without decoding/encoding the mp2ts stream
from DVB. Therefore it will be stored in coming format.
The only thing I do is to exclude the stream (pid) of the programmed channel
to hold the HD-Memory as small as I could.
If it's better for you to use mp4, it's you decision.
 
If you want to start with the 'time shift' function, please hold me in copy.
I have already developed this function (in C :-)).

Regards
Bernhard

-----Ursprüngliche Nachricht-----
Von: gstreamer-devel [mailto:[hidden email]]
Im Auftrag von Russel Winder
Gesendet: Mittwoch, 19. Dezember 2018 16:34
An: Discussion of the development of and with GStreamer
Betreff: Re: AW: Me TV, playbin, and MPEG streams

Bernhard,

Thanks for chipping in, much appreciated.

> If you want to implement something like time shift, MP4 isn't a nice idea
> for that, because MP4 is written the timing information at last (while
> closing it). Therefore it's not possible to write and read a mp4-file in
the
> same time.
> I'm using mp2ts for that, because the timestamps are written in the
stream.
> Therefore it's possible to jump forward/backward in the stream, while
> recoding it.

I wasn't thinking of pausing live streams as PVRs can do, but now you
mention
it, that is a spiffing idea. I shall add it to the list of things to think
about. I suspect it isn't going to be possible with the current
architecture,
but it is something to think about nonetheless.

The user requirement (*) turns out just to be scheduled recording. In the
spirit of keeping things small and simple I am going to do this as a
separate
application rather than adding things to the live player. This means just
taking the DVB feed and generating an MPEG4 file given a start time and
either
an end time or a duration.

I think this gets round the problem you are describing – though for live
stream pausing the problem is crucial.


(*) Unbelievably perhaps, Me TV actually has users other than me. OK only
about 7, but they keep coming out of the woodwork with requests for things
in
Me TV!

--
Russel.
===========================================
Dr Russel Winder      t: +44 20 7585 2200
41 Buckmaster Road    m: +44 7770 465 077
London SW11 1EN, UK   w: www.russel.org.uk


_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel