Panda activity widget

Keep track of all your encoding jobs

We’ve recently launched a new great way to keep track of your encoding queue, rather than logging into the app. The Panda activity web widget is an easy glance at what videos are being encoded, and those that are pending.

Data includes the filename, the profile, encoding process, and number of jobs left in the queue.

Configure it!

It’s really easy to get the widget on your website:

  1. Log into your account at
  2. Click on a cloud
  3. Under Cloud Settings, change “Enable Web Widget” to Yes.
  4. Copy and Paste the code to your website.
  5. Click Save Changes at the bottom of the Cloud Settings page.

Read More

Encode Faster with Panda Multi-Core Encoders

We’ve been experimenting with ways to increase the speed of encoding times and we’ve developed a feature that allows you to turn the knob, slam the gas pedal, or push on the thrust lever. Multi-Core encoders.

Panda’s value proposition is buy an encoder and use it as much as you’d like. Our customers love that. If you have more volume of encoding jobs, you would add encoders. Adding encoders doesn’t increase the speed of jobs – you simply can encode more at once.

Video Encoding Kryptonite

Enter Panda Multi-Core. We think we have found the kryptonite to video encoding by enabling the use of multi-core encodings. With Panda Multi-Core, you now have the ability to turn on 2-32 cores on your video encoding processes.

At this point we are testing how much faster you can encode your videos using our most popular codecs, like WebM. We are still testing how fast we can increase the speed, but it is theoretically possible to increase encoding speed by 2x, 10x or even more.

Scenarios explained

Lets say you’re currently on our Crane plan, which is four encoders. That gives the capability of encoding four videos at the same time. With Panda Multi-Core you can turn up the speed on each of those encoders by as many cores as added.


Those 4 encoders can tap into our multi-core system, and you can choose to have as many cores on each of those 4 encoders. For example, you can encode four videos at once, but with up to 32 cores each!

Its kinda like being in a water slide race against your best buds, but you just put on a jet pack.

Apply for Beta

Currently we are testing out multi-core encoders with a few of our customers and seeing great results. Do you want to reduce your encoding times by 2, 10 or even 32 times? Give us a shout!

Read More

Timestamps in Panda


A few weeks back we showed you how you could implement timestamps on your encoded videos, and we had a lot of great feedback – thank you!

A few of you also asked if this was available in the GUI as well. So, we did it! You can login to your Panda account, and select or create a new profile that you want to use for timestamps. You can check the timestamps box, and that will turn on the feature.

Currently, the options are limited, simply turning it on and off. If you are looking for more options in the GUI for timestamps, please let us know!

The video encoder adds the timestamp with FFMPG and works best with FPS of 24, 25, 30, 50 and 60.


Read More

The Program Praises Speedy Panda Integrations

We had the chance to sit down with Coe Lottis and Eli Anderson from The Program to discuss how they used Panda for their newest project. Coe is a Partner and Director of brand Strategy. He crafts concepts for their brand partners, then brings those concepts to market. Eli is a Senior Application Engineer.

About The Program

The Program is a digital agency located in Portland, Oregon with a growing client base in Los Angeles. The agency has a number of big brand clients, such as Nike, Twitter, Obey Clothing and more. Most of their clients lean on them for technology, and new and innovative ways of interacting with consumers across digital touchpoints.

The Program’s newly launched project allows users to upload their own content. This year-long project uses Panda. “It has been a fun one for us,” Coe says. Eli adds: “The app is live in production. Everything is working great.”


Ease Of Use Made Panda The Obvious Choice

For this project, The Program was looking for a cloud video encoding solution. They relied on their application engineers to pitch solutions they thought would be a good fit for the project’s needs and requirements.

0ee4f96The Program’s tech lead, Eli worked with Panda previously, so suggested it for this project. “This was the third large project integration that I used Panda for. I evaluated it along with a couple other solutions. One of the main reasons I chose it for this project is the ease of integration. I mainly develop on Ruby, and did all the integration from scratch. This project uses Ruby on Rails and Panda has great integration there.”

“What it came down to was ease-of-use more than anything,” adds Coe Lottis. “As we looked at what some of the options were, it became apparent that Panda was the right fit. Having a tech lead that was familiar and comfortable working with Panda made it our obvious choice.”

User Integrations Makes Panda A Turnkey Product That The Program Recommends

Panda can easily be integrated using a web interface, javascript API or other integration. The Program sees this as one of its key benefits. Eli used Panda’s Ruby Gem to integrate. He goes on to say, “I also really like the debug console that Panda has for uploads, and being able to send messages back to the application. It’s super handy. The tool is set up well, and is easy to use.”

Coe LottisWe asked Coe if he would recommend Panda for similar solutions. “I would suggest Panda for its user integration. When we have a large project that takes upwards of a year, we look for solutions that don’t require heavy lifting from an integration perspective. Panda has a turnkey solution that provides all the features we needed for the requirements of this project. We were able to roll it out with minimal effort, based on the service that Panda offers.”

Panda Doesn’t Slow The Train

Sometimes, integrating third-party tools can slow down a project path. Not so with Panda, Coe states: “When you look at having to integrate third-party systems, it can bog things down and really slow the train. It’s key for us to work with a third-party vendor, like Panda, where we can get the support and information that we need in a timely manner. You can hit hurdles when you work through certain levels of integration that sometimes aren’t necessary. It may boil down to a third-party service not remaining focussed on what their piece is. Panda focusses on what it does and does it really well. It’s allowed us to plug in and keep moving along.”

Panda’s Pricing Sweetens The Deal

In addition to ease-of-use and ease-of-integration, Coe Lottis goes further to say: “The costs are great. Panda’s pricing model allowed us to hang on to our budget.”

Read More

Panda’s Video Encoders Get 50% More Memory

manydevicesWe’re always making improvements to Panda, and have now ensured that your video encodings run faster and more stable than ever before as we’ve allocated them 50% more memory. Specifically we’ve found that the WebM profile has benefitted the most, as it is one of the more popular codecs for delivering high quality video over the web.

What is WebM?

WebM is 100% free, open source audio-video container structure designed to provide royalty-free video compression for use with HTML5 video. The Project releases software under a BSD-style license. Users are granted a worldwide, non-exclusive, no-charge, royalty-free patent license. WebM files consist of video streams compressed with the VP8 video codec and audio streams compressed with the Vorbis audio codec.

Why use WebM?


The WebM format was built for the future of the web. It can deliver high quality video while adapting to bandwidth changes, processing and memory allocations on each unique device. From doing hundreds of thousands of tests, VP8 delivers efficient bandwidth usage, which lowers the cost of storing and serving the video over time. Effectively, the time it takes to encode is a small hinderance for the long term benefit.

Why do videos encoded with WebM take so long?

VP8 in highest quality will take the longest. But the folks behind the project, specifically Google, have made it their next priority to speed up encoding times in the open source project.

We looked at our systems and found that WebM encodings use a lot of memory. To provide you with the best service possible, we are now allocating 50% more memory to help increase the speed, and stability of encodings.

You’re In Good Company

browsersNative WebM playback is supported by:

  • Google Chrome
  • Mozilla Firefox
  • Opera

Other browser support:

  • Internet Explorer 9 requires third-party WebM software
  • Safari for Windows and Mac OS X relies on QuickTime to play web media, and requires a third-party plug-in

Google’s WebM Project Team will release plugins for Internet Explorer and Safari to allow playback of WebM files through the standard HTML5 <video> tag.

Software and hardware support is expanding quickly and include:

  • Android
  • Nvidia
  • Intel
  • YouTube
  • Skype
  • Adobe’s Flash Player (will be updated to support WebM)

We’re here for you!

Panda’s support team is always here to help our users. If you have any further questions about WebM, or any other codec, ping us at

Read More

Timestamps in Panda videos

The following is a post explaining how to use timestamps in Panda using our API. Interested in having this feature added to the web interface? Request beta access

article-2539097-1AA6876200000578-761_634x485In Panda, it’s easy to setup the encoding pipeline with presets developed by our team – with just a few clicks, it’s possible to configure profiles for the most popular audio and video formats on the web. With that comes some caveats, such as limiting how much you can configure.

FFmpeg and corepack-3

You might have already stumbled across a chapter in our documentation titled “FFmpeg Neckbeard”. It describes how you can create encoding profiles by specifying the whole FFmpeg command by yourself, which means that everything that our FFmpeg can do is available. We’ve recently added the FreeType library to corepack-3 (it’s the newest stack we have), and that made a few new things possible. One of them is adding timestamps to videos. This can be done through FFmpeg’s “drawtext” filter.

Play time

Okay, so let’s create a new profile that, besides doing some typical transcoding, adds a small timestamp in the top-left corner. The filter that does this can be configured by passing the below argument to FFmpeg:

-vf "drawtext=fontfile=/usr/fonts/FreeSans.ttf:timecode='00:00:00:00':r=25:x=5:y=5:fontcolor=black"

The “drawtext” filter takes a few arguments that tell FFmpeg how the timestamp should be rendered, the full list is available in FFmpeg’s documentation. And, as you can see, it needs a font. The example above uses “FreeSans.ttf” – it’s one of the fonts from the GNU FreeFont library, and the whole collection is available in /usr/fonts/ directory, so the following values of “fontfile” will work on Panda:


Now we can apply this knowledge to a profile in Panda. There are plenty of examples of creating new profiles in “FFmpeg Neckbeard”, and basically adding a timestamp is as simple as adding the filter argument to the command. The important thing is that you use corepack-3 – “drawtext” will not work with older stacks. That’s how this would look like in Ruby:

require 'panda'

Panda.configure do
  access_key "your_access_key_123"
  secret_key "your_secret_key_42"
  cloud_id "id_of_the_target_pand_cloud"
  api_host ""

drawtext_args_map = {
  :fontfile => "/usr/fonts/FreeSans.ttf",
  :timecode => "'00\:00\:00\:00'", # timestamp offset
  :r => "25", # FPS of the timestamp, for 1:1 ratio it should be equal to the FPS of input videos
  :x => "5", # x and y specify position of the timestamp
  :y => "5",
  :fontcolor => "black",

drawtext_args = { |k, v| "#{k}=#{v}" }.join(":")

  :stack => "corepack-3",
  :name => "timestamped_videos_v2",
  :width => 480,
  :height => 320,
  :video_bitrate => 500,
  :audio_bitrate => 128,
  :extname => ".mp4",
  :command => "ffmpeg -i $input_file$ -threads 0 -c:a libfaac" 
              " -c:v libx264 -preset medium $audio_sample_rate$" 
              " $video_bitrate$ $audio_bitrate$ $fps$ $filters$" 
              " -vf "drawtext=#{drawtext_args}" -y $output_file$"

The result (the original video is on

That is nice, but we can do better. The timestamp could be more visible and in a better position – by using different “drawtext” switches we can add a background to the timestamp and place it near the bottom, centered. Using drawtext’s built-in variables we can even do this independently from video’s dimensions. The following does exactly that:

drawtext_args_map = {
  :fontfile => "/usr/fonts/FreeSans.ttf",
  :timecode => "'00\:00\:00\:00'",
  :r => "25",
  :x => "(w-tw)/2", # w - width, tw - text width
  :y => "h-(2*lh)", # h - height, lh - line height
  :fontcolor => "white",
  :fontsize => "18",
  :box => "1",
  :boxcolor => "black@1", # 1 means opaque
  :borderw => "5",
  :bordercolor => "black@1"

And the final result:

If you have any questions on this subject, send a note to We’re happy to help.

Read More

Panda Now Supports Google Compute Engine – Experience Speed Increases Of Up To 50% Faster

Here at Copper, we’ve been busy working to bring you the best performance for your app. We’re really excited to announce that we have added Google Compute Engine as an encoding option to Panda.

panda-gceGoogle Compute Engine Benefits

With Panda being deployed on Google Compute Engine,  the result is astounding.  Encoding videos can be up to twice as fast as previous options. Our users can now experience speed increases of between 30% to 50% for standard encodings within Panda.

Google Cloud Storage

When users upload video to Panda and choose Google Compute Engine, it encodes via GCE and then we transfer it to your Amazon S3 account, just like always. In the near future, we’re going to add support for Google Cloud Storage for those of you  who would prefer to use it. If you are running on Google Cloud exclusively, you’ll soon be able to leverage it’s full benefits with Panda.

Panda optimized for Google Compute Engine

You’ve been asking for multi-cloud support and we’re delighted to be working with our partners at Google to get here today. We completely reimagined our deployment process to support GCE as we take advantages of the inherent infrastructure differences between public cloud vendors. Panda was originally built on certain features of the AWS infrastructure, so we went back to the core and re-wrote them to optimize for GCE. And now you can see the result of this in even faster encodings.

We’re thrilled to be able to bring you the best in cloud video encoding. If you have any ideas or suggestions to help us do this, let us know at

Read More

Panda Adds Support for Retina with Apple Live Streaming

We’ve now made Panda even better for developers who want to implement Apple live streaming through HTTP Live Streaming (HLS). We’ve added an additional “resolution” tag which the video player is able to choose the best stream resolution. By the way, the tag is optional, but recommended if the variant stream includes video.

What is HTTP Live Streaming?

HTTP Live Streaming (HLS) allows you to stream live and on-demand video and audio to an Apple mobile device. As an adaptive streaming protocol, HLS has several advantages:

  • Multiple bit-rate encoding for different devices

  • HTTP delivery

  • Segmented stream chunks for live streams over widely available HTTP infrastructure

How does HTTP Live Streaming work?

HLS lets you send streaming video and audio to any supported Apple product. It segments video streams into 10-second chunks that are stored using a standard MPEG-2. HTTP Live Streaming also provides for media encryption and user authentication, allowing publishers to protect their work.

How does a stream get into HLS format?

  1. The video and audio source is encoded to an MPEG-2 transport stream container, with H.264 video and AAC audio, which are the codecs that Apple devices support

  2. Output profiles are created (a single input stream may be transcoded into several output resolutions depending on the device)

  3. The streams are segmented, and an index file is used to keep track of the segments

How do HLS downloads work?

The user downloads the index file via a URL that identifies the stream. For a given stream, the client then fetches each stream chunk in order. Once the client has enough of the stream downloaded and buffered, it’s displayed. Remember to use the <video> tag to embed HTTP Live Streaming, and use the <object> or <embed> tags only to specify fallback content.

Read More

Panda Rewritten From Scratch In Ruby 2.0: Why Performance Matters With Anna Leśniak

We recently interviewed Anna Leśniak, our Senior Developer here at Panda, about rewriting the application in Ruby.

Why was this update important?

Written in Ruby – that’s Ruby, not Ruby on Rails – it’s important for Panda to stay up to date with every version of the software. There’s big difference between the release of first generation Ruby, compared to Ruby 2.1.2. Keeping up to date is especially important in the Ruby community. It’s one of the top 10 most popular programming languages worldwide.

What was your goal with upgrading Panda in Ruby?

The major reason was performance. We knew the performance would be much better in Ruby 2.0.

How it was done?

We did over 1,000 tests: 600 tests for the application, and each module was also tested. We decided that the best way to deploy into production was to create new servers and kill the old servers. In Panda, it’s really easy to create new servers.

Are you happy with the results?

Definitely! We rewrote the Panda application from Ruby 1.9 to the current version to ensure that the platform  works faster than ever before. And it does. Panda works lightning fast.
Powerful, Lightning Fast, Cloud-Based Video Encoding
Upload Once, Play On Any Device, In Any Format

Read More

Announcing Panda Turbo

Add more encoders to help clear short term spikes or hit deadlines.

We have exciting news for Panda users who need to scale up their capacity to encode more files simultaneously for a short term period.

Turbo mode means that you don’t have to upgrade your monthly plan – you simply buy what you need – and the additional encoders will automatically expire after the time selected.


When you log into your Panda account, on the Clouds page there is a link “Buy extra encoders for a defined time period”. You can then buy 4, 12, or 24 additional encoders for 12 to 48 hours.

Simply choose your two options and confirm. The additional charges will be added to your next monthly service charge and will be itemised in your receipt.

Our first step towards more flexible encoding.

This is our first step in introducing more flexibility into Panda based on discussions with our customers. We’re eager to hear your thoughts on Turbo mode, and suggestions for other improvements we can make to Panda in the future.

Any feedback good or bad please email

Read More