Comments (15)
Excellent idea ;-)
from bemtv.
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.
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.
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.
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.
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.
great, looking deep on this issue right now
from bemtv.
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.
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.
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.
@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.
@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.
@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.
@mangui: you addressed the wrong Flavio :)
from bemtv.
sorry ;-)
from bemtv.
Related Issues (20)
- Use other peers currentFragmentUrl to fill startup buffer
- Change _.each to _.find
- PLAYING_BUFFERING issue HOT 1
- jwplayer/flowplayer support HOT 1
- secure urls HOT 6
- npm WARN This failure might be due to the use of legacy binary "node" HOT 3
- Improve tutorial
- Access-Control-Allow-Origin problem HOT 8
- problem using stats plugin - nerd box HOT 6
- seek not working HOT 1
- VoD support HOT 1
- Extract core algorithm HOT 1
- Sync main.js with clappr built-in hls plugin
- viewing stream on firefox laggy HOT 3
- Tutorial installation problem HOT 2
- Update COTURN HOT 1
- Configure redis database for COTURN
- HLS querystring in test page HOT 1
- Amazon S3 HOT 5
- adobe flash
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from bemtv.