HTTP Live/Dynamic Streaming support?
#1
Hockeystreams.com, a donation hockey streaming site, is soon offering a dynamic streaming format which I'd like to see supported in the XBMC plugin here: https://github.com/jlongman/xbmc-hockeystreams-plugin. It already supports wmv and their other formats (except silverlight).

They have an example (non-live) stream at http://www.hockeystreams.com/preview/flash. Immediately it is obvious they are using strobemediaplayback - an open-source flash-based player. Looking at the play file available it looks like:
Code:
<manifest xmlns="http://ns.adobe.com/f4m/1.0">
<id>livestream1Seg1</id>
<streamType>recorded</streamType>
<duration>228.50800000000001</duration>
<bootstrapInfo profile="named" id="bootstrap7482">
AAACG2Fic3QAAAAAAAAAGwAAA[shortened - its base64]
</bootstrapInfo>
<media streamId="livestream1Seg1" url="livestream1Seg1" bitrate="650" bootstrapInfoId="bootstrap7482">
<metadata>
AgAKb25NZXRh[shortened - its base64]
</metadata>
</media>
<bootstrapInfo profile="named" id="bootstrap7511">
AAABe2Fic3QAAAAAAAAAEQAAAAPoAAAA[shortened - its base64]
</bootstrapInfo>
<media streamId="livestream2Seg1" url="livestream2Seg1" bitrate="3200" bootstrapInfoId="bootstrap7511">
<metadata>
AgAKb25NZX [shortened - its base64]</metadata>
</media>
</manifest>

wireshark'ing the connection it accesses via http urls that looks like:

/vod/PREMIUM_HSTV_24/livestream2Seg1Seg1-Frag19, Frag20, Frag21, etc. These are clearly the dynamic streaming fragments at the 3200 bitrate.

Can I play this in xbmc? How? I've tried an rtmp url but don't know the PlayPath required - it can't find any variations of the path I've tried - and in any case the flash client doesn't use rtmp.

Code:
#rtmp url is the reference to the f4m file quoted above
SWFObject = 'http://www5.hockeystreams.com/testing/strobe/StrobeMediaPlayback.swf'
        print SWFObject
        rtmp_path = str(rtmp_path).replace('http','rtmp')
        #rtmp_path = rtmp_path.replace('.f4m','')
        #rtmp_path += "Seg1-Frag19"
        streamURL = str(rtmp_path) + " swfUrl=" + SWFObject + " swfVfy=true" + " live=false"
        # + " live=true"
        print streamURL
        #addLink(name, name, '', streamURL, iconimage, 1)

        item = xbmcgui.ListItem(name, iconImage="DefaultVideo.png", thumbnailImage=iconimage)
        item.setInfo( type="Video", infoLabels={ "Title": name } )
        #item.setProperty("PageURL", pageUrl)
        item.setProperty("SWFPlayer", SWFObject)
        item.setProperty("PlayPath", "mp4:livestream2Seg1")
        item.setProperty("IsLive", "false")
        item.setProperty("tcUrl", rtmp_path)

        xbmc.Player(xbmc.PLAYER_CORE_DVDPLAYER).play(rtmp_path, item)

Any help appreciated!
Reply
#2
Yep they're not running rtmp. They are running HTTP Live Streaming and/or HTTP Dynamic Streaming, which it looks like the mlbtv plugin has a binary to work around... So I;m guessing there isn't an xbmc solution.
Reply
#3
Yeah, HLS is very limited at this time see this thread http://forum.xbmc.org/showthread.php?tid=94552

It may still work if you don't need stream selection or decryption.
Reply
#4
Thanks for the pointer, I'll look at it asap.

Stream selection might be nice, decryption is not an issue, but logging in might be important.
Reply
#5
Looks like it works using a nightly build with a lot of skipping and noise. Thanks for the pointer and I'll look at it some more.
Reply

Logout Mark Read Team Forum Stats Members Help
HTTP Live/Dynamic Streaming support?0