{{{ #!html

For Developers only

}}} [[html(
)]] This info is here for developers only. If you don't understand it, it's not for you. [[html(
)]] [[TOC(heading= ,inline)]] [[BR]] [[BR]] == IRC discussion about Live-TV support via RTSP == {{{ #!irc Nov 10 17:43:23 ok, it is about using rtsp/rtp for the DVB-D to send out live-tv Nov 10 17:44:19 I already looked at the rtsp spec and gst-rtsp-server Nov 10 17:44:40 I think I understand how it basically works Nov 10 17:44:50 as it is the optional, and maybe soon a mandatory transport protocol in DLNA, my opinion is, when sebp now starts with live-tv at the DVB-D, we should go for something that will of some use for a broader device base Nov 10 17:44:51 dev: don't call it DVB-D, it made me wonder if its another spec out there alongside DVB-C, DVB-T and DVB-S :) Nov 10 17:45:00 hehe, ok Nov 10 17:45:58 mabye a stupid question, but what's DLNA? Nov 10 17:46:34 sebp: you should read my documents - Digital Living Network Alliance Nov 10 17:46:38 sebp: http://www.dlna.org/home Nov 10 17:46:53 on top of UPnP Nov 10 17:47:43 so the basic question is - how should/could we integrate gst-rtsp-server with the DVB-Daemon Nov 10 17:47:55 sup y'all :) Nov 10 17:48:16 robtaylor: hey :) Nov 10 17:48:43 hi robtaylor Nov 10 17:48:52 dev, sebp: hey Nov 10 17:49:25 wtay: gst-rtsp-server need a file as input? Nov 10 17:49:27 dev: so, you're teh DLNA expert - is there any standard interfaces for a program guide? Nov 10 17:49:41 robtaylor: yep, me is working on it Nov 10 17:49:46 s/is/are/ even. I should start talking english ;) Nov 10 17:50:00 dev, no, any gstreamer element will do. Check the live pipelines Nov 10 17:50:27 dev: that's cool, i guess that's teh sort of thing a dvb controlpoint should export Nov 10 17:50:45 robtaylor: http://upnp.org/specs/av/UPnP-av-ContentDirectory-v2-Service-20060531.pdf abd http://upnp.org/specs/av/UPnP-av-ScheduledRecording-v1-Service-20060531.pdf Nov 10 17:50:57 robtaylor: no, the dvb MediaServer Nov 10 17:51:05 I'm a little bit confused with streams in rtsp. Are those stream all the streams that belong to let's say a move (e.g. video, english audio, german audio) or can I also put multiple unrelated movies side by side? Nov 10 17:51:12 dev: sorry, yes, MediaSever :) Nov 10 17:51:49 sebp: think of it like mpegts.. Nov 10 17:52:22 robtaylor: ok, so the streams are related Nov 10 17:52:35 sebp: well, they can be, but they don't need to be Nov 10 17:52:56 sebp: the timestamp relationships are between the RTP streams Nov 10 17:53:15 * zaheerm perks up at the discussion Nov 10 17:53:31 what I have in mind is that the server might stream two different channels Nov 10 17:54:40 dev, all dnla compliant devices have to handle those specs? Nov 10 17:55:11 zaheerm: in a future, ideal world - yes Nov 10 17:55:20 dev, so the answer is no :) Nov 10 17:55:27 how many do support rtsp so far? Nov 10 17:55:30 rtp is optional currently in dlna, if i followed correctly ;) Nov 10 17:55:32 atm the moment no Nov 10 17:55:51 but it will be pushed heavily Nov 10 17:56:02 the ps3 supports ts over rtsp? Nov 10 17:56:04 yep, rtsp/rtp is not mandatory yet Nov 10 17:56:22 zaheerm: vlc doesn't :( Nov 10 17:56:24 dev: know anything that supports it yet? Nov 10 17:56:25 zaheerm: no, the only device I know of so far is the netgear eva-8000 something Nov 10 17:56:26 does rtsp support "metadata" like epg? or would that go over the normal upnp-connections_ Nov 10 17:56:27 ? Nov 10 17:57:03 let's first concentrate on the rtsp part pls Nov 10 17:57:12 lightyear, some metadata is contained inside the ts, such as now/next data from the eit, channel name from the sdt etc. Nov 10 17:57:15 hahhahaha. was only wondering Nov 10 17:57:24 sebp: I would propose for each show/channel a stream Nov 10 17:58:08 sebp: so we could say that one tunes in into live-tv, we provide that for some other client too Nov 10 17:58:18 i'd do the same, don't think it would work having multiple tv/radio channels being sent in one rtsp stream...can easily split them at the server level Nov 10 17:58:39 ok, sounds good Nov 10 17:58:56 and if we get that ring-buffer thing, we have some data-in-time we could go back Nov 10 17:59:46 that would be awesome Nov 10 17:59:47 dev: that brings me to my next problem, what if A watches channel 1 and wants to watch channel 2, but there's only card available Nov 10 18:00:04 ah, B wants to watch channel 2 :) Nov 10 18:00:17 gst-rtsp-serverbut the question is - would this be possible with Nov 10 18:00:23 argh Nov 10 18:00:35 rtsp server reports busy to B unless it is in same transport stream in dvb? Nov 10 18:00:53 in which case it serves both fine? Nov 10 18:01:12 probably that's the job of the UPnP server Nov 10 18:01:20 zaheerm: yes, if it would work as expected :) but that's another topic Nov 10 18:02:06 my question is - if we have some ring-buffer for the dvb-data, and we have gst-rtsp-server serving that Nov 10 18:02:37 sebp, implementation details :P Nov 10 18:02:49 could one client have the actual one-time stream, and some other the same stream, but 5min behind? Nov 10 18:02:58 so you want to have a ringbuffer on server level? Nov 10 18:03:01 dev, i see no reason why not Nov 10 18:03:05 lightyear: yep Nov 10 18:03:13 that sounds awesome ... Nov 10 18:03:15 lightyear, think of the possibilities, elisa will never need native dvb :P Nov 10 18:03:27 if we want to provide seek and pause for the PS3, we have to Nov 10 18:03:47 you want 5 min the buffer? Nov 10 18:03:55 wtay: is that possible? or do we need a server for each client? Nov 10 18:04:03 arg, in the buffer Nov 10 18:04:19 sebp: why not? why not 15? it is only a question of disk space Nov 10 18:04:32 sebp, the ring buffer would be a large enough size that users wouldn't know that there was a limit :) Nov 10 18:04:51 ok, if it's on disk that's fine Nov 10 18:05:22 dev, it's possible, you don't need a server for each client Nov 10 18:05:23 i've rewinded over an hour on my sky set top box without issues Nov 10 18:05:32 I must admit I'd always wanted to jump back in live tv Nov 10 18:05:42 wtay: cool, so that is the way to go Nov 10 18:06:31 more important: pause and ffw over the comercials! Nov 10 18:06:42 sorry conf call now :( Nov 10 18:06:51 will look over discussion Nov 10 18:06:57 I do that with myth-tv since 2003 ;-) Nov 10 18:07:13 hehe Nov 10 18:07:17 anyway - first conclusions: Nov 10 18:07:56 gst-rtsp-server can handle several clients and serving each another portion of the ring-buffered stream Nov 10 18:08:14 we use for each channel one gst-rtsp-server Nov 10 18:09:10 at least one rtsp url, it's still one server though, right? Nov 10 18:09:16 I would say so... Nov 10 18:10:41 one server/process? or several server instances in one process? Nov 10 18:10:55 dev: you mean that we will stream one channel per url, no? Nov 10 18:11:02 I would start and stop the servers as needed Nov 10 18:11:13 on demand, sure Nov 10 18:11:38 so that you have a pool, and maybe we can somehow modify the server to actually serve all the channels of one transponder Nov 10 18:11:52 but as different streams Nov 10 18:12:29 implementation detailsas zaheerm said - Nov 10 18:12:34 sure Nov 10 18:12:47 but that would be even more awesome ... Nov 10 18:13:22 didn't twi_ already made some modifications like that in his branch? Nov 10 18:13:31 lightyear: that's the goal. that you can watch all channels of one TS at the same time with only one adapter Nov 10 18:15:21 any objections to follow that road? wtay? Nov 10 18:16:40 you need one server with multiple sessions Nov 10 18:17:26 but there is nothing technically speaking against this kind of setup? Nov 10 18:17:31 meaning one instance listening on the RTSP port and setting up the pipelines for the clients Nov 10 18:17:39 yep Nov 10 18:18:46 I guess it could work with a separate process per client too Nov 10 18:19:18 maybe that's better in terms of memory leaks,... Nov 10 18:20:01 cool, I really love it to see all these little pieces fall into place Nov 10 18:20:49 you'll need to pass file descriptors between processes and other nasty things Nov 10 18:21:17 flumotion does this Nov 10 18:21:28 so we'll document that somewhere, review that and start with some of the pieces Nov 10 18:22:48 they should be all separated enough to work on its own Nov 10 18:23:10 I don't want it to be too complicated in the beginning, otherwise it takes ages until the server is working Nov 10 18:23:33 yep, that's why I propose that component approach Nov 10 18:24:13 1) gst-rtsp-server and your dvb-* pipeline Nov 10 18:24:17 2) ring-buffer Nov 10 18:24:58 is there already a ring-buffer element for gst? Nov 10 18:24:59 and in parallel the Coherence parts which should not interfere with yours Nov 10 18:26:34 apart from maybe some dbus methods to query and maybe start/stop some things Nov 10 18:26:56 ok back Nov 10 18:27:16 1) should be handled by dvb-daemon i think Nov 10 18:27:29 yep Nov 10 18:27:34 right Nov 10 18:27:40 there is no ring buffer element for gst tho there are some design notes wrt queue2Nov 10 18:31:11 yep, we've already tried that Nov 10 18:27:44 as it has to work without Coherence too Nov 10 18:28:52 wtay is the man to explain how to write a decent ring buffer element in gst Nov 10 18:30:05 dev, ps3 does pause/rewind in http streams? (you said it doesn't handle rtsp for mpegts) Nov 10 18:30:27 zaheerm: it does, with http byte-ranges Nov 10 18:30:51 dev, ps3 supports mpegts over http? Nov 10 18:31:11 zaheerm: i think twi already implemented that fd stuff Nov 10 18:31:18 i was meant to test that on the weekend, with a flumotion plug to act as a media server Nov 10 18:31:23 philn, what fd stuff? Nov 10 18:31:58 philn, if you mean fd passing between processes, flumotion does it between porters and http-streamer and http-server components Nov 10 18:33:03 zaheerm: twi has a branch of gst-rtsp-server and he told me he implemented fd-passing stuff, a bit like in flumotion Nov 10 18:33:16 or maybe i just misunderstood :D Nov 10 18:33:30 he has put multiple processes in gst-rtsp-server? Nov 10 18:33:38 philn: where's that branch? Nov 10 18:34:18 http://nnva.org/gst-rtsp-server.git }}}