FLV player, streaming, and cached files

FLV player, streaming, and cached files

by Doug Moody -
Number of replies: 2

I have had nothing but problem issues with the FLV Flowplayer. The MAJOR problem I am having is its inability to fast forward or rewind. I THINK I have narrowed it down to either the streaming protocol, or the browser cache. I found a link in the Moodle Docs at http://docs.moodle.org/21/en/FLV_Player that says the following:

Streaming

There are two main types of video connection, progressive download, where the video FLV file is downloaded into the browser cache and the user can start to view the video content after a second or two, and streaming, where specific portions of the video stream are served to the video player as and when requested. Progressive download is the easiest to implement and the most commonly used.

The JW FLV Player supports:

If the problem I am having is related to the Moodle Doc above, then this link doesn't explain how to change to other streaming methods.

I think that what's happening is that the local browser is caching the video each time it is watched and for some reason stops the user from accessing the timeline controls on the player to rewind and fast forward. See the graphic below to better explain my problem. Any ideas?

 

Average of ratings: -
In reply to Doug Moody

Re: FLV player, streaming, and cached files

by Doug Moody -

I did a little more investigation, and found this entry on the Flowplayer website at http://flowplayer.org/plugins/streaming/pseudostreaming.html. I would appreciate it if someone could decode what they are saying, and maybe tell me why I cannot go to random places in the streamed video file. BTW, I am using Moodle 2.1.3. Here is what they say:

"

Introduction

Pseudostreaming is a protocol that can be installed on regular HTTP servers such as Apache, Tomcat, IIS or lighthttpd. It uses a server-side script for Flash-to-server communication. The player sends a HTTP request to the server with a start time parameter in the request URL's query string and the server script responds with the video stream so that its start position corresponds to the requested parameter. This start time parameter is usually named simplystart. This same technique is used by the ultra-popular YouTube service which uses lighthttpd servers.

The biggest advantage of using pseudostreaming or any other streaming solution is the ability to seek in the timeline to positions that have not been downloaded yet to the player. This is most desirable for full-length movies because the visitor can seek to the last scene of a 2-hour movie if she wants to. Here are the benefits:

  • Random seeking to any part of the timeline at any time.
  • Starting playback in the middle of the clip's timeline.
  • Provides integration possibilities to custom streaming servers and server-side scripts.
  • Both FLV and H.264 files are supported.

Here is a list of most popular server-side technologies that support pseudostreaming:

See also pseudostreaming with IIS and ASP.NET"

 

 

In reply to Doug Moody

Re: FLV player, streaming, and cached files

by Doug Moody -

Well, sometimes just talking out one's problems solves them. That's what happened in this casewink

It seems upon further reading, the problem is that metadata was not present in the FLV files. I found that out when I read this gem:

"FLV files and metadata

If you are streaming FLV files instead of H.264 files you must have so-called FLV metadata on your file. This metadata contains the keyframe information in XML format. If this metadata is missing your video file will act like a normal HTTP progressive download.

You can inject the metadata with a small program called flvtool2. This simple command line command will do the job:

flvtool2 -U <video_file>.flv

Without this magic touch you cannot make random seeks to your FLV file. What this actually does is it makes keyframe metadata available for Flowplayer. When the user seeks in the timeline, the player retrieves the closest keyframe position from the metadata and passes it to the server. The server then serves the file starting from that position."

The lesson here is that having keyframes is not enough. In addition, I located some software on the internet that supposedly injected this metadata into the file, but only the flvtools software, referenced above, was what worked.

I hope this helps someone...

Average of ratings: Useful (1)