Order Now AdSolution Sign Up | Login » Bits on the Run Sign Up | Login »

Forums

/

"start" parameter in http request replaced ...

11 replies [Last post]

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.

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

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

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.

Are you still using streamer=lighttpd ???

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.

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

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?

 
Note that you ABSOLUTELY MUST use a full URI for the value of the streamer flashvar.

LightTPD v1.4.26-1 on Windows XP:

  //...single file
    '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.

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

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.

 
@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.

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 -
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.

$ ffmpeg -i myvideo.mpeg myvideo.flv

$ flvtool2 -U myvideo.flv

@Alf, thanks a ton for your assistance.

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. ;)