Add libnemesi (NeMeSI) RTSP/RTP/RTCP/SDP streaming-client library?
#1
Question 
I like to suggest/request that someone aught to look into if it would be a good idea and benifitial to integrate the libnemesi library either into XBMC's "FileSystem" layer or directly into the main player cores (ei. DVDplayer and PAPlayer)? That way both DVDplayer and PAPlayer could utilize that library to stream from RTSP and RTP/RTCP (ie. internet audio/video streams, with SDP and authentication support). This would mean that XBMC no longer will have to play internet (or intranet) video and radio streams with MPlayer. libnemesi does also support Creative Commons licensing meta-data for audio/video streaming (via libCCstreaming which is part of libnemesi), but I assume that part would not be a priority to implement. I also guess that we will not be able to stream Real Networks RealAudio to PAPlayer as libnemsi does not yet support any of those codecs, and I'm not either sure if the libnemesi library support streaming from RDT (Real Data Transport streaming-protocol, which is the streaming protocol that Real Networks streams uses), libnemesi does however support streaming QuickTime.

More information:
libnemesi library (from the latest trunk in the SVN of the NeMeSI project) is a SDP, RTSP and RTP/RTCP Open Media Streaming Client Library. It is designed to "let you add multimedia streaming playback in your applications in a quick and straightforward way". The libnemesi library is derived from the matured experience their developed gained from NeMeSi, is fully compliant with IETF's standards for real-time streaming of multimedia contents over Internet. The libnemesi library is a streaming client that allows user to enjoy playback of multimedia files with low latency transport over IP-based networks). libnemesi (and NeMeSI) source code does contain example code and there are partially doxygenized headers (Doxygen code documentation), that hopefully that can help porting.

libnemesi supported protocols for reference (fully compliant with IETF standards):
* RTSP = Real-Time Streaming Protocol (RFC 2326)
* RTP/RTCP = Real-Time Transport Protocol/RTP Control Protocol (RFC 3550)
** RTP Profile for Audio and Video Conferences with Minimal Control (RFC3551)
* SDP = Session Description Protocol
* Clean API for controlling protocols (seek, play, pause)

The library provides two different API:
* High level: the simplest abstraction to get the demuxed streams out of a resource uri.
* Low level: provides access to all the rtp, rtcp, rtsp primitives in order to develop advanced applications.
http://live.polito.it/documentation/libnemesi
http://live.polito.it/documentation/libnemesi/internals


What do you guys think?, ...any volunteers? Huh
Reply
#2
Smile 
Bump!, any volunteer(s)?

FYI; MediaPortal new TV-Server (MediaPortal's TV-Engine V3 which acts as a HTPC PVR back-end TV-server) now uses a RTSP (unicast) wrapped MPEG-2 Transport Stream (MPEG-TS) to stream video to the MediaPortal front-end, so if XBMC could be made to read RTSP streams then XBMC should be able to play those MediaPortal TVserver streams (including a Live-TV stream), ...and maybe in the future even work as a MediaPortal front-end, changing channels and eveything.

PS! [EMAIL="[email protected]"]Luca Barbato[/EMAIL], a MPlayer developer has said he will start to integrate libnms into MPlayer (for Linux) when he gets time.
Reply
#3
i'll probably add libnms or the support that is in libavformat to dvdplayer at some point, no direct timeframe thou.
Always read the XBMC online-manual, FAQ and search the forum before posting.
Do not e-mail XBMC-Team members directly asking for support. Read/follow the forum rules.
For troubleshooting and bug reporting please make sure you read this first.


Image
Reply
#4
oki, ...the only reason that I suggested to add adding libnemesi to the "FileSystem" layer is that I thought that would be the simplest way to enable player-core independence (ie. PAPlayer, DVDPlayer and MPlayer could all use it, ...and again from what I understand, at least the DVDPlayer and PAPlayer would both greatly benifit from libnemesi since niether of them nativly support these types of stream protocols).
Reply
#5
Question 
From the SVN changelog:
Quote:2007-06-30 9486 added: rtsp support in libavformat for dvdplayer, untested as I haven't found any rtsp stream of supported type (mp3, h264, aac), wmv streams from windows media player is not supported at the moment
Quote:added: allow dvdplayer to use ffmpegs built-in stream handlers for rtp/rtsp/sdp/udp streams. it's abit unreliable at the moment on xbox atleast as it might lockup xbmc if there is nothing to stream. (this requires recompiled ffmpeg dll's, with network and protocols enabled).

How does FFmpeg's built-in rtp/rtsp/sdp/udp stream handlers compare to the above suggested libnemesi library (other than the fact that FFmpeg's built-in stream handlers will not enable player-core independence, so PAPlayer and MPlayer can not use it as well, only DVDPlayer)

Huh

PS! The NeMeSI/libnms website seems to currently be down but you can download the latest stable source code package here:
http://www.paldo.org/index-section-packa...84332.html
and mirror here:
http://slackware.sukkology.net/packages/libnms/
Reply
#6
wouldn't be possible anyway. you still need a RTSP demuxer in the player for it to work. It sends audio/video as separate streams. (well okey, you might have added a muxer in the file layer that muxed it into a ts stream on the fly, wich then was passed along, but seems abit overly complicated.)

as of yet i've not gotten it to work with anything Smile. haven't found samples streams. Only thing i managed to get to give a stream was windows media sharing, but that only provides rtsp streams for wmv/wma material, and that isn't standardised, nor could I find any good document on the rtp format for that stuff.
Always read the XBMC online-manual, FAQ and search the forum before posting.
Do not e-mail XBMC-Team members directly asking for support. Read/follow the forum rules.
For troubleshooting and bug reporting please make sure you read this first.


Image
Reply
#7
Smile 
Ah, so if you wanted to implement the libnms library then it be best to implement it directly into DVDPlayer (or FFmpeg?) and PAPlayer separately?

elupus Wrote:...nor could I find any good document on the rtp format for that stuff.
What type/kind of documentation are you looking for?, not just IEFT RFC 3550?
I guess the Doxygen code documentation in the libnms code is of no use then?

There is also some external links in the wikipedia article:
http://en.wikipedia.org/wiki/Real-time_T...t_Protocol
Reply
#8
MPlayer now supports Real RTSP authentication and the libnemesi streaming library as an alternative to live555. Also, many QuickTime over RTSP streams can now be played. There have been various improvements to TV streaming, Intel Mac support should be complete.

[PATCH] libnemesi support in mplayer
http://lists.mplayerhq.hu/pipermail/mpla...53743.html
Quote:Here is an initial patch to have libnemesi[1] handle rtsp instead of
live555. (you can chose at configure which one to use)

Beside seeking (that is being fixed on the library side) it seems to
work fine at least for h264 and mp3.

We are in the process of cleaning up the library in order to have its
first formal release, so tests and feedbacks are more than welcome.

lu

[1] http://live.polito.it/documentation/libnemesi

--

Luca Barbato

Gentoo/linux Gentoo/PPC
http://dev.gentoo.org/~lu_zero

-------------- next part --------------
A non-text attachment was scrubbed...
Name: mplayer-nemesi.diff
Type: text/x-patch
Size: 21750 bytes
Desc: not available
Url : http://lists.mplayerhq.hu/pipermail/mpla...chment.bin
Again, would this not be a good choise for XBMC's DVDPlayer? Huh

PS! libnemesi is now released under the GNU Lesser General Public License version 2.1 so it could be integrated into FFmpeg and submit it as a patch to FFmpeg 'upstream' so they can help maintain it and more projects can enjoy the benitits of it?
Reply
#9
since we already support rtsp through libavformat nowadays i don't see the point
Always read the XBMC online-manual, FAQ and search the forum before posting.
Do not e-mail XBMC-Team members directly asking for support. Read/follow the forum rules.
For troubleshooting and bug reporting please make sure you read this first.


Image
Reply
#10
I think I found a good point now; FFmpeg does not support receiving H.263 in a RTP input stream (as support for the H.263 payload is not implemented). Also, as I understand it the RTSP/RTP client code in FFmpeg has no maintainer (only the RTSP/RTP server part in FFmpeg has recently got some needed attention).

Can someone confirm which which of these protocols that FFmpeg currently supports streaming as a client (receiving an input stream)?
Always read the XBMC online-manual, FAQ and search the forum before posting.
Do not e-mail XBMC-Team members directly asking for support. Read/follow the forum rules.
For troubleshooting and bug reporting please make sure you read this first.
Reply
#11
it's not very likely that this will happen in the filesystem as it would require some sort of muxer to get everything into one stream.

libnemesi could be added to dvdplayer with some hacks. the problem is that one rtsp stream results in multiple input streams. one for audio, one for video... this is not really supported in dvdplayer at the moment.

reason it works with ffmpeg, is that it handles all that stuff internally (and even they think it's a hack :/ )
Always read the XBMC online-manual, FAQ and search the forum before posting.
Do not e-mail XBMC-Team members directly asking for support. Read/follow the forum rules.
For troubleshooting and bug reporting please make sure you read this first.


Image
Reply
#12
Question 
is it then possible to take only the 'good' code parts out of libnmsi and intregrate them info FFmpeg?
...if it can be in a not too 'hackish' way then patches could be submitted upstream to FFmpeg? Huh

PS! libnmsi is LGPL lisenced so at least the license is ok for FFmpeg.
Always read the XBMC online-manual, FAQ and search the forum before posting.
Do not e-mail XBMC-Team members directly asking for support. Read/follow the forum rules.
For troubleshooting and bug reporting please make sure you read this first.
Reply
#13
well libnemesi support is added to mplayer now, and didn't look impossible to backport. might do that.

and there was a libnemesi patch for ffmpeg too, but I think they rather build it themselves.
Always read the XBMC online-manual, FAQ and search the forum before posting.
Do not e-mail XBMC-Team members directly asking for support. Read/follow the forum rules.
For troubleshooting and bug reporting please make sure you read this first.


Image
Reply
#14
rtsp://85.214.87.175/science-fiction-tv

vlc reports this stream as containing wmv3 and wma2
wmp10 reports it as containing wma 9.1 and wmv 9

Is this supported by xbmc?
Reply
#15
I doubt it but have you tried it? http://wiki.xbmc.org/?title=HOW-TO:_Play...et_Streams
Always read the XBMC online-manual, FAQ and search the forum before posting.
Do not e-mail XBMC-Team members directly asking for support. Read/follow the forum rules.
For troubleshooting and bug reporting please make sure you read this first.
Reply

Logout Mark Read Team Forum Stats Members Help
Add libnemesi (NeMeSI) RTSP/RTP/RTCP/SDP streaming-client library?0