<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: Using Drupal to deliver video</title>
	<atom:link href="http://blog.raisedeyebrow.com/2009/12/using-drupal-to-deliver-video/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.raisedeyebrow.com/2009/12/using-drupal-to-deliver-video/#utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=using-drupal-to-deliver-video</link>
	<description>What's turning heads at Raised Eyebrow</description>
	<lastBuildDate>Mon, 05 Jul 2010 17:48:54 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Colin Calnan</title>
		<link>http://blog.raisedeyebrow.com/2009/12/using-drupal-to-deliver-video/comment-page-1/#comment-2252</link>
		<dc:creator>Colin Calnan</dc:creator>
		<pubDate>Tue, 22 Dec 2009 22:31:54 +0000</pubDate>
		<guid isPermaLink="false">http://blog.raisedeyebrow.com/?p=103#comment-2252</guid>
		<description>Thanks for the comment Steve, glad you enjoyed the post. Steal away, and if you need more let me know, I&#039;m well versed in the video stuff at this stage. Do you have any idea of preliminary specs at this stage?</description>
		<content:encoded><![CDATA[<p>Thanks for the comment Steve, glad you enjoyed the post. Steal away, and if you need more let me know, I&#8217;m well versed in the video stuff at this stage. Do you have any idea of preliminary specs at this stage?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Steve</title>
		<link>http://blog.raisedeyebrow.com/2009/12/using-drupal-to-deliver-video/comment-page-1/#comment-2251</link>
		<dc:creator>Steve</dc:creator>
		<pubDate>Tue, 22 Dec 2009 22:28:09 +0000</pubDate>
		<guid isPermaLink="false">http://blog.raisedeyebrow.com/?p=103#comment-2251</guid>
		<description>That&#039;s a great &amp; useful piece on video you just wrote! tx! I&#039;ll likely steal some for the project we&#039;re about to start - it looks like I&#039;m about to do my first large-scale drupal-based site in the next 2-3 months. :)

One note: There&#039;s a minor typo in the Aspect Ratio paragraph: &quot;for the profieration of the widescreen&quot;</description>
		<content:encoded><![CDATA[<p>That&#8217;s a great &amp; useful piece on video you just wrote! tx! I&#8217;ll likely steal some for the project we&#8217;re about to start &#8211; it looks like I&#8217;m about to do my first large-scale drupal-based site in the next 2-3 months. :)</p>
<p>One note: There&#8217;s a minor typo in the Aspect Ratio paragraph: &#8220;for the profieration of the widescreen&#8221;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Colin Calnan</title>
		<link>http://blog.raisedeyebrow.com/2009/12/using-drupal-to-deliver-video/comment-page-1/#comment-2249</link>
		<dc:creator>Colin Calnan</dc:creator>
		<pubDate>Tue, 22 Dec 2009 18:48:18 +0000</pubDate>
		<guid isPermaLink="false">http://blog.raisedeyebrow.com/?p=103#comment-2249</guid>
		<description>Wow Jamie, that&#039;s an impressive amount of custom work. Could you give an estimate of how long building such a custom system took? As I mentioned in my post, I&#039;ve tried to find the simplest way to quickly implement video without having to encode on the fly or use any special upload tools.

To recap it seems that you:

&lt;ul&gt;
	&lt;li&gt;Created a custom uploader&lt;/li&gt;
	&lt;li&gt;Uploader was hosted on a seperate server and communicated with Drupal via FormAPI&lt;/li&gt;
	&lt;li&gt;Video files are encoded on the fly using FFMPEG?&lt;/li&gt;
&lt;/ul&gt;

And future updates:
&lt;ul&gt;
	&lt;li&gt;Opening the system up to public uploads&lt;/li&gt;
	&lt;li&gt;Instant feedback to users on upload status&lt;/li&gt;
	&lt;li&gt;Ability to modify uploads after the fact.&lt;/li&gt;
&lt;/ul&gt;

Well done, maybe you could write up the process with some code samples.

- Col</description>
		<content:encoded><![CDATA[<p>Wow Jamie, that&#8217;s an impressive amount of custom work. Could you give an estimate of how long building such a custom system took? As I mentioned in my post, I&#8217;ve tried to find the simplest way to quickly implement video without having to encode on the fly or use any special upload tools.</p>
<p>To recap it seems that you:</p>
<ul>
<li>Created a custom uploader</li>
<li>Uploader was hosted on a seperate server and communicated with Drupal via FormAPI</li>
<li>Video files are encoded on the fly using FFMPEG?</li>
</ul>
<p>And future updates:</p>
<ul>
<li>Opening the system up to public uploads</li>
<li>Instant feedback to users on upload status</li>
<li>Ability to modify uploads after the fact.</li>
</ul>
<p>Well done, maybe you could write up the process with some code samples.</p>
<p>- Col</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jamie</title>
		<link>http://blog.raisedeyebrow.com/2009/12/using-drupal-to-deliver-video/comment-page-1/#comment-2248</link>
		<dc:creator>Jamie</dc:creator>
		<pubDate>Tue, 22 Dec 2009 17:49:31 +0000</pubDate>
		<guid isPermaLink="false">http://blog.raisedeyebrow.com/?p=103#comment-2248</guid>
		<description>For crooksandliars.com, I ended up going with a 100% custom system. We needed the ability to handle multiple media files per post, so to do that I ended up using a quicktags system (similar to Wordpress). The video metadata is stored in it&#039;s own table, and has a very relational style system with numerous other tables to track video/post relationship, statistics and a few other minor items.

This system has worked out very well the 14 months we have been running it and I am getting ready to roll out another major update to it in the next month or so. Currently I am using SWFUpload to handle the file uploads, but am moving to a totally separate uploader. This uploader will actually be a separate server on a subdomain. The upload form is still a Drupal form, but the action is set to the special uploader. All validation and handling is done there, then the results are passed back to Drupal, so the actual use of this separate server isn&#039;t that obvious to the end user.

The big advantages of this is being able to use a different method for upload progress (php_upload_progress), while still being able to maintain APC on the main site. Also our video encoding is handled by a separate server, and the uploads will now go directly to that server instead of to the main web server and then have to be transferred over to the encoding server. 

There was a big headache getting this working, mostly with cross-domain XHR requests. To overcome that I had I decided to use the database and special keys transferred between the requests, stored with the appropriate action data in the database (ie: validation errors, success, etc.) 

We are getting ready to open up video uploads to our general membership next year, so security was a big concern. Going this route I was able to add in a lot of extra security, plus have the added benefit of parsing the video meta out of the uploaded file directly from FFMPEG as soon as the upload is complete. That&#039;s a big bonus as our end users will instantly know if there is a problem with the uploaded video or not. It will also instantly create a screen grab from the video once uploaded. After the video is fully encoded and live, users will have the option to go back and change the screen cap (either by uploading a new one, or using a special Flash based editor I developed) and/or trim the video length.</description>
		<content:encoded><![CDATA[<p>For crooksandliars.com, I ended up going with a 100% custom system. We needed the ability to handle multiple media files per post, so to do that I ended up using a quicktags system (similar to Wordpress). The video metadata is stored in it&#8217;s own table, and has a very relational style system with numerous other tables to track video/post relationship, statistics and a few other minor items.</p>
<p>This system has worked out very well the 14 months we have been running it and I am getting ready to roll out another major update to it in the next month or so. Currently I am using SWFUpload to handle the file uploads, but am moving to a totally separate uploader. This uploader will actually be a separate server on a subdomain. The upload form is still a Drupal form, but the action is set to the special uploader. All validation and handling is done there, then the results are passed back to Drupal, so the actual use of this separate server isn&#8217;t that obvious to the end user.</p>
<p>The big advantages of this is being able to use a different method for upload progress (php_upload_progress), while still being able to maintain APC on the main site. Also our video encoding is handled by a separate server, and the uploads will now go directly to that server instead of to the main web server and then have to be transferred over to the encoding server. </p>
<p>There was a big headache getting this working, mostly with cross-domain XHR requests. To overcome that I had I decided to use the database and special keys transferred between the requests, stored with the appropriate action data in the database (ie: validation errors, success, etc.) </p>
<p>We are getting ready to open up video uploads to our general membership next year, so security was a big concern. Going this route I was able to add in a lot of extra security, plus have the added benefit of parsing the video meta out of the uploaded file directly from FFMPEG as soon as the upload is complete. That&#8217;s a big bonus as our end users will instantly know if there is a problem with the uploaded video or not. It will also instantly create a screen grab from the video once uploaded. After the video is fully encoded and live, users will have the option to go back and change the screen cap (either by uploading a new one, or using a special Flash based editor I developed) and/or trim the video length.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
