Name is required.
Email address is required.
Invalid email address
Answer is required.
Exceeding max length of 5KB

JW6/HLS Support


Using JW 5.9 and adaptive provide, I have implemented/compiled code to parse h.264 meta data and deliver view the JW java script events.

I am now reviewing the future direction of the JW Player and I am wondering about the future of HLS. HLS clearly seems supported in JW 6 except I see numerous posts and source code repo comments indicating the following...

* adaptive provider has been removed from source code repo
* HLS is being built into JW 6 (not a separate provider)
* HLS support is a separate project from JW 6 (reference to Courtnay)
* HLS is only being kept for premium JW player (licensed)

These comments seem to be on occasion contradictory.

Can I get some clarification...

Will HLS be supported in JW - non commercial version and will the HLS based source code for Flash be available as open source?

I am interested in continuing to upgrade JW Player (even looking into JW 6 beta) but we require customizing HLS parsing implementation for in-stream meta data (both meta data in H.264 and handling ID3 timed meta data)

34 Community Answers

JeroenW

JW Player Support Agent  
1 rated :

We will be supporting HLS in JW6, but only in the (paid for) Premium and Ads editions. We will not add HLS support to the Free edition, nor will we place the code in our open-source repository.

We do not yet support ID3 metadata, but are looking into exposing that through the player (using the onMeta() API call we also use for other metadata).

I’m not familiar with in-H264 metadata though, can you elaborate on that?

JW Player

User  
0 rated :

Will a beta of JW6 that supports HLS in Flash be available?

How soon will JW6 be released?

JeroenW

JW Player Support Agent  
0 rated :

That is available already. Please email developers [at] longtailvideo for a copy.

JW6 will get released within a few weeks. Next week was the original plan, but we’re set back a bit due to the hurricane…

JW Player

User  
0 rated :

Thanks for following up.

Looking forward to hearing back from developers [at] longtailvideo

JW Player

User  
0 rated :

Wow, super impressed by the JW6 beta with HLS support!!!

The only problem I'm running into is plugin support. I was able to test my plugin using the previous JW6 beta, but with this version I'm getting the following error:

Could not load plugins:
Incompatible player version

JeroenW

JW Player Support Agent  
0 rated :

Ah yes, that’s indeed correct. We made a small change to the plugin API to explictly break old plugins, so authors are aware of the upgrades.

Our new plugin SDK explains which call you have to add to your plugin (“target”). You should also look into the docs for any additions to the API; we added some interesting stuff e.g. for quality levels and hiding the controls:

http://developer.longtailvideo.com/trac/browser/sdks/jw6-plugin-sdk

JW Player

User  
0 rated :

Okay, thanks for the info.

Unfortunately, still having trouble. I tried using the sample apitester example and still getting the same error. Can you look at the example below and provide feedback.

http://planet.casadehood.com/jwplayer/jw6-hls-beta/hls-test-apitester-plugin.html

JW Player

User  
0 rated :

I tried using the standard jw6 beta and am having the same problem.

http://planet.casadehood.com/jwplayer/jw6-beta/test-apitester-plugin.html

JeroenW

JW Player Support Agent  
0 rated :

Did you re-compile the plugin with the JW6 SWC, extending the player6plugin and including the target() function that returns 6.0?

If all is correct, can you show me the code for your plugin? All the implementation isn’t needed; just the player instantiation calls.

JW Player

User  
0 rated :

I can't even get the sample API tester plugin to work that was included with the SDK.

See the following link:

http://planet.casadehood.com/jwplayer/jw6-beta/test-apitester-plugin.html

JW Player

User  
0 rated :

It seems there might be a discrepancy in the documentation vs the example:

jwplayer().registerPlugin('apitester', '6.0', template,'apitester.swf');

jwplayer().registerPlugin('apitester', template,'apitester.swf');

Which is correct?

JeroenW

JW Player Support Agent  
0 rated :

The top one is correct. Where is the bottom one coming from? It seems like we have a bug in the plugin or docs…

JW Player

User  
0 rated :

That's funny, because when I use the top option:

jwplayer().registerPlugin('apitester', '6.0', template,'apitester.swf');

the player throws an error.

There was an error while handling a listener: TypeError: '6.0' is not a constructor (evaluating 'new j(o,n,p)') function e() {if(a.typeOf(l.playlist)=="array"&&l.playlist.length<2){if(l.playlist.length==0||!l.playlist[0].sources||l.playlist[0].sources.length==0){m();return}}if(g.getStatus()==a.loaderstatus.COMPLETE){for(var r=0;r<l.modes.length;r++){if(l.modes[r].type&&d[l.modes[r].type]){var s=l.modes[r].config;var p=a.extend({},s?d.config.addConfig(l,s):l);var q=new d[l.modes[r].type](h,l.modes[r],p,g,o);if(q.supportsConfig()){q.addEventListener(c.ERROR,f);q.embed();i(o,p.events);return o}}}if(l.fallback){a.log("No suitable players found and fallback enabled");new d.download(h,l,m)}else{a.log("No suitable players found and fallback disabled")}}}

This can be found at http://planet.casadehood.com/jwplayer/jw6-beta/test-apitester-plugin.html

JW Player

User  
0 rated :

We are very disappointed that the HLS will not be open source. We have gone through a lot of effort to develop streams that will be supported both on the ipad and various browsers. Developing a single interface stream like HLS seems to be working out as a great solution and jwplayer is a key part of that. We have done enhancements to the adaptive code for a few bug fixes and to integrate h264 meta data. Also, we were hoping to accelerate the integration of ID3 meta data. We are most interested in "timed" ID3 meta data that is added as a stream (not just header/track information at the front). Do you anticipate handling "timed" ID3 meta data as separate stream in the HLS?

Regarding your question on ....

"I'm not familiar with in-H264 metadata though, can you elaborate on that?"

We are currently creating h264 data that contains SEI packets with sei payload type 5 (user unregistered). We are placing various different content that contains information that is in context to the video. One example is lat/lon location from gps.

JeroenW

JW Player Support Agent  
0 rated :

@Dustin: you are totally right; the player inside the plugin SDK is actually an older version. I just checked in a version that is more recent and now the test in the plugin SDK actually works. Sorry for that…

@Patrick: We are investigating exposing the timed ID3 metadata from HLS. A ticket on our developer site (#1753) exists for that.

I didn’t know one could add metadata to SEI packets. That sounds interesting too. Does that work on iOS though?

As to (not) open-sourcing HLS, I’m sure you understand that implementing this (plus investigation and reverse engineering) was a tremendous effort and it’s not something we want competing players to copy overnight. On our side, we understand we need to move fast with adding bugfixes/enhancements, since our customers cannot modify the source code themselves.

JW Player

User  
0 rated :

Can I assume the JW6 HLS beta (6.0.2585) is also not compatible with the new plugins SDK?

JeroenW

JW Player Support Agent  
0 rated :

Yes indeed, that update happened in 2588:

http://developer.longtailvideo.com/trac/changeset/2588

We’re about to release JW6 next week. In there, both HLS and the new plugin call will be present.

JW Player

User  
0 rated :

Okay, thanks for the clarification. Can't wait for the official release.

JW Player

User  
0 rated :

Back to the SEI packets....basically, this is just meta data that can be added to h.264 stream. To my knowledge, there is no video player that will do anything with this data. We tweaked your adaptive player to parse these SEI packets and make a call to the onMeta function. This works well for non-iOS running flash.

Unfortunately, iOS video player will not handle it. For the iOS environment, we are looking at parsing the h.264 server side to pull out the SEI meta data. The server would then need to build an ID3 stream and mux it into the ts stream.

If your player handles ID3 stream for both environments (iOS and flash) and makes the call to onMeta, then we can move toward 1 solution of implementing the ID3 stream. Do you anticipate the ID3 stream working in all environments (iOS (html5), non-iOS (flash, non-iOS (html5)?

JeroenW

JW Player Support Agent  
0 rated :

The ID3 calls can be made to work on Flash/desktops. It should be possible to get them to work on iOS (haven’t done any tests yet). On HTML5/desktops (and Android), this won’t work though. There’s no HLS support on these platforms.

JW Player

User  
0 rated :

From my limited testing, it seems the player is over eager to switch streams even though the bandwidth reported should be able to sustain the stream. See my sample below.

http://planet.casadehood.com/jwplayer/tests/hls-nke-lam-test.html

Any idea on why this is happening?

JW Player

User  
0 rated :

I don't recall the beta being so twitchy...

JeroenW

JW Player Support Agent  
0 rated :

Yeah, there’s a bug in 6.0 that as the player select a bitrate that 3/2 the bandwidth (instead of 2/3). We’ve fixed this since and are rolling this out as part of a 6.1 update in 3 weeks. Sorry for the miss…

JW Player

User  
0 rated :

Okay, thanks for the update...

JW Player

User  
0 rated :

What's the ETA of 6.1 update?

Waiting patiently for update before rolling out into production environment.

Thanks,

Dustin

Ethan Feldman

JW Player Support Agent  
0 rated :

No Firm ETA, but soon!

JW Player

User  
0 rated :

I just downloaded 6.1.2972 which is now available in my account.

I'm very disappointed, HLS in flash support with this version seems worse than the previous...

Please try for yourself:

6.1.2972
http://planet.casadehood.com/jwplayer/tests/hls-6-1-2972-test.html

6.0.2813
http://planet.casadehood.com/jwplayer/tests/hls-6-0-2813-test.html

Am I missing something?

Ethan Feldman

JW Player Support Agent  
0 rated :

We will take a look, please leave this up.

JeroenW

JW Player Support Agent  
0 rated :

Hmm, this is super weird; the stream doesn’t work at all with me. I presume that’s also what you see?

JW Player

User  
0 rated :

Exactly! It works fine with the previous version... In my testing only the first ts segment will load and play, but nothing beyond it.

JeroenW

JW Player Support Agent  
0 rated :

OK, we’re going to fix this and then roll out a patch. Seems like a 6.0 to 6.1 regression:

http://developer.longtailvideo.com/trac/ticket/1861

JW Player

User  
0 rated :

How will I know when the patch is available?

JeroenW

JW Player Support Agent  
0 rated :

Can you send me an email? jeroen [at] …

I’ll send you the patched version.

JW Player

User  
0 rated :

Email sent!

This question has received the maximum number of answers.