GithubHelp home page GithubHelp logo

Comments (15)

mangui avatar mangui commented on June 23, 2024

Excellent idea ;-)

from bemtv.

flavioribeiro avatar flavioribeiro commented on June 23, 2024

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

from bemtv.

mangui avatar mangui commented on June 23, 2024

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...)

from bemtv.

flavioribeiro avatar flavioribeiro commented on June 23, 2024

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.

from bemtv.

mangui avatar mangui commented on June 23, 2024

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

from bemtv.

mangui avatar mangui commented on June 23, 2024

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

from bemtv.

flavioribeiro avatar flavioribeiro commented on June 23, 2024

great, looking deep on this issue right now

from bemtv.

flavioribeiro avatar flavioribeiro commented on June 23, 2024

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.

from bemtv.

mangui avatar mangui commented on June 23, 2024

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.

from bemtv.

flavioribeiro avatar flavioribeiro commented on June 23, 2024

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)

from bemtv.

flavioribeiro avatar flavioribeiro commented on June 23, 2024

@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. 👍

from bemtv.

flavioribeiro avatar flavioribeiro commented on June 23, 2024

@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?

from bemtv.

mangui avatar mangui commented on June 23, 2024

@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 ?

from bemtv.

flavio avatar flavio commented on June 23, 2024

@mangui: you addressed the wrong Flavio :)

from bemtv.

mangui avatar mangui commented on June 23, 2024

sorry ;-)

from bemtv.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.