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

JWPlayer 6 Flash Seeking


I am having issues with seeking after i upgraded to jwplayer 6. It works well in html5 but in flash i cannot seek past parts of the video that is not yet loaded.

Here is my jwplayer.setup:

bc.. jwplayer("player").setup({
flashplayer: '/swf/jwplayer.flash.swf',
file: /pathtovideo/video.mp4,
width: '100%',
height: '100%',
provider:'http',
'http.startparam':'starttime',
primary: 'html5',
autostart: 'true'
});



It works well in html5 and is use to work in jwplayer5 but it stopped after upgrading. Am I missing a param?

25 Community Answers

JW Player

User  
0 rated :

You don't need to set a provider anymore with jw6 so you can remove it, and the http.startparam i think it's just startparam so try this:

bc.. jwplayer("player").setup({
flashplayer: '/swf/jwplayer.flash.swf',
file: /pathtovideo/video.mp4,
width: '100%',
height: '100%',
startparam:'starttime',
primary: 'html5',
autostart: 'true'
});

Ethan Feldman

JW Player Support Agent  
0 rated :

That should work :)

JW Player

User  
0 rated :

Removing the providor and just putting:

bc.. startparam:'starttime',



Then i cannot seek at all in firefox (flash player). Even the parts that are loaded when i try to seek there it starts the video from the beginning. if i remove the provider and just put:

bc.. 'http.startparam':'starttime',



Then i am back at firefox only seeking to parts of the video that are loaded.

Could this be some kind of bug in jwplayer 6?

Ethan Feldman

JW Player Support Agent  
0 rated :

That should work, where is this running?

JW Player

User  
0 rated :

I have the same problem, jw player 6 .. html5 version is working great. But i cant run pseudo streaming with flash mode.. my server has h264 mod.

When i set primary:flash it loads up the whole video an play after that ( not playing while loading) and cant seek at unbuffered part.


settings here

jwplayer('player_952').setup({
captions: {
back: false,
color: 'ffffff',
fontsize: 20
},
width: "1024",
height: "768",
primary: "flash",
startparam:"starttime",
autostart: "false",
playlist: [{
captions: [
{ file: "subs/caption-EN.vtt", label: "English" },
{ file: "subs/catpion-2.srt", label: "french" }


],
sources: [
{ file:"http://site.com/test2.mp4?start=0", label: "360p", type:"mp4" },
{ file:"http://site.com/test2.mp4", label:"720p", type:"mp4" },
],
title: "my video title",

}],

});

Excuse my eniglish.

Ethan Feldman

JW Player Support Agent  
0 rated :

Can I see where this is running?

JW Player

User  
0 rated :

it's on local testpage.
Is it normal to load the whole video before starting with h264mod and primary:flash?
And should i put the ?start=0 at the end of the file path ?

With h264 mod should startparam:"starttime", or just "start" ?

I will bring some test page if you could not help that way :)

JW Player

User  
0 rated :

The header of your mp4 must be at beginning of file, not at end of file.

So you can at least seek in already buffered parts without waiting for full download of the video.

But that you cant seek in unbuffered parts - I have the same problem

IIS7 with ModH264.

Ethan Feldman

JW Player Support Agent  
0 rated :

Can you put something up though?

JW Player

User  
0 rated :

Sry ablout the domain name - http://pornzilla.eu/test.php
As you can see you cant even seek to buffered part.. there is h264 module - http://pornzilla.eu/test5.mp4?start=30 starts the video from its 30 second.

10x in advance

JW Player

User  
0 rated :

i've made it ;)

Ethan Feldman

JW Player Support Agent  
0 rated :

It works then? (put up a sfw test page if not)

JW Player

User  
0 rated :

I also have the same problem, we have an online system using jwplayer 6.1.2972.
The player plays videos perfectly but we can not go to some point in the video. We setup jwplayer as below:

var start = jwplayer('fullscreen' + id).getPosition();

jwplayer('fullscreen' + id).setup({
'id': 'fsplayer' + id,
'flashplayer': '/mediaplayer/player.swf',
playlist: [{
file: '<?php echo $url ?>',
image: '<?php echo $image ?>',
"previewer.file": "<?php echo public_path('uploads/boards/wizard/'.$file_id."/");?><?php echo $file_id;?>_[index].png" }],
skin: "<?php echo public_path('js/jwplayer/skins/six.xml')?>",
'width': '100%',
'height': '100%',
'controlbar': 'bottom',
start: 8,
'controlbar.idlehide': 'false',
});

Nor when I call seek function itself, the video just start again at 0 second.
jwplayer('fullscreen' + id).seek(stpos);
I ensure that others part of the page does not affect jwplayer,

I setup jwplayer using jquery/json.

Maybe, I see some clues here. It seems to be that when jwplayer has not finished buffering the video until the specified point, it can not go to that point. If there is anything wrong, please tell me and maybe some ways to solve this, thank you jwplayer team and anyone comes up here helping me with this problem.

Happy coding,

Ethan Feldman

JW Player Support Agent  
0 rated :

Link?

JW Player

User  
0 rated :

@John: How have you done it?? Please tell to other..

I still have this problem. I now tried instead of ModH264 for IIS7 now with Apache like you've suggested. But I've with that exactly the same problem :(

Ethan Feldman

JW Player Support Agent  
0 rated :

Link>

JW Player

User  
0 rated :

http://killerinstinct.ath.cx/Quake-testrunde.html

Ethan Feldman

JW Player Support Agent  
0 rated :

Try to use:

startparam: “start”,

JW Player

User  
0 rated :

Doesnt work either.

Ethan Feldman

JW Player Support Agent  
0 rated :

Try using aptstart, or starttime, or no startparam at all. You are sure the module installed correctly?

JW Player

User  
0 rated :

Hi Ethan!
I have the same problem too, and I think the reason is the fact, that player does not send the ?start=0 when it starts playing video from its begining, even if it was configured with bc.. startparam:'start'
. The problem is (some) server engines will not send video in stream mode if they have not start in request. E.g. this is the quote from documentation of nginx's ngx_http_mp4_module:
bc.. If a matching request does not include the start argument, there is no overhead, and the file is just sent as a static resource.

http://nginx.org/en/docs/http/ngx_http_mp4_module.html

I've tried to hack this with adding '?start=0' to the end of the video file name. It really helps player to start stream mode, but when seek it send requests like mymovie.mp4?start=0&start=10.5
Unfortunately when server receives two identical query params it uses the latter for some reason. So the problem is still not solved.

What do you think about it? Can it be fixed in future JW Player releases? Do we have at least _some_ way to solve problem right now?
Thank you!

Ethan Feldman

JW Player Support Agent  
0 rated :

Hm, this is interesting. Let me ask…

JeroenW

JW Player Support Agent  
0 rated :

I don’t quite understand the problem. Pseudo-streaming should work fine, even if the initial request does not have a startparam. Subsequent requests have the param, so the server sends those out “streaming”.

We have a simple example ourselves, using mod_h264 on the EdgeCast CDN. Other modules should behave the same:

http://www.longtailvideo.com/support/jw-player/29392/flash-pseudo-streaming

In the example posted above, the H264 seeking module simply doesn’t seem installed or activated for this path. A direct request to video.mp4?start=40 should return that video from the offset, no matter which previous requests were sent.

JW Player

User  
0 rated :

bc.. http://www.longtailvideo.com/support/jw-player/29392/flash-pseudo-streaming

This example is working fine for me. But in my case, that I described above, server operates differently: if there is no start param in request server does not 'stream' video, just returns the entire file. In player it looks like _playback does not start until file is completely downloaded_. This is unusable.

It seems that mod_h264 (recommended by you) and ngx_http_mp4_module (which I use) have a difference: mod_h264 starts streaming mode even with no startparam in request, but ngx_http_mp4_module does not.

I think it would be nice if you supported ngx_http_mp4_module too. There are at least two reasons for it:
<ol>
<li>ngx_http_mp4_module is the _only_ official native nginx module for pseudo-streaming, developed by nginx team (mod_h264 is not)</li>
<li>ngx_http_mp4_module is working correctly: it allows you to control video streaming mode on the client side</li>
</ol>

I think there are at least two ways to fix issue in the player:
<ul>
<li>*Good way* is to send ?start=0 when playback begins if player was configured with startparam value</li>
<li>*Not such good but working way* is to check whether video URL has start param in it on each seeking. And if has change it value but not adding the duplicate. E.g. if the original URL is myvideo.mp4?start=0 after seeking we wanna get myvideo.mp4?start=10 but not myvideo.mp4?start=0&start=10 as we get know.</li>
</ul>

Neither of these two fixes do not harm anybody but let player work correctly in cases like mine (and possibly others in this thread).
Hope to be heard. Thank you.

JeroenW

JW Player Support Agent  
0 rated :

Ah, I now understand a bit more about the issue. I don’t think it’s related to the start param being included or not, but instead to that your MP4 files have their MOOV atom set at the end of the stream. This can be fixed by various tools that can set the MOOV atom at the front.

When your MP4 files are updated, the player will also directly play the video while still downloading.

This question has received the maximum number of answers.