RTMP streaming client library support in XBMC
#16
Question 
@vulkanr, I remember that you said at the DEV CON you implemented a RTMP client in Boxee, right? Huh

Any chance we could get the patch to XBMC's DVDPlayer?, ...is it for libcurl, or FFmpeg, or other?

What are the pros verses cons for implementing this into cURL and trying to get it committed upstream?
http://curl.haxx.se/libcurl/
http://curl.haxx.se
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
#17
Wink 
Basje Wrote:So it won't work on Xbox at all?

I suspect that means it may need a bit of tweaking. Still it's a huge step forward.

I'm just pleased to see a chance that some progress will be made on RTMP. Wink
Reply
#18
spiff is on it I believe.
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
#19
TheBoxMan Wrote:I suspect that means it may need a bit of tweaking. Still it's a huge step forward.

I'm just pleased to see a chance that some progress will be made on RTMP. Wink

Well, I tried to add it to the Xbox solution file. But now it won't compile at the moment, so I have to look into it some more.

But I just saw that revision 13674 was checked in which included RTMP support for linux. Is there any chance that somebody with more merging experience can get it into the Xbox branche?
Reply
#20
I played around with the RTMP streaming a bit last night, but wasn't able to get it to connect to stream.

this is an open source RTMP stream server to test with:
http://osflash.org/red5

There is already a package in ubuntu for it so just
sudo apt-get install red5

it comes ready to go just turn off firewall and you can test it with url:
rtmp://localhost/oflaDemo/IronMan.flv

VLC has support in their nightlies so you can use those to confirm that you have the server setup and working before testing against XBMC.

It is stuck in loop right now trying to connect to server.

Here is the log:
Code:
03:45:20 T:3057051584 M:200495104   DEBUG: Clearing cached fileitems [/home/deeceefar2/.xbmc/]
03:45:20 T:3057051584 M:200495104   DEBUG: CGUIMediaWindow::GetDirectory (/home/deeceefar2/.xbmc/)
03:45:20 T:3057051584 M:200495104   DEBUG:   ParentPath = [/home/deeceefar2/]
03:45:20 T:3057051584 M:200495104 WARNING: CreateFile, error 2 opening file </tmp/xbmc/6a68f3a1.fi>, flags:800, mode:100.
03:45:20 T:3057051584 M:200495104   DEBUG: Sort, sorting took 0 millis
03:45:20 T:2926091152 M:200495104   DEBUG: Running thread 2926091152
03:45:20 T:2926091152 M:200495104   DEBUG: thread start, auto delete: 0
03:45:20 T:2934483856 M:200495104   DEBUG: Running thread 2934483856
03:45:20 T:2934483856 M:200495104   DEBUG: thread start, auto delete: 0
03:45:20 T:2942876560 M:200495104   DEBUG: Running thread 2942876560
03:45:20 T:2942876560 M:200495104   DEBUG: thread start, auto delete: 0
03:45:20 T:2926091152 M:200495104   DEBUG: staticThread, deleting thread graphic context
03:45:20 T:2926091152 M:200495104   DEBUG: Thread 2926091152 terminating
03:45:20 T:2934483856 M:200495104   DEBUG: staticThread, deleting thread graphic context
03:45:20 T:2934483856 M:200495104   DEBUG: Thread 2934483856 terminating
03:45:20 T:2942876560 M:200495104   DEBUG: staticThread, deleting thread graphic context
03:45:20 T:2942876560 M:200495104   DEBUG: Thread 2942876560 terminating
03:45:21 T:3057051584 M:200511488   DEBUG: OnKey: 61480 pressed, action is 4
03:45:21 T:3057051584 M:200511488   DEBUG: OnKey: 61478 pressed, action is 3
03:45:21 T:3057051584 M:200511488   DEBUG: OnKey: 61478 pressed, action is 3
03:45:21 T:3057051584 M:200400896   DEBUG: OnKey: 61478 pressed, action is 3
03:45:22 T:3057051584 M:200511488   DEBUG: OnKey: 61453 pressed, action is 7
03:45:22 T:3057051584 M:200511488   DEBUG: new file set audiostream:0
03:45:22 T:3057051584 M:200511488   DEBUG: CPlayerCoreFactor::GetPlayers(rtmp://localhost/oflaDemo/IronMan.flv)
03:45:22 T:3057051584 M:200511488    INFO: Loading skin file: DialogProgress.xml
03:45:22 T:3057051584 M:200511488   DEBUG: Load DialogProgress.xml: 1.63ms (0.71 ms xml load)
03:45:22 T:3057051584 M:200511488   DEBUG: ------------------- GUI_MSG_WINDOW_INIT
03:45:22 T:3057051584 M:200511488   DEBUG: Progress dialog
03:45:22 T:3057051584 M:200511488   DEBUG: -------------------
03:45:22 T:3057051584 M:200511488   DEBUG: Alloc resources: 1.98ms (0.01 ms skin load, 0.08 ms preload)
03:45:22 T:2951269264 M:200421376   DEBUG: Running thread 2951269264
03:45:22 T:2951269264 M:200421376   DEBUG: thread start, auto delete: 1
03:45:22 T:3057051584 M:200421376  NOTICE: DVDPlayer: Opening: rtmp://localhost/oflaDemo/IronMan.flv
03:45:22 T:3057051584 M:200421376 WARNING: CDVDMessageQueue::Put MSGQ_NOT_INITIALIZED
03:45:22 T:3007871888 M:200421376   DEBUG: Running thread 3007871888
03:45:22 T:3007871888 M:200421376   DEBUG: thread start, auto delete: 0
03:45:22 T:3007871888 M:200421376  NOTICE: Creating InputStream
03:45:22 T:3007871888 M:200421376  NOTICE: Creating Demuxer
03:45:22 T:3007871888 M:200421376   DEBUG: START AMF Object Dump:
03:45:22 T:3007871888 M:200421376   DEBUG: Property: <no-name. STRING: onBWDone>
03:45:22 T:3007871888 M:200421376   DEBUG: Property: <no-name. NUMBER: 2.00>
03:45:22 T:3007871888 M:200421376   DEBUG: END AMF Object Dump:
03:45:22 T:3007871888 M:200421376   DEBUG: server sent ping. type: 0
03:45:22 T:3007871888 M:200421376   DEBUG: START AMF Object Dump:
03:45:22 T:3007871888 M:200421376   DEBUG: Property: <no-name. STRING: _result>
03:45:22 T:3007871888 M:200421376   DEBUG: Property: <no-name. NUMBER: 1.00>
03:45:22 T:3007871888 M:200421376   DEBUG: Property: NULL
03:45:22 T:3007871888 M:200421376   DEBUG: Property: OBJECT ====>
03:45:22 T:3007871888 M:200421376   DEBUG: START AMF Object Dump:
03:45:22 T:3007871888 M:200421376   DEBUG: Property: <Name: level,  STRING: status>
03:45:22 T:3007871888 M:200421376   DEBUG: Property: <Name: code,  STRING: NetConnection.Connect.Success>
03:45:22 T:3007871888 M:200421376   DEBUG: Property: <Name: description,  STRING: Connection succeeded.>
03:45:22 T:3007871888 M:200421376   DEBUG: END AMF Object Dump:
03:45:22 T:3007871888 M:200421376   DEBUG: END AMF Object Dump:
03:45:22 T:3007871888 M:200421376   DEBUG: HandleInvoke, received result for method call <connect>
03:45:22 T:3007871888 M:200421376   DEBUG: sending ping. type: 0x0003
03:45:22 T:3007871888 M:200421376   DEBUG: START AMF Object Dump:
03:45:22 T:3007871888 M:200421376   DEBUG: Property: <no-name. STRING: _result>
03:45:22 T:3007871888 M:200421376   DEBUG: Property: <no-name. NUMBER: 2.00>
03:45:22 T:3007871888 M:200421376   DEBUG: Property: NULL
03:45:22 T:3007871888 M:200421376   DEBUG: Property: <no-name. NUMBER: 1.00>
03:45:22 T:3007871888 M:200421376   DEBUG: END AMF Object Dump:
03:45:22 T:3007871888 M:200421376   DEBUG: HandleInvoke, received result for method call <createStream>
03:45:22 T:3007871888 M:200421376   DEBUG: sending ping. type: 0x0003
03:45:32 T:3007871888 M:200114176   DEBUG: server sent ping. type: 6
03:45:32 T:3007871888 M:200114176   DEBUG: sending ping. type: 0x0007
Reply
#21
still missing a few bits and pieces - it's WIP
Reply
#22
spiff Wrote:still missing a few bits and pieces - it's WIP
Will it also be in the Xbox release?
Reply
#23
stop hounding me already. YES, ofc it will be ported to xbox once it's done
Reply
#24
spiff Wrote:YES, ofc it will be ported to xbox once it's done

You're teh master! Nod
Reply
#25
Thumbs Up 
Great, thanks spiff and vulkanr!

via libcurl or?

Cool
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
#26
nope. via lib/libRTMP and dvdplayer's input stream.
Reply
#27
Excellent. Thanks spiff!
Reply
#28
FYI; jmarshall merged the RTMP from the linuxport to the Xbox version of XBMC last week.
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
#29
Question 
How much work would it be and would there be any benifits to submitting this a patch to cURL for libcurl?

I know that if added to libcurl then they would maintain it and other project could contribute as well Wink

...or maybe submit otherwise it as a patch to FFmpeg instead? FFmpeg have RTP, RTPS, and HTTP clients integrated directly into libavformat (as demuxers) so why could it not have a RTMP client as well? BOXEE would surely score some more points with the general open source development community if they submitted patches to FFmpeg that got accepted to their SVN (warning though that they are very strickt about code formatting and even mailing etiquette and such so you would probably have to have the code reviewed by them several times for you to revise and resubmit).
https://lists.mplayerhq.hu/mailman/listi...peg-devel/
http://www.mplayerhq.hu/DOCS/tech/patches.txt
GPL is OK but LGPL lisenced is prefered:
http://ffmpeg.mplayerhq.hu/faq.html#SEC43

Huh
Reply
#30
Gamester17 Wrote:FYI; jmarshall merged the RTMP from the linuxport to the Xbox version of XBMC last week.

I already did a build, but I cannot get it to word. I will post a debug log somewhere today.
Reply

Logout Mark Read Team Forum Stats Members Help
RTMP streaming client library support in XBMC1