Skip to content
This repository has been archived by the owner on Jun 24, 2022. It is now read-only.

Test another player implementation #18

Closed
flavioribeiro opened this issue Feb 16, 2014 · 15 comments
Closed

Test another player implementation #18

flavioribeiro opened this issue Feb 16, 2014 · 15 comments

Comments

@flavioribeiro
Copy link
Contributor

Test @mangui HLSprovider

@mangui
Copy link

mangui commented Feb 16, 2014

Excellent idea ;-)

@flavioribeiro
Copy link
Contributor Author

hey @mangui :-) I need to look closer at HLSprovider code, but it seems that I can instantiate my BemTVURLStream instead of URLStream on your _fragstreamloader.

I'll work on that on the next days.

https://github.com/flavioribeiro/bemtv/blob/631b251bc677fa1bd487b65853b0b69818c8565b/player/src/org/denivip/osmf/net/httpstreaming/hls/BemTVURLStream.as
https://github.com/mangui/HLSprovider/blob/master/src/org/mangui/HLS/streaming/FragmentLoader.as#L66

@mangui
Copy link

mangui commented Feb 17, 2014

Hi Flavio,
I quickly check your code.
if I understand the logic of bemtv, the fragment loading is done in JS (either through standard HTTP GET or through P2P).
this is a nice idea. I think it could also be applicable in a generic way in HLSProvider. it would avoid the crossdomain.xml issue when loading fragments.
Indeed, instantiating BemTVURLStream instead of URLStream in _fragstreamloader should do the trick.
let me know if it works. then I can adjust HLSProvider code so that this URLStream could be redefined in a seamless way, through an API.
the advantages of using HLSProvider is also that you will be able to support multiple players automatically (not only OSMF based...)

@flavioribeiro
Copy link
Contributor Author

Yeah, you got it. I'll work on build scripts also so you'll be able to build and run instances of bemtv in your machine.

OSMF have some bad points like buffer management. Since P2P negotiation can be somewhat costly, it would be great to handle buffer state better (and maybe introduce some delay on leechers), and that is just one of the points that I want to achieve using HLSprovider.

I'll tell you when I move with this issue. Let's keep in touch.

@mangui
Copy link

mangui commented Feb 17, 2014

great.
HLSProvider should be quite flexible in terms of buffer management. you wont have to deal with OSMF complexity.
let's keep in touch ! let me know about your progress,
Cheers,
Mangui

@mangui
Copy link

mangui commented Feb 18, 2014

Hi Flavio,

FYI I did some changes in HLSProvider/master to allow overriding URLStream seamlessly.
find example here: https://github.com/mangui/HLSprovider/blob/master/src/org/mangui/chromeless/ChromelessPlayer.as#L216

@flavioribeiro
Copy link
Contributor Author

great, looking deep on this issue right now

@flavioribeiro
Copy link
Contributor Author

Hi @mangui, I have good news. We have BemTV and HLSprovider up and running here: http://bem.tv/hlsprovider/, If you want to follow the flow you can look at your log console.

Unfortunatelly I couldn't use the URLStream interface on HLS instantiation, you can see the details here flavioribeiro/HLSprovider@424b613, it seems that the cast to URLStream is discarding my resourceLoaded() function.

I'm still experiencing stucks but it is far less than in OSMF and for sure it's troubles on my side. Since I'm not full time on this project, I'll investigate it later.

@mangui
Copy link

mangui commented Feb 18, 2014

great ! that was fast !
I checked, it is working fine but everything was downloaded from CDN, no peer available ... anyway your player could be a wonderful tool to share live TV. nice concept.
i will try to understand what is going wrong with URLStream overriding, as it would be easier to maintain if you can stick to a generic API.

@flavioribeiro
Copy link
Contributor Author

Try opening more than one tab on your browser (or open one chrome and firefox) or ask for a friend that's in the same city and telecom. BemTV matches peers that belongs to the same city and telecom carrier (the 'room' is actually a base64 of the connection AS plus the city name -> http://bem.tv:9000/room)

I'll document it better (I know, I'm promising a lot of things heheeh)

@flavioribeiro
Copy link
Contributor Author

@mangui, I've deprecated OSMF-based player and created a build system for your chromeless player (using my fork that changes the URLStream). I'll close this issue, but from now on I think we're going to talk a lot. 👍

@flavioribeiro
Copy link
Contributor Author

@mangui, the peers are getting chunks using p2p just on the playback "startup".. it seems that the player is dropping frames to avoid that users fall down in playlist.

That's exactly what I don't need, since I'm benefiting of this delays. I've looked at HLSNetStream to try to find any seek() function that reproduces my theory.. am I right?

@mangui
Copy link

mangui commented Feb 19, 2014

@flavio, not sure to understand your issue.
HLSProvider is not dropping frames ? or not on purpose.
if you are using adaptive streaming with multiple playlist, there is a bandwidth check done at startup (first segment of lowest level is downloaded. then download bitrate is computed. then if it is enough to switch to higher level, first segment of other level is downloaded instead. but this is configurable through hls API. (hls.startFromLowestLevel=true/false)
is this what you are referring to ?

could you share a log and spot where your issue is ?

@flavio
Copy link

flavio commented Feb 19, 2014

@mangui: you addressed the wrong Flavio :)

@mangui
Copy link

mangui commented Feb 19, 2014

sorry ;-)

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

3 participants