Weekly Cloud Application: Panda Stream

Posted by Alin Irimie on December 29, 2008

Panda is an open source solution for video uploading, encoding and streaming, running completely within Amazon’s Web Services using customized EC2 instances, S3 and SimpleDB. It has support for the encoding profiles which FFmpeg supports. They include FLV for flash and H264 for iPhone.

The service is easy to integrate with your application. The EC2 instance will provide a simple REST (both YAML and XML formats support) API for listing, creating, editing and deleting videos. When a new video is created on your site the actual file upload takes place in a popup or iframe. Doing so means that the large video file is uploaded directly to your Panda EC2 instance so you don’t have to handle it within your application. The server also is configured to support an upload progress bar so user’s can see the video upload in progress. It cannot get any easier than this.

The range of encoding support does not depend on Panda, but rather depends on ffmpeg and Libavcodec(open source encoder/decoder tools and libraries Panda use underneath) encoding capability. Wikipedia page has a list of implemented video codecs. For Panda AMI setup, see this and this google group thread.

The videos are streamed progressively from S3 but you can change that if you’d like. If you change the settings to store videos on the local filesystem, you can use the Nginx Http Flv module (which is available on the Amazon AMI) or any other streaming server of your choice.

Some limitations: 

  • Audio is on the “Wish list” but there is no ETA at the moment.
  • Images are not supported and they won’t be ever probably
  • At the moment they’re only supplying a 32 bit AMI image
  • MySQL support is coming soon

You can find the API documentation here. Simple and straight forward. Also, they provide a ruby gem, hosted on github

If you’re thinking to run Panda without Amazon services, you can but it won’t be that easy. Follow this document for OS X, see this thread for Debian, and there is a capistrano recipe for Ubuntu but you have to tweak the recipe a bit to get Panda project from stable, rather than from fork. You can use local file storage for video storage location. Also, see this post about using Panda without SimpleDB. As I said, is not that easy, but possible.

I cannot wait for somebody to do a Windows Azure implementation.

VN:F [1.0.6_327]
Rating: 4.5/5 (2 votes cast)
Share it:
  • Digg
  • del.icio.us
  • Facebook
  • Google
  • E-mail this story to a friend!
  • Live
  • NewsVine
  • TwitThis
  • StumbleUpon
  • Technorati

Related posts:

Trackbacks

Use this link to trackback from your own site.

Comments

Leave a response

Comments