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

"start" parameter in http request replaced ...



Hi,

I am using the latest JW player (4.6) on my web site for http streaming and in my html web page, I am using the following flashvars:

type=http
streamer=lighttpd
file=/Flash/2009/MyFlashVideo.flv
autostart=false
controlbar=over
mute=false

Everything works fine from several clients with IE or Mozilla but the Querystring is often different. In particular my problem is that from some clients on Windows 7 using IE 8, the webserver log file shows that the "start" parameter indicating the seek position is sometimes replaced by "lighttpd".

Below are examples of requests received by the web server:


14:10:17 GET /Flash/2009/MyFlashVideo.flv - 200 0
14:10:28 GET /Flash/2009/MyFlashVideo.flv?start=137465366 200 0
14:18:47 GET /MainWeb/icons/Flash.png - 200 0
14:18:49 GET /player.swf - 200 0
14:18:51 GET /favicon.ico - 200 0
14:18:56 GET /Flash/2009/MyFlashVideo.flv?start=0&id=Player&client=FLASH%20WIN%2010,0,2,54&version=4.3.132&width=512 200 0
14:19:02 GET /Flash/2009/MyFlashVideo.flv?start=253861595&id=Player&client=FLASH%20WIN%2010,0,2,54&version=4.3.132&width=512 200 0
07:02:48 GET /Flash/2009/MyFlashVideo.flv?lighttpd=156209603 200 0
07:02:54 GET /Flash/2009/MyFlashVideo.flv?lighttpd=185040868 200 0
07:03:04 GET /Flash/2009/MyFlashVideo.flv?lighttpd=195658888 200 0

As you can see, "id", "client", and "version" are not always present in the http request. but the *serious* problem is that the parameter "start" is sometime replaced by "lighttpd". I have also tried to use the flashvars "http.startparam=start" without success.

Can someone give me a hint of what could cause this problem ?


Many Thanks, Alberto.

11 Community Answers

JW Player

User  
0 rated :

If you are using an Apache2, Microsoft IIs, LightTPD, or nginx server with the mod_flv_streaming and mod_h264_streaming modules with a v4.6.450 player, you shouldn't be using the streamer flashvar.

The streamer flashvar is only needed for HTTP pseudostreaming using a serverside script.

Review the HTTP streaming documentation here http://developer.longtailvideo.com/trac/wiki/FlashFormats#HTTPStreaming

bc.. 'file': encodeURIComponent('http://www.domain.com/'path/videofilename.flv'),
'type': 'http',
'http.startparam': 'start',



JW Player

User  
0 rated :

agar,

many thanks for your kind answer.

I had read the documentation, in particlular the sentece which says "By default, the querystring parameter to provide the start position to the server is called start".

My problem, confirmed by the web log I have uploaded is that the queristring parameter sometimes changes to 'lighttpd", depending on the client.

Alberto.

JW Player

User  
0 rated :

Are you still using streamer=lighttpd ???

JW Player

User  
1 rated :

I can absolutely not understand why they change the API every time. From a developer perspective this is absolutely killing. If they want to ad functionality in order to have a cleaner config, fine, but keep backwards compatibility.

I'm a developer myself and I am starting to regret paying the commercial fee for this product. With each new release I will have to change the way the thing is embedded. You cannot change the meaning of a API param just like that.

JW Player

User  
2 rated :

I second this!
Recently i tried to update from 4.3.xxx to 4.6.xxx and none of my videos played anymore and also the preview images didn't appear because they changed something with the flashvars and pseudostreaming. I was able to "fix" the flashvars, but pseudostreaming still didn't work with 4.6.485 because of something. Then i went back to an older version and everything works again.
What a waste of time and i payed for the latest version to be able to remove the ad and now i can't use it!

EDIT: Oh sorry, i'm another Johnny

JW Player

User  
0 rated :

I am facing similar issue.

*system details*
OS: ubuntu
backend: lighttpd
frontend: JW player 5
browser: Firefox 3.5.8

*Option 1*
When I don't user 'streamer', the queryString will have correct '?start=' param and streaming will start from the requested position however, it will play only audio. video won't appear.

script:
so.addParam("flashvars","provider=http&file=../sachin.flv&start=120&http.startparam=start");

access log of lighttpd:
::ffff:192.168.0.195 192.168.0.196 - [01/Mar/2010:20:44:21 +0530] "*GET /sachin.flv?start=11086212 *HTTP/1.1" 200 35070526 "-" "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.1.8) Gecko/20100202 Firefox/3.5.8"


*Option 2*
When I use 'streamer=lighttpd', the queryString will change to 'lighttpd='. Everytime I seek for unloaded part of video, it starts playing video from the begining.

script:
so.addParam("flashvars","streamer=lighttpd&provider=http&file=../sachin.flv&start=120&http.startparam=start");

access log of lighttpd:
::ffff:192.168.0.195 192.168.0.196 - [01/Mar/2010:20:57:21 +0530] "*GET /sachin.flv?lighttpd=11444341 HTTP/1.1" *200 7295398 "-" "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.1.8) Gecko/20100202 Firefox/3.5.8"


What is going wrong here?
Alberto, did you find the answer?

JW Player

User  
0 rated :


Note that you *_ABSOLUTELY MUST_* use a full URI for the value of the *streamer* flashvar.

LightTPD v1.4.26-1 on Windows XP:bc.. //...singlefile
'provider':'http',
'http.startparam':'start',
'file':'http://willswonders.myip.org:8073/video/ThingsFallApart.flv',
'hd.file':'http://willswonders.myip.org:8073/video/ThingsFallApart.mp4',



JW Player v5.1.854.

JW Player

User  
0 rated :

Alf,
can you tell me the exact value I should use for the *streamer* flashvar? I cannot see streamer param in your example.

the document here bc.. http://www.longtailvideo.com/support/tutorials/HTTP-Video-Streaming
says, we should use *streamer=lighttpd*.

i tried using *streamer=/usr/sbin/lighttpd* but, it didn't help either.

JW Player

User  
0 rated :


@Girish,

Sorry, I need a smack in the head.

Note that you *_ABSOLUTELY MUST_* use a full URI for the value of the *file* flashvar.

The documentation for the v5 player HTTP pseudostreaming with modules for Apache, IIs, nginx, and LightTPD is here:

*http://developer.longtailvideo.com/trac/wiki/Player5Formats#HTTPStreaming*

The *streamer* flashvar is only used if you're HTTP pseudostreaming with a script like the xmoov script.

JW Player

User  
0 rated :

issue fixed.

in my case, the culprit was bad .flv file (downloaded from youtube).

as i said in my first post, whenever i removed *streamer* param the streaming worked but played only audio with blank screen. after lot of troubleshooting, i decided to try different video file and everything worked.

like Alf has said, the only required paramaters are -
bc.. so.addParam("flashvars","provider=http&http.startparam=start&file=http://servername/path/to/video.flv");


*NOTE to others*
make sure you convert the video into FLV format using correct tool and add metadata to it before streaming.
bc.. $ ffmpeg -i myvideo.mpeg myvideo.flv
bc.. $ flvtool2 -U myvideo.flv

@Alf, thanks a ton for your assistance.

JW Player

User  
0 rated :

hi everybody,
i just wanna say thanx to Girish for that note. i was going crazy trying to stream videos. I tried with all posible flashvars combinations and nothing happens. Until read this and use flvtool2 in my videos. now everything is working. ;)

This question has received the maximum number of answers.