{"id":157,"date":"2009-03-29T13:37:39","date_gmt":"2009-03-29T18:37:39","guid":{"rendered":"http:\/\/osric.com\/chris\/accidental-developer\/?p=157"},"modified":"2011-12-01T10:40:13","modified_gmt":"2011-12-01T15:40:13","slug":"embedded-flv-video-players-flowplayer-and-jw-player","status":"publish","type":"post","link":"https:\/\/osric.com\/chris\/accidental-developer\/2009\/03\/embedded-flv-video-players-flowplayer-and-jw-player\/","title":{"rendered":"Embedded FLV video players: Flowplayer and JW Player"},"content":{"rendered":"<p>Over the past several months, I have worked with both <a href=\"http:\/\/flowplayer.org\/\">Flowplayer<\/a> and <a href=\"http:\/\/www.longtailvideo.com\/\">JW Player<\/a> as embedded FLV video players.<\/p>\n<p>Why wouldn&#8217;t you just upload your videos to YouTube and use their embedded player? That&#8217;s a pretty fair question, as I think YouTube provides:<\/p>\n<ul>\n<li>An excellent player that your users are already familiar with<\/li>\n<li>A variety of options to control the appearance (e.g. you can disable related videos)<\/li>\n<li>High-availability bandwidth<\/li>\n<\/ul>\n<p>Of course there are several drawbacks:<\/p>\n<ul>\n<li>Limits on length and file size<\/li>\n<li>Critical infrastructure is no longer in your control<\/li>\n<li>Their logo appears on your site<\/li>\n<li>Progressive download only (no streaming)<\/li>\n<\/ul>\n<p>Let&#8217;s take a look at both Flowplayer and JW Player:<br \/>\n<!--more--><br \/>\nBoth players offer simple configuration options as well as numerous additional options for users who are able and willing to change a few config options or write a few lines of Javascript. Both include cross-browser Flash embedding scripts. Both support progressive download of FLVs and MP3s and a variety of streaming servers (I&#8217;ve been working with <a href=\"http:\/\/www.wowzamedia.com\/\">Wowza<\/a>).<\/p>\n<p>Flowplayer is pretty slick right from the start. The default skin is very attractive, and the Javascript is very easy to work with. However, I have run into few issues using Flowplayer:<\/p>\n<ul>\n<li>Breakneck <a href=\"http:\/\/flowplayer.org\/documentation\/version-history.html\">release schedule<\/a> (8 releases in the past 5 months&ndash;2.24-3.0.7&ndash;and 3.1 will be out soon)<\/li>\n<li>Unresolved errors with &#8220;filmstrips&#8221; (audio with still images)<\/li>\n<li>Inconsistent documentation and support<\/li>\n<li>No streaming for MP3s<\/li>\n<\/ul>\n<p>You might think that a lot of new releases is a good thing, because new features are constantly being added. But a lot of the releases fix bugs that probably should never have made it to a release version, and even releases that only include new features require a lot of testing on my part to make sure that our old customizations still work and that everything is cross-platform and cross-browser compatible. Flowplayer&#8217;s frequent releases lead to serious upgrade fatigue.<\/p>\n<p>The &#8220;filmstrip&#8221; issue probably doesn&#8217;t affect many users, most of whom are probably using strictly MP3s and FLVs. But I have occasionally had use to post a series of MP3s, each with its own accompanying JPEG. Although Flowplayer supports this by adding a JPEG followed by an MP3 in a playlist, if you use &#8220;rewind&#8221; to the previous clip it goes back to the MP3&#8211;but not the accompanying image.<\/p>\n<p>Although the documentation has improved dramatically since I first started using it&ndash;config parameters now include lists of valid options or formats&ndash;their examples are occasionally buggy. I have a feeling this is in part due to their release schedule, which would require substantial testing of their various examples across browsers. Their forums seem to get a fair amount of use, and the developers are present to answer questions&ndash;but occasionally an important question goes completely unanswered. They do offer paid support, which presumably guarantees a response.<\/p>\n<p>Also, one of the developers has a <a href=\"http:\/\/flowplayer.org\/forum\/users\/1421\">photo of a man without a shirt<\/a> (presumably himself) for his forum icon. Mind you, there are several bare-chested photos of me online, but none that I use for professional purposes. He&#8217;s Finnish, so possibly they have a more relaxed sense of decorum!<\/p>\n<p>MP3s automatically use progressive download instead of streaming (unless I didn&#8217;t set it up properly, which is always a possibility).<\/p>\n<p>JW Player, on the other hand seems to be a more mature product. Their <a href=\"http:\/\/developer.longtailvideo.com\/trac\/roadmap?show=all\">release schedule<\/a> follows a (somewhat) more reasonable pace, and includes substantial detail about new features and bug fixes. I have had fewer errors and issues configuring JW Player than I had with Flowplayer. However, JW PLayer has a few drawbacks as well:<\/p>\n<ul>\n<li>Documentation information hard to locate<\/li>\n<li>Javascript not as slick<\/li>\n<li>Overall look not as polished<\/li>\n<\/ul>\n<p>The JW Player site is sprawling and a bit unorganized. You&#8217;d expect to find a link somewhere labeled &#8220;documentation,&#8221; but if you wanted to find a list of supported config parameters you&#8217;ll need to go to <em>Support&#8211;Developers&#8217; Wiki<\/em>. Their forums are organized into categories, but you can&#8217;t restrict a search to a specific category. (Both JW Player and Flowplayer could benefit from improved site searches, in my opinion.) Although the software behind the Flowplayer forums is superior, I&#8217;ve never had an unanswered question on the JW Player forums. (I don&#8217;t know if the responses have come from developers or other users, but it&#8217;s something to consider.)<\/p>\n<p>While Flowplayer&#8217;s Javascript looks very much like jQuery (and works with jQuery), JW Player&#8217;s Javascript looks a little clumsy by comparison. I wrote wrapper functions for both to supply my most frequently used config parameters, so I never use their code directly. But it&#8217;s something to consider.<\/p>\n<p>The JW Player controls do not look as good as Flowplayer&#8217;s. JW Player does offer a variety of different skins, as well as tutorials on customizing existing skin files or creating your own, but none of the existing skins look as good, to me, as the default Flowplayer controls (you can supply a custom Flowplayer controlbar as well). JW Player skins offer built-in playlist functionality, toggled on or off with a config parameter (which is convenient&ndash;Flowplayer requires a Javascript plugin), but it does not look as good as the Flowplayer playlist, nor is the look as easily modified.<\/p>\n<p>Both are clearly good players, but at this point in time I am recommending JW Player over Flowplayer. Although Flowplayer&#8217;s look is more polished, JW Player seems the more reliable and mature product. Your experience with either of these players, or other Flash-based video players, is welcome. <\/p>\n","protected":false},"excerpt":{"rendered":"<p>Over the past several months, I have worked with both Flowplayer and JW Player as embedded FLV video players. Why wouldn&#8217;t you just upload your videos to YouTube and use their embedded player? That&#8217;s a pretty fair question, as I think YouTube provides: An excellent player that your users are already familiar with A variety &hellip; <a href=\"https:\/\/osric.com\/chris\/accidental-developer\/2009\/03\/embedded-flv-video-players-flowplayer-and-jw-player\/\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">Embedded FLV video players: Flowplayer and JW Player<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[60],"tags":[64,61,63,62,65],"class_list":["post-157","post","type-post","status-publish","format-standard","hentry","category-video","tag-embedded-video","tag-flowplayer","tag-flv-players","tag-jwplayer","tag-youtube"],"_links":{"self":[{"href":"https:\/\/osric.com\/chris\/accidental-developer\/wp-json\/wp\/v2\/posts\/157","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/osric.com\/chris\/accidental-developer\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/osric.com\/chris\/accidental-developer\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/osric.com\/chris\/accidental-developer\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/osric.com\/chris\/accidental-developer\/wp-json\/wp\/v2\/comments?post=157"}],"version-history":[{"count":5,"href":"https:\/\/osric.com\/chris\/accidental-developer\/wp-json\/wp\/v2\/posts\/157\/revisions"}],"predecessor-version":[{"id":591,"href":"https:\/\/osric.com\/chris\/accidental-developer\/wp-json\/wp\/v2\/posts\/157\/revisions\/591"}],"wp:attachment":[{"href":"https:\/\/osric.com\/chris\/accidental-developer\/wp-json\/wp\/v2\/media?parent=157"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/osric.com\/chris\/accidental-developer\/wp-json\/wp\/v2\/categories?post=157"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/osric.com\/chris\/accidental-developer\/wp-json\/wp\/v2\/tags?post=157"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}