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

Flash HTTP Streaming -- Support?


Hi there,

I'm hearing a lot about "Flash HTTP Streaming" -- can someone shed some light on if JWPlayer supports this and why this is so important? Is this basically the same as Apple's HTTP Live Stream technology (HLS) except for Flash players?

Thanks,
Steven

100 Community Answers

Ethan Feldman

JW Player Support Agent  
0 rated :

The JW Player supports this – http://www.longtailvideo.com/support/jw-player/jw-player-for-flash-v5/12534/video-delivery-http-pseudo-streaming

JW Player

User  
-1 rated :

Hi there,

I'm not referring to "pseudo-streaming", but rather this:

http://www.wowzamedia.com/forums/content.php?111

It is not pseudo-streaming, but rather something similar to Apple's HLS (HTTP Live Streaming) protocol and Microsoft's Smooth Streaming.

The link you sent in your post actually seems to make this distinction with this statement: "HTTP Pseudostreaming should not be confused with HTTP Dynamic Streaming. The latter is a brand-new mechanism soley supported by the Flash Plugin 10.1+ that works by chopping up the original video in so-called chunks of a few seconds each. The videoplayer seamlessly glues these chunks together again. The JW Player does not yet support HTTP Dynamic Streaming."

So, does that mean the JW Player does not (still) support this new HTTP Streaming as defined by the first link I pasted?

Thanks,
Steven

Pablo

JW Player Support Agent  
-1 rated :

@Steven -

To answer your question, the JW Player only supports HTTP pseudo streaming. HTTP Live Streaming, HTTP Dynamic Streaming and HTTP Smooth Streaming (which, as you point out, are all variations on the same theme) are not yet supported by the JW Player.

JW Player

User  
-1 rated :

So any updates on this? Will HTTP Live Streaming be supported in the future?

Pablo

JW Player Support Agent  
-1 rated :

@Omar -

We don’t have any announcements yet on HTTP live/adaptive streaming, although we are keeping an eye on how the market for HTTP streaming is shaping up.

JW Player

User  
-1 rated :

You can get a taste of it here http://thundersnow.thebitstream.com/ And I think JW has some code for streaming segmented streams.

For shoutcast/icecast, you'll need to pay attention to policy files. Currently Im unable to accept any more work orders for integration.

Here is the last integration job:
Using this server here http://173.161.99.29:8002/

And the http stream player here
http://www.thebitstream.com/nexthit/

There is some code started to make a JWProvider here in the forums, but all I can do these days is troll and give pointers.

Andy

JW Player

User  
-1 rated :

Main trouble is that all the current orders have nothing to do with shoutcast :( other wise I'd probably be able to touch on this stuff more.

JW Player

User  
-1 rated :

@PabloS
it would be really good to implement Flash HTTP Streaming (San Jose Streaming) provider.
IMHO this is the future - we are developing videotechnology for mobile devices (live streaming, VOD) and the segmented streaming on Apple devices is what is the Flash lacking.
- You have no restrictions (in general) for the packets since it's common HTTP (RTMP and port 1935 is usually blocked in structured networks and RTMPT isn't always reliable either - and it increases significantly the server load (we are using Wowza Stream server)), so it should be available in 99.999% cases.
- You are loading just the chunks, which means no continuousload of streamed data (you will load the data once it's needed, using full download speed available and then just play it with no need to download continuously - perfect for both mobile devices and servers)
- I think this is the right direction for the #1 player, which the JWP surely is (for now) - customers want and need it
- The problem is that everyone is just waiting for the future market situation - it's good to be the first - like Apple... ;-)

So please, don't think the Flash HTTP streaming is a deadend..

Thank you for reconsidering implementing this media provider.

Jonas

JeroenW

JW Player Support Agent  
-2 rated :

We have beta support for HTTP streaming. However, this is Apple HTTP Live, Not Adobe Zeri. In the end, this should make things easier for people since only one output format is needed, not two.

Here you can find the provider and documentation. Please let us know any feedback!

http://developer.longtailvideo.com/trac/browser/branches/adaptive

JW Player

User  
-1 rated :

@Jeroen
Thank you,
this is even better approach. I'll test it and send you feedback.

Jonas

JW Player

User  
-1 rated :

@Jeroen
OK, I've made some tests. Could you please contact me via email: jonas.tajrych@mediawork.cz so we can discuss more?

Thank you.

Jonas

JeroenW

JW Player Support Agent  
-1 rated :

Email sent …

JW Player

User  
-1 rated :

I have been playing with your adaptive branch for about a month now for a personal project. (and have just grabbed the latest copy from the above link).

I would just like to say: About time *someone* implemented (apples) HTTP Live Streaming (that actually works for viewing the streams) on a platform other than one maintained by Apple.

Not to mention the fact that jwplayer can do all of this along-side the Video-tag fallback is fantastic.

Unfortunately, for my personal project the majority of the video streams are AVC with Mp3 audio, instead of AVC with AAC audio. is the AAC audio limitation a limitation of the flash player somehow? or is it more that mp3 audio streams are less likely, and thus just not implemented.

I have downloaded your code for the adaptive provider, and am going to see if I can naively modify it to support mp3, but if this is impossible for some technical reason I will keep checking back here every now and then to see if any more comments have been posted.

In the mean time, thanks for your great work!
Peter Avram

JW Player

User  
0 rated :

Excited to hear that there is some work being done on supporting Apple's HLS on JW player. My ideal world as a content producer is to only need to encode to single format. Since I want to support iPads- that format is HLS.

Please let me know if you want beta testers. I can help QA.
-Eric

eric-at-fankix-dot-com

JeroenW

JW Player Support Agent  
0 rated :

@Peter: MP3 can be supported, since it is a codec that is supported in Flash. Perhaps you can send us a small test stream (e.g. 2 qualitylevels, 1 minute)? Then I can look into it. No promises around timing, since jumping into the demuxing code again does require me to have a full spare day or two.

You can mail me at jeroen @ longtailvideo …

@Eric: I’ll send you an email!

JW Player

User  
0 rated :

@Jeroen
Great to hear! I have made a stream and sent it on to you.

I have waited several months for even basic support of this feature, I can wait knowing that *someone* has it on the agenda!

Adobe are pushing their own solution (proprietary flash media server)
Microsoft are pushing Silverlight Smooth Streaming.
Google want WebM to take off, and unfortunately apples spec requires AVC(h264)
Apple strangely don't want their iPhone format playable on PC. They have quicktime X which would give the PC the capability (even if through a plugin for web-based video) but for some reason they haven't ported it to win32 yet.

In that list Apple really are the strangest, they are trying to push this technology, they (presumably) want it to take off (they like h264, AND their phone market). Win32 support for the streaming format would surely only help them. Also with all their crying about flash you would hope they would implement the format in at-least their Win32 port of safari. Sadly, they aren't thinking coherently enough, and are missing an opportunity to give Safari windows more relevance.

JeroenW

JW Player Support Agent  
0 rated :

Adaptive streaming will probably remain to be a fragmented market for some time. We started doing some work on Apple HLS, since that’s the format that offers access to a unique userbase (iOS), both Smooth and Zeri provide access to the same desktop userbase for which, frankly, RTMP dynamic works fine today.

I received the MP3 streams and will do some tests with them!

JW Player

User  
0 rated :

Has this been integrated into the latest Version (5.6)? It mentions live streaming support.

If not, are there places where branch builds are stored (branches/adaptive), or do I need to build them myself?

JeroenW

JW Player Support Agent  
0 rated :

The 5.6 player doesn’t have this built-in.

Source, builds, docs and tests of Apple HLS support can be found in this branch:

http://developer.longtailvideo.com/trac/browser/branches/adaptive

JW Player

User  
0 rated :

Thanks for the quick reply!

Sorry for the newbie questions but I can't seem to get the JWPlayer to start playing a HLS playlist.
I have a local tomcat server running and the js file looks like:
bc.. <div id="playerdiv">Sorry, not FLASH or HTML5 compatible</div>
<script type="text/javascript">
jwplayer("playerdiv").setup({
height: 360,
width: 960,
autostart: 'true',
modes: [
{ type: 'flash',
src: '/VLCTest/jwplayer/player.swf',
provider: '/VLCTest/jwplayer/adaptiveProvider.swf',
file: '/VLCTest/httpstreaming/playlist.m3u8'
},
{
type: 'html5',
file: '/VLCTest/httpstreaming/playlist.m3u8'
}
]
});
</script>



I see the player get initialized and I can even get it to use different skins, but it never starts playing. The timeline bar always shows 00:00 as end time. If I point an app like VLC to the same http location it does see the playlist file.

Do you have any suggestions on how to debug this? There were no errors in Firebug.

JW Player

User  
0 rated :

OK, so I modified my script closer to the test code (and further from what is listed in the doc), and it now tries to load the file.
The seek bar appears to get the length of videos in the playlist, but I get the following error:
[IOErrorEvent type="ioError" bubbles=false cancelable=false eventPhase=2 text="Error #2032"]

The following is my current script
bc.. <!-- START OF THE PLAYER EMBEDDING -->

<div id="playerdiv">Sorry, not FLASH compatible</div>

<script type="text/javascript">
jwplayer("playerdiv").setup({
height: 360,
width: 640,
file: 'http://172.16.1.71:8080/VLCTest/httpstreaming/playlist.m3u8',
modes: [{
config: {
provider: 'video'
},
type: 'html5'
},{
config: {
provider: 'http://172.16.1.71:8080/VLCTest/jwplayer/adaptiveProvider.swf'
},
src: 'http://172.16.1.71:8080/VLCTest/jwplayer/player.swf',
type: 'flash'
}]
});

function loadStream(url) {
if (jwplayer().getRenderingMode() == 'flash') {
jwplayer("playerdiv").load({file: url, provider: 'http://172.16.1.71:8080/VLCTest/jwplayer/adaptiveProvider.swf'});
} else if (jwplayer().getRenderingMode() == 'html5') {
jwplayer("playerdiv").load({ file: url, provider: 'video'});
}
jwplayer("playerdiv").play();
return false;
}
</script>
<!-- END OF THE PLAYER EMBEDDING -->

JW Player

User  
0 rated :

Hello Jeroen,

I have tried the adaptiveProvider you created, but also no luck yet. I see the .m3u8 gets loaded from the webserver, as well as the first media fragment, but after that the same error as ccrotty:

[IOErrorEvent type="ioError" bubbles=false cancelable=false eventPhase=2 text="Error #2032"]

I am *very* interested in getting HLS to work inside a flash container, please let me know if there is any more info I can provide to help diagnose this.

Thank you,

Ico

JW Player

User  
0 rated :

Ok, problem solved already. It seems that the URL's in the m3u8 file are always taken as relative paths, even if the URL starts with http://.

Things seem ok now, the progress bar shows the right total time, and the proper media files are loaded and played when seeking. The only problem I still have now is that a few seconds into each fragment (3 to 6 seconds, it seems), playing stops and the last frame is displayed. I guess this might by caused by the way I encoded the video, I'll investigate this a bit more.

Thanks for this great feature!

JW Player

User  
0 rated :

This is AWESOME! We've been waiting for HLS to be supported on JWPlayer since it was released. Now that Android is supporting HLS on Honeycomb this will quickly become a standard. Any target release dates?
Thanks again for the hard effort in supporting this important protocol.

JW Player

User  
0 rated :

Hello,

HLS support seems to be pretty much functional, great stuff!

There is one more issue I run into to get things working though: my video fragments are played for only a few seconds (typically between 3 and 6) after which video playing stalls, sometimes with stuttering audio, or the message 'No AAC audio or AVC video stream found'

Some searching only directs me to the JWplayer source, this message seems to originate in the MPEG transport stream demuxer:

if (_videoPES.length == 0 || _audioPES.length == 0)
throw new Error("No AAC audio or AVC video stream found.");

Should I be looking for errors in my media files, or could this still be an issue in JWplayer ?

Thanks!

Ico

JeroenW

JW Player Support Agent  
0 rated :

@Ico: can you put a small example live, so I can take a look? For example a one-minute clip? You can email the example; jeroen [at] longtailvideo.

@ccrotty: do you have the same issue, absolute URLs instead of relative one?

@Dan: no fixed release date yet, but we’re working at making the provider as stable as possible at present. If you use a service like Wowza or have segmented your files with Apple’s filesegmenter, the provider should be production-ready.

JW Player

User  
0 rated :

Yes, putting in relative url did start the player! It is playing well with no stutter between the chunks.

I did have one more question. What about support for live streams, meaning the playlist is changing and growing as the stream is being played.

Does the player support this?

Initial attempts to modify the playlist after it was initially read seem to indicate no. Perhaps there is some config item that I'm missing?

JW Player

User  
0 rated :

Also, what if the stream does not have any audio?

JeroenW

JW Player Support Agent  
0 rated :

The provider indeed supports live streaming. The M3U8 file needs to hint this though, by not having the EXT-X-ENDLIST line in there. If the provider does not see that line, it jumps to “live” mode, doing two things:

1. Re-fetching the manifest
2. Not displaying the timescrubber (reflecting that it’s a live event)

The provider should be capable of playing video-only streams, although that’s not tested. When this is a TS stream with only an H264 channel, things should work.

JW Player

User  
0 rated :

I see the M3U8.isLive() fucntion that checks for the EXT-X-ENDLIST, but running, it does not appear to re-read the playlist.

I have the following playlist defined:
bc.. #EXTM3U
#EXT-X-TARGETDURATION:10
#EXT-X-MEDIA-SEQUENCE:0
#EXTINF:10, no desc
fileSequence0.ts
#EXTINF:10, no desc
fileSequence1.ts
#EXTINF:10, no desc
fileSequence2.ts



I can start the jwplayer playing, but if I go back and add new chunks, they player still stops after playing fileSequence2.ts.

BTW, the timeline was still showing, although it did not have a end time listed.

JeroenW

JW Player Support Agent  
0 rated :

The stream is OK, do you change the playlist fast enough? Also, you should remove old entries when adding new ones. HLS live is using the principle of a “sliding window”.

Note the “trailers” example on this test page is a live stream:

http://developer.longtailvideo.com/player/branches/adaptive/test/provider.html

JW Player

User  
0 rated :

JeroenW,

I saw the "trailers" link and downloaded the playlist.m3u8 file. I have few questions here

1. Is the play list dynamically updates by any other program on the server?

2. How frequently the player reads this playlist?

JW Player

User  
0 rated :

sorry forgot to show the playlist

#EXTM3U
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=169609
http://184.72.239.149:1935/demo/trailers2_iphone_250/playlist.m3u8?wowzasessionid=816477681
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=41156
http://184.72.239.149:1935/demo/trailers2_iphone_250/playlist.m3u8?wowzaaudioonly&wowzasessionid=816477681

JeroenW

JW Player Support Agent  
0 rated :

The player reloads the playlist after every fragment play. This generally is every 10 seconds.

The playlist is indeed automatically updated on the server here, using the Wowza Media Server software.

JW Player

User  
0 rated :

Hi Jeroen,

One more question, I'd rather ask it here so the answer becomes public: we still have the issue that JWplayer assumes all URL's in the playlist are relative to the player itself, so it is not possible to use absolute URL's from another server. Is this behaviour as designed ?

Thanks,

Ico

JeroenW

JW Player Support Agent  
0 rated :

That’s something that was overlooked in the initial design. It will get fixed:

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

JW Player

User  
0 rated :

Great, thanks once more for the fast support!

JW Player

User  
0 rated :

I'm using the latest (5.6) licensed player swf, and this 6-week old provider swf from trac.

I'm getting a "Loaded file is not a valid media provider" message on the player.

The player gets the image and renders it, fetches the provider swf, but doesn't go as far as fetching the m3u8.

My code:

jwplayer('container').setup({
'modes': [ {
'type': 'flash',
'src': '/flash/player.swf',
'config': {
'file': 'http://<url>/8462b54380-efb88efd69_playlist_4.m3u8',
'provider':'/flash/adaptiveProvider.swf'
}
},
{
'type':'html5',
'config': {
'provider':'video',
'file': 'http://<url>/8462b54380-efb88efd69_playlist_4.m3u8'
}
},
{
'type': 'download',
'config': {
'file': 'http://<url>/8462b54380-efb88efd69_web.mp4'
}
}
],
'skin': '/flash/stijl.zip',
'controlbar': 'bottom',
'width': '640',
'height': '480',
'image': 'http://<url>/previews/8462b54380-efb88efd69_4.jpg',
'controlbar': 'over',
'fullscreen': 'true',
'stretching': 'fill'
});
function loadStream(url) {
if(jwplayer().getRenderingMode() == 'flash') {
jwplayer("container").load({file: url,provider: '/flash/adaptiveProvider.swf'});
} else if(jwplayer().getRenderingMode() == 'html5') {
jwplayer("container").load({file: url,provider: 'video'});
}
jwplayer("container").play();
return false;
}

</script>

JW Player

User  
0 rated :

Sorry about the formatting. Here is a nicer version
bc.. jwplayer('container').setup({
'modes': [ {
'type': 'flash',
'src': '/flash/player.swf',
'config': {
'file': 'http://<url>/8462b54380-efb88efd69_playlist_4.m3u8',
'provider':'/flash/adaptiveProvider.swf'
}
},
{
'type':'html5',
'config': {
'provider':'video',
'file': 'http://<url>/8462b54380-efb88efd69_playlist_4.m3u8'
}
},
{
'type': 'download',
'config': {
'file': 'http://<url>/8462b54380-efb88efd69_web.mp4'
}
}
],
'skin': '/flash/stijl.zip',
'controlbar': 'bottom',
'width': '640',
'height': '480',
'image': 'http://<url>/previews/8462b54380-efb88efd69_4.jpg',
'controlbar': 'over',
'fullscreen': 'true',
'stretching': 'fill'
});
function loadStream(url) {
if(jwplayer().getRenderingMode() == 'flash') {
jwplayer("container").load({file: url,provider: '/flash/adaptiveProvider.swf'});
} else if(jwplayer().getRenderingMode() == 'html5') {
jwplayer("container").load({file: url,provider: 'video'});
}
jwplayer("container").play();
return false;
}

</script>

Ethan Feldman

JW Player Support Agent  
0 rated :

Can you provide a link?

JW Player

User  
0 rated :

I'd love to, but our site is not public yet. I'm happy to provide you the link privately. Is that possible?

Ethan Feldman

JW Player Support Agent  
0 rated :

Sure.

http://www.longtailvideo.com/support/contact-us

JW Player

User  
0 rated :

Thanks, I submitted my url there.

Ethan Feldman

JW Player Support Agent  
0 rated :

Np.

JW Player

User  
0 rated :

FYI,
Once I added the #EXT-X-ALLOW-CACHE:NO line to the playlist file, then it seemed to reread the playlist as expected.

One more question, just to verify:
The provider does not support the ANSI version of the playlist file (.m3u), just the UTF-8 encoded version(.m3u8).

I tried playing an ANSI encoded file and got the following error:
"The video could not be loaded, either because the server or network failed or because the format is not supported:"

Thanks again.

Ethan Feldman

JW Player Support Agent  
0 rated :

It does, demo – http://developer.longtailvideo.com/player/trunk/fl5/js/test/examples/m3u8.html

m3u8 only works on Safari and iOS, though.

JW Player

User  
0 rated :

One more question:

We have some transcoded video that does not contain any audio. When we try to play it in the player we get the following error:
"No AAC audio or AVC video stream found."

Is an audio stream required, or is there a config to say ignore it?

This playlist seems to play ok in the VLC player (with it's stuttering and stopping between chunks of course).

Ethan Feldman

JW Player Support Agent  
0 rated :

There is no setting to ignore it.

You need to have the audio encoded correctly, though, for either flash/html5 to be able to support it.

JW Player

User  
0 rated :

I don't have any audio in the .ts at all, just H.264 encoded video and am getting that error: "No AAC audio or AVC video stream found."

Chris

Ethan Feldman

JW Player Support Agent  
0 rated :

Do you have a link?

JW Player

User  
0 rated :

Not a public one. Can I send the url via the same contact-us link as above?

JW Player

User  
0 rated :

FYI, I did submit the url there.

Ethan Feldman

JW Player Support Agent  
0 rated :

Got it, thx.

JW Player

User  
0 rated :

Regarding not playing a video only stream: I see the issue where the TS.as file is looking for both video and audio or throwing an error.

I am trying to compile the source and am running into several of the following errors:

bc.. C:\Subversion\jwplayer\adaptive\src\com\longtailvideo\adaptive\streaming\Buffer.as(90): col: 29 Error: Call to a possibly undefined method appendBytes through a reference with static type flash.net:NetStream.
_stream.appendBytes(_encodeTag(_buffer[_tag]));



I'm assuming I have an old version of some package. I am runing FLEX version 3.6. Do I need to update this?

Ethan Feldman

JW Player Support Agent  
0 rated :

Hmm…not sure…I would post about it here – http://www.longtailvideo.com/support/forums/jw-player/player-development-and-customization/

JW Player

User  
0 rated :

Figured it out. The adaptive branch seems to need Flex version 4.1 to compile.

Ethan Feldman

JW Player Support Agent  
0 rated :

Ah, cool. Glad you got it.

JW Player

User  
0 rated :

I've tested the adaptiveProvider for several days, and although VoD HLS works great, Live HLS is always pixelated. I have confirmed that this is not related to the source feed or the encoder/segmenter, since the same streams play fine on different iOS devices. I have also confirmed it's not related to stretching/resizing, since jwplayer is being created with the same dimensions as the source.

Has anyone experienced the same? Do you have any suggestions on possible actions to eliminate or at least minimize this pixelation?

Thank you for this great module!

Ethan Feldman

JW Player Support Agent  
0 rated :

Do you have an example link?

JW Player

User  
0 rated :

Sure, I have several HLS live feeds linked to JWPlayer to test and compare with VoD. May I provide these to you as private message? Thank you.

Ethan Feldman

JW Player Support Agent  
0 rated :

Sure – http://www.longtailvideo.com/support/contact-us

JW Player

User  
0 rated :

Thank you very much; I sent you two reference links (both JWPlayer licensed version), one is RTMP and the other is HLS (adaptiveProvider).

Ethan Feldman

JW Player Support Agent  
0 rated :

Ok, thanks.

JW Player

User  
0 rated :

Hi,

Our h.264 stream is generated by a hardware codec which generates new SPS's (followed by an IDR) when it finds this suitable. This can happen quite often, up to a few times per second when the image is changing a lot.

However, we try to segment the MPEG stream into pieces of approximately the same length (10 seconds), thus we end up with fragments containing more then one SPS/PPS per file.

In the JWplayer 'adaptive' spec I found the following section:

"TS fragments should each start with a PES containing SPS/PPS data and a
keyframe slice (NAL unit 5). Fragments starting without SPS/PPS and/or with
an interframe (NAL unit 1) will work for continous playback, but will break the
player if the fragment is the first fragment after a seek or quality level
switch"

This does however not say how JWplayer should react to fragments containing more then one SPS/PPS occurances. From the code I understand that only the first NAL is searched for SPS/PPS data, which is then extracted and copied into the avcc tag. Any additional SPS's will still be available as h.264 in-band data, but weill not end up in the avcc tag.

What is the expected behaviour of JWplayer when multiple SPS/PPS's are available in a segment? If it is to be expected that proper decoding is not possible without all the SPS/PPS's beging available in the avcc tag ? If so, would the solution then be to find all SPS's from the whole file instead of only the first NAL, and copy those all into the avcc header?

Thanks,

Ico


JW Player

User  
0 rated :

Please ignore the above question, I was completely on the wrong track trying to debug playback issues, so all of the above is no longer relevant.

Sorry for the noise,

Ethan Feldman

JW Player Support Agent  
0 rated :

Ok!

JW Player

User  
0 rated :

Hi,

Do you have any news about a possible fix for this provider? A while ago we reported it wasn't working well for live HLS feeds, and we provided some reference examples via private message.

Thank you!

JeroenW

JW Player Support Agent  
0 rated :

I believe we had these cleared out. Last week, I fixed some issues around relative links and audio-only files.

I might have missed your issue though. I got bug reports from 3 or 4 developers, and might have missed one. If that’s the case, can you re-connect with me over email (jeroen [at] longtailvideo)?

JW Player

User  
0 rated :

As mentioned by Jeroen, Posted: Wed, 2011-06-08 03:18
"The player reloads the playlist after every fragment play. This generally is every 10 seconds."

In a live streaming scenario, when a playlist is sent with a list of 10 second segments (assume 5 mins worth of video) without EXT-X-ENDLIST in the list. Will the player reload the list for every 10 sec segment even though it has a huge list to play?

Why not reload the playlist when the player reaches the end of the list?

JeroenW

JW Player Support Agent  
0 rated :

Eventually, you’ll reach the end anyway and the refresh should become 10 seconds …

JW Player

User  
0 rated :

Does this adaptive streaming player provide cookie, session or flash id support to identify the user?

JeroenW

JW Player Support Agent  
0 rated :

No, it doesn’t provide such data. Any login or authentication functionality should be added through a separate player plugin.

JW Player

User  
0 rated :

Can someone point out what I am doing wrong here?

I am trying to play an adaptive stream from my Wowza media server. The source is a stream encoded and sent by Wirecast, h.264 baseline, AAC audio. I am connecting to the Cupertino packetizer from the Wowza server. In my regular player, JW plays this stream fine in iOS.

In a test client I am trying to use Modes to play this same stream in a Flash player, via adaptiveProvider.swf (I grabbed the latest version, about two or so weeks old). The player loads, however I get a black screen on playback and buzzing audio in Flash, and a black screen/back to start in iOS. Clearly I've configured something incorrectly because if I omit Modes and just use the regular embedded method the same .m3u8 stream plays fine in iOS.

Can anyone point to an error I've made below? It's a private stream, so I've replaced the actual URL in the code below with a placeholder. I have no problem sending the actual code to JW if needed to futher test. Thanks!!

bc.. <script type="text/javascript">
jwplayer('mediaplayer').setup({
'modes': [ {
'type': 'flash',
'src': '/jwplayer/player.swf',
'config': {
'file': 'http://private.com:1935/live/20110720pk330/playlist.m3u8',
'provider':'/jwplayer/adaptiveProvider.swf'
}
},
{
'type':'html5',
'config': {
'provider':'http',
'file': 'http://private.com:1935/live/20110720pk330/playlist.m3u8'
}
}

],
'id': 'playerID',
'width': '320',
'height': '240'
});
</script>

JeroenW

JW Player Support Agent  
0 rated :

Things do all look fine. The only thing I can see is that the player might be confused b/c you set provider=http for HTML5 (best to omit, since for HTML5 we only have one provider: videoElement).

If you cannot get it to work, indeed pls send me the actual URL at jeroen [at] longtailvideo.

JW Player

User  
0 rated :

Thanks very much for looking at this JeroenW. I emailed you a link to a test player.

JW Player

User  
0 rated :

Is there an API to get at timed metadata w/in TS files as outlined on Apple's HLS info site?

http://developer.apple.com/library/ios/#documentation/NetworkingInternet/Conceptual/StreamingMediaGuide/UsingHTTPLiveStreaming/UsingHTTPLiveStreaming.html#//apple_ref/doc/uid/TP40008332-CH102-SW1

If not, can I be the first to request it? :)

JeroenW

JW Player Support Agent  
0 rated :

There’s currently no support for exposing timed metadata. I’ll add that to the list.

JW Player

User  
0 rated :

Do you provide premium support for adaptive branch ?

JW Player

User  
0 rated :

If you do add timed metadata, can you add it in the form of a javascript callback that is passed in so that the timed metadata even calls the javascript function with the tag data?

Thanks

JW Player

User  
0 rated :

Does this branch support audio only streams?

JeroenW

JW Player Support Agent  
0 rated :

Audio only streams are not supported at this point.

If metadata extraction is added, it will indeed be exposed to JavaScript with an event.

And we don’t yet offer premium support for this plugin. Only after it’s part of the core player.

JW Player

User  
0 rated :

Hello I've noticed the PPS/SPS parsing is failing to get width and height from the SPS/PPS of Highprofile H.264 video generated using FFmpeg and libX264.

When I create a mpeg-ts with these commands:
"-vcodec libx264 -flags +loop+mv4 -cmp 256 \
-partitions +parti4x4+parti8x8+partp4x4+partp8x8+partb8x8 \
-me_method hex -subq 7 -trellis 1 -refs 5 -bf 3 \
-flags2 +bpyramid+wpred+mixed_refs+dct8x8 -coder 1 -me_range 16 \
-g 25 -keyint_min 25 -sc_threshold 40 -i_qfactor 0.71 -qmin 10\
-qmax 51 -qdiff 4

The video I created is 320x240 but the getDimention function will return 16x80 which is not correct. Due to this the video can't be stretched using the uniform method.

Baseline/main profile seems to work fine!


Thanks,

Rudger.

JeroenW

JW Player Support Agent  
0 rated :

That’s very well possible. I can take a look at this – do you have a test stream with a few fragments?

Note H264 Baseline is much recommended. Android 3 and iPhone 3G(S) only support Baseline.

JW Player

User  
0 rated :

From draft-pantos-http-live-streaming-01:

"Once the first media file to play has been chosen, subsequent media files in the Playlist MUST be loaded in the order that they appear and played in the order that they are loaded.

The client SHOULD attempt to load media files in advance of when they will be required for uninterrupted playback to compensate for temporary variations in latency and throughput."

Jwplayer only loads 1 chunk, ant second chunk is loaded when first is played, so i get interupts between chunks on slow connections (1 Mbps stream and 2 Mbps connection) . It's possible to preload, for example 5 chunks in advance ?

JeroenW

JW Player Support Agent  
0 rated :

It is possible to preload more chunks, but it will only result in less frequent but longer interrupts. Perhaps you can use a variant playlist to also offer a lower bitrate version of the stream?

JW Player

User  
0 rated :

Jeroen, thanks for providing the beta to play with! I am really excited to see you working on this!

I was testing and found a few issues I thought you should know about:
<ul><li>B frames don't seem to be handled properly. I didn't extensively test this, but playing back the video had the jitter you expect when B frames aren't reordered properly. Also, switching from Main to Baseline fixed this.</li>
<li>Non-standard frame rates (I was testing with 10 and 15fps) seem to cause the player to either throw error #1069, or just display a blank frame. Switching this back to 29.97fps fixed this.</li>
<li>Same thing with audio sample rates, 32kHz causes the player to remain blank, while switching to 48kHz works fine.</li>
<li>If the video has a non 1:1 SAR it will play at an incorrect size (if at all). This comes up, for example, transcoding NTSC video (which has a 40:33 SAR, and 4:3 DAR). Scaling the video so it has a 1:1 SAR fixes this.</li>
<li>The player seems to be picky about what resolutions it supports. I have done almost no testing on this, I only noticed there were a couple that wouldn't load.</li></ul>

Keep up the good work, I know you'll have a quality product when it's ready for release.

JeroenW

JW Player Support Agent  
0 rated :

Thanks for the bullets! We’ll look into it.

Some stuff (like detection of pixel A/R) is on our radar (detection of dimensions is in there since a few months). Other stuff (like the B-frames) still needs investigation it seems.

JW Player

User  
0 rated :


I can confirm issue with b-frames.

Another issue - memory leak. It seems, that player saves every chunk in memory - after 1 hour of viewing browser consumes ~ 2 GB of RAM (if i stay on the same live channel) .
Is it Jwplayer or Flash problem ?
P.S. OS - Windows, Linux. Browser - All major browsers. Flash version - 11.0.1.152 or 10.3.x

JeroenW

JW Player Support Agent  
0 rated :

The memory leak is our problem. The player indeed stores the full video in memory. We’ll fix that when moving to a production-grade version (set ist as a flag that’s disabled by default or so).

For now, it’s very useful for debugging the transmuxed video.

JW Player

User  
0 rated :

Maybe you have roadmap, when HLS support will be production ready ?
Can i send some hls links to http://www.longtailvideo.com/support/contact-us ?

JeroenW

JW Player Support Agent  
0 rated :

We don’t have a roadmap at this point. We’re first fixing a few bugs and investigating “if” HLS can be made production quality, or of we should add HDS support in Flash.

HLS test links are always welcome, if they can be made available permanently.

JW Player

User  
0 rated :

I'm having problems running test cases from branch. Do I need to perform some "special steps" to run it?

JeroenW

JW Player Support Agent  
0 rated :

Except for the first link, all cases just work with a click:

http://developer.longtailvideo.com/player/branches/adaptive/test/provider.html

JW Player

User  
0 rated :

This is working pretty well for us.
We did have a problem where our SAR / Pixel Aspect Ratio was 4:3 but video was 16:9, native Apple playback would be ok but the adaptive provider would be quite blocky. Changing SAR/PAR to 16:9 fixed that.
Now it's working /almost/ perfectly for us, with the exception of some very brief pauses in playback, you can see here:
http://wb.cumulusxp.com/wwe_superstars/
Any thoughts welcome

JW Player

User  
0 rated :

(should add that native playback on Apple/Android doesn't have the pauses)

JW Player

User  
0 rated :

FYI we are working on the segment decryption (using as3crypto) which will contribute if successful.

JeroenW

JW Player Support Agent  
0 rated :

Very cool! That’s something we’re aware of but haven’t built yet. If you could contribute, that’d be awesome.

We’re now focusing on making it stable across all different encoders/segmenters.

JW Player

User  
0 rated :

Still having that issue with (very brief) pauses, any suggestions?
Suspect it's our encode, though have file almost exactly matches sample Big Buck Bunny used in the demo page.
Settings: h264 (Baseline) ([27][0][0][0] / 0x001B), yuv420p, 720x480 [SAR 32:27 DAR 16:9], 25 fps, 25 tbr, 90k tbn, 50 tbc

Have tried
- lower bitrate
- switch audio/video streams using ffmpeg -map
- segment size

Would it be possible to get your ffmpeg / segmenter command lines?
Also - which segmenter did you use? I found the newer one based off Carson's but updated for latest version of ffmpeg/libav worked well: http://code.google.com/p/httpsegmenter/

JW Player

User  
0 rated :

I'm also having an issue, where scene changes aren't working well:
http://i.imgur.com/PUj0g.png
The vid is baseline, 1 KF/sec. You can see Quicktime plays it back (.m3u8) fine, but not in flash. Looks to me something like, video data not getting into pipeline quickly enough?

From a brief glance, I recall seeing it converting M2TS to flv before putting in pipeline, which sounded like a bit of an inefficient hoop to have to jump through, not sure if that could be the cause, gonna have a look now ...

JW Player

User  
0 rated :

This is an example of the (worst-case) sort of blockiness, Adaptive Provider vs. Strobe with Adobe HDS.
Again, native playback in Quicktime on OSX was fine; this does seem to be a problem only when using the adaptive provider.
I could provide a sample of that clip if it would help, let me know where to email.
http://i.imgur.com/PQOPJ.png

Time being I think in our case, we're unfortunately going to have to go OSMF / HDS.

This question has received the maximum number of answers.