JW Player for Flash - supported file formats


Mediafile formats

The following mediafile formats are supported:

The FLV and MP3 formats can also be played through RTMP (and RTMPT/RTMPE), both on-demand and live. Testing has been done with the Wowza and FMS3 servers, but Red5 should work fine too.

HTTP streaming for FLV is supported as well (through the streamer variable). An example script is xmoov-php. For the Lighttpd webserver, both FLV and H264 are supported.

Note that the player always tries to recognize a file format by its extension. If no suiteable extension is found, the player will presume you want to load a playlist! Get around this issue by also setting the type flashvar, e.g. type=video.

Mediafile support

  • Though SWF files also load in the player, it is discouraged to use them. The player cannot read the duration and dimensions of SWF files and cannot control its volume or playback.
  • If your MP4 files cannot be seeked before they are completely downloaded, the so-called MOOV atom (which contains the seeking information) is located at the end of your video. Check out this little application to parse your videos and fix it.
  • If you encounter too fast or too slow playback of MP3 files, it contains variable bitrate encoding or unsupported sample frequencies (eg 48Khz). Please stick to constant bitrate encoding and 44 kHz. The free iTunes software has a decent MP3 encoder. Note that the 4.x player actually supports fewer formats than the 3.x player (it seems due to bugs in the AVM2).
  • If the progressbar isn't running with your FLV file, or if your video dimensions are wrong, your FLV file doesn't have metadata. Fix this by using the small tool from www.buraks.com/flvmdi/.
  • If FLV playback doesn't work on your site which runs off an IIS server, the FLV mimetype isn't added to the server. Please contact your webserver administrator on this (if you're an admin, here's how to fix it).

More technical info on the file formats supported by Flash can be found in this blogpost from Tinic Uro, one of the developers of the Flash plugin.


Playlist formats

The following playlist formats are supported:

Here is an overview of all the tags of each format the player processes, and the flashvars they correspond to:

Flashvars XSPF RSS + iTunes RSS + media SMIL ASX ATOM + media
author creator itunes:author media:credit #.author author media:credit
date meta rel=’date’ pubDate pubDate #.date param name='date' published
description annotation description description #.alt abstract summary
duration duration itunes:duration media:content #.dur duration media:content
file location enclosure media:content #.src ref media:content
link info link link anchor moreinfo link rel='alternate'
image image - media:thumbnail img param name=’image’ media:thumbnail
start meta rel=’start’ - media:content #.begin starttime media:content
tags meta rel=’tags’ itunes:keywords media:keywords #.tags param name='tags' media:keywords
title title title title #.title title title
type meta rel=’type’ enclosure media:content #.type param name=’type’ media:content
meta meta rel='xxx' - media:meta #.xxx param name=’xxx’ media:meta

Each format has a meta element, which can be used to load additional data into a playlist. For example, the accessibility plugin can pick up the and captions meta elements from playlists, so you can build a playlist of files that contain closed captions. Note however, that the media:meta element is not part of the MRSS standard and can break strict feedvalidators.

By inserting the same file in a playlist multiple times with a different start position, the playlist will function as a chapter-index (example).

Playlists support

  • All media: tags can be embedded in a media:group element. A media:content element can also act as a container.
  • iTunes and MediaRSS tags can be mixed in one RSS feed. The player will pick the first matching element for each property.
  • Loading playlists (or SWF files, ID3 data, etc) from another webserver is not permitted by the Flash Player security model. You can circumvent this by placing a crossdomain.xml file in the root of the website that contains the media. If you don't have access to the external site, you can use a small proxy (example).
  • Note that the media:content start usage here do not comply to the MRSS specifications. It is included to support RSS and ATOM start positions.