State of rtmp support for XBMC
#1
Question 
Hi,
Reading though the general Internet and these forums I have seen many references to different patches, modifications and problems related to RTMP.
My questions are:
How currently is rtmp implemented in xbmc (or at least will be by 10.05)?
Is it based on rtmpdump's librtmp or a different librtmp?
Is it available to plugins/addons/scripts/etc.?
Is it built as a static or shared library (e.g. can a drop-in replacement be used)?
Does it support swf verification or not?
What needs to be changed (by the end-user) to support swf verification or rtmpe?
Does it support seeking on non-live streams?

Sorry for all the questions but I'd like to define exactly the current state in the SVN head (or the plan for 10.05) so I can go ahead and work out what I need to do to develop a plugin to play online videos utilising rtmp.

Thanks.
Reply
#2
adammw Wrote:Hi,
Reading though the general Internet and these forums I have seen many references to different patches, modifications and problems related to RTMP.
My questions are:
How currently is rtmp implemented in xbmc (or at least will be by 10.05)?
Is it based on rtmpdump's librtmp or a different librtmp?
Is it available to plugins/addons/scripts/etc.?
Is it built as a static or shared library (e.g. can a drop-in replacement be used)?
Does it support swf verification or not?
What needs to be changed (by the end-user) to support swf verification or rtmpe?
Does it support seeking on non-live streams?

Sorry for all the questions but I'd like to define exactly the current state in the SVN head (or the plan for 10.05) so I can go ahead and work out what I need to do to develop a plugin to play online videos utilising rtmp.

Thanks.

1). Very Current, by 10.05
2). from Mplayer, so rtmpdump
3). Yes
4). OS Specific questions require your OS as part of the question
5). Yes.
6). Yes
Reply
#3
EDIT: I feel really stupid, it seems I didn't read the comments well enough. The problem was the format changed to have the playpath inside the url (space separated) rather than with that setProperty thing. You can ignore this reply.

Quote:Yes, Yes, Yes

Great, I was thinking that XBMC took the wimpish approach of forgoing SWF Verification and using flvstreamer instead. In refering to the static/shared library, I was specifically asking about Win32 OS, but I assume it's shared as I can see a librtmp.dll in system\players\dvdplayer

I'm not sure if this is the right place to post the next question, but tell me if not.
Using code found on http://trac.xbmc.org/ticket/8971 I made a simple addon to test this support on r31595 nightly, but I can't seem to get it working.
I've never written an XBMC addon so I'm not sure where I'm going wrong.
Code:
"""
    Plugin for testing RTMP support
"""
import xbmc, xbmcgui, xbmcplugin

if ( __name__ == "__main__" ):
    rtmp_url="rtmp://localhost/vod"
    item = xbmcgui.ListItem("RTMPLocal")
    item.setProperty("PlayPath", "Get Smart")
    xbmc.Player(xbmc.PLAYER_CORE_AUTO).play(rtmp_url, item)

I should note that normal urls work (I tested it also with http://localhost/blah.mp4) and I also tested the RTMP url in rtmpdump.
Reply
#4
adammw Wrote:EDIT: I feel really stupid, it seems I didn't read the comments well enough. The problem was the format changed to have the playpath inside the url (space separated) rather than with that setProperty thing. You can ignore this reply.

The old format and item properties are still supported, but if you want to use new features like SWF verification, you need to use the new format. Any existing scripts that only need plain old rtmp should work without any changes (in their rtmp setup).
Reply
#5
Are there any directions on how to use the RTMPE?
Reply
#6
And the changes to support swf verification required along with rtmpe on windows would be great as well.
Reply
#7
Basje Wrote:Are there any directions on how to use the RTMPE?

I believe it's as simple as (for a plugin/addon):
Code:
"""
    Plugin for testing RTMP support
"""
import xbmc, xbmcgui, xbmcplugin

if ( __name__ == "__main__" ):
    rtmp_url="rtmpe://ten-flashope-e.vx.kitd.com/ondemand/19056/1395/geo/ausonly/2010/Q1/fox-glee-122-080710-sg1_700.flv"
    item = xbmcgui.ListItem("RTMPLocal")
    xbmc.Player(xbmc.PLAYER_CORE_AUTO).play(rtmp_url, item)

Note the rtmpe

kulprit Wrote:And the changes to support swf verification required along with rtmpe on windows would be great as well.

I haven't tested it, but as highlandsun said on ticket #8971, it should be like:
Code:
import xbmc, xbmcgui

rtmp_url = "rtmp://127.0.0.1/myapp playpath=foobar swfurl=http://www.bbc.co.uk/emp/10player.swf swfvfy=true"
item = xbmcgui.ListItem("RTMPLocal")
xbmc.Player(xbmc.PLAYER_CORE_DVDPLAYER).play(rtmp_url, item)

@highlandsun
I wasn't quite sure but was seeking one of those 'yes'es? I tried to seek (about +0:50 seconds) a non-live rtmp stream on r31595 but the video just crashed (the last 1/2 second of video and audio keep repeating). Is this a bug or simply not yet implemented?

Thanks for your great work and help,
Reply
#8
Yes, seeking is implemented. If it crashed for you, you should probably post the details in a new item in trac.

And yes, you've got the other info correct.
Reply

Logout Mark Read Team Forum Stats Members Help
State of rtmp support for XBMC0