FAQ
This is a summary of the popular questions that crop up on the mailing list. We’ve linked to the original threads in case you’re curious for more. If you can’t find an answer here or by searching the list please ask away! We’ll do our best to answer.
What can panda do?
Which codecs can Panda encode into?
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. Wikipadia page has a list of implemented video codecs. For Panda AMI setup, see this and this google group thread
- List: Error encoding AVI files
- List: FFMpeg build and supported formats (for decoding)
- List: iPhone/iPod Touch Profile
- List: How to set up Panda locally (specifically, MP4Box and neroAacEnc)
How are videos streamed?
By default videos are served progressively from S3.
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.
Does Panda handle Audio or Images?
Audio is on the “Wish list” but there is no ETA at the moment. Images have a whole separate set of requirements and are unlikely to be supported by Panda.
Is Panda in use in production?
Yes. Panda is in production on some of New Bamboo’s recent sites, including Protect The Human.
Let us know if you’re using Panda and we’ll all a link to you here.
Integrating Panda
Can I use Panda with my [insert framework] app?
Definitely. There should be no difference at all in complexity to integrate panda with django as opposed to ruby. It’s just that the tutorial hasn’t been written yet (so you’d make yourself extremely popular if you contributed one!)
I’d take a look at API Docs and if you’re interested in making a python library you might like to take a look at what the ruby one does. Having said that it’s really only a trivial wrapper around 3 http calls - create a new video, show details for 1 video, and show details for all videos - so you could easily manage without it.
Does Panda offer any CMS features?
Our current focus is uploading and encoding video. CMS related features are generally best implemented in the client application, but we are open to feature suggestions if they are generic enough.
Infrastructure (EC2, S3, SimpleDB) & Scaling
How much will it cost to run panda on AWS?
Although the EC2 instance isn’t required to view videos (as they come directly from S3), it is required to serve the upload form and receive the subsequent upload. Doing this allows us to have a nice upload progress bar and also means your app doesn’t have to handle the (potentially very large) video file.
The small EC2 instance works out at about $72 a month plus bandwidth. S3 costs entirely depend on the number of videos and your usage.
Can I run Panda on a 64-bit EC2 instance?
At the moment we’re only supplying a 32 bit AMI image. According to Amazon’s AWS price list, Small Instance and High-CPU Medium Instance are 32 bit.
Can I Panda run without using Amazon web services?
Yes, but it won’t be as easy as using the Amazon AMI.
-
Please follow this document, if you decide to install all necessary libraries by yourself, instead of using pre-configured environment at EC2 . This document assums to install ffmpeg under OSX. To install it under Debian Unix, please see this thread. To install it under Ubuntu, there is a capistrano recipe, but you have to tweak the recipe a bit to get panda project from stable, rather than from fork.
-
S3 is default option for Video storage location. Starting version 1.2, you can switch to filestore. Please note that you need to setup EBS, if you choose local filestore within EC2 for data persistancy.
-
SimpleDB is still closed beta , so it will take time for you to get an account. There are a few ways to setup SimpleDB alternatives for test purpose. See this Tumblr post
-
List: How to set up Panda locally (specifically, MP4Box and neroAacEnc)
Can I use Panda with MySQL?
Yes. Coming soon.
Does Panda scale?
Scalability is something we’ve thought a lot about. Right now the architecture is geared toward allowing a cluster of encoding instances to play nicely together. Shortly we’re going to start work on making the scaling (startup/shutdown) automatic and responsive to the amount of video waiting in the queue. This is something that’s much easier to do in Panda than in some of the other solutions our there.
That being said, with Amazon’s new 8 core instance it takes a fair bit to warrant a full auto scaling deployment.
To run encoding process in parallel, you can simply fire up more encoder process in different ports.
merb -r bin/encoder.rb -p 5001 -e encoder
merb -r bin/encoder.rb -p 5002 -e encoder
merb -r bin/encoder.rb -p 5003 -e encoder
