Platform documentation & tutorials
Integrate Panda with your web app
- Full Guides
- Integration
- Profiles
- Downloads
- More...
Encoding profile presets
Panda provides several encoding profile presets which make it easy to setup the correct output formats for your videos.
To manage your profiles, log into your Panda account, select your cloud and click on “profiles” (assuming that you already have a cloud).

If you click Add profile you’ll be able to select from one of the handy presets. Each has a recommended width and height, but these can be changed if desired. One you’ve saved a new profile, videos you upload will automatically be encoded using it.

Available presets
Below you’ll find details about the presets available:
MP4 (H.264)
H.264 video with AAC audio for playback on HTML5 browsers, desktop players, Flash, iPhone (3GS and above) and iPad. Use H264 baseline to support most of phones like first iPhone’s and Blackberry’s.
| Quality | Standard | High | Baseline |
|---|---|---|---|
| preset_name | h264 | h264.hi | h264.baseline |
| h264 profile | high | high | baseline |
| video bitrate | 500kbps | 1000kbps | 500kbps |
| audio bitrate | 128kbps | 128kbps | 128kbps |
| resolution | 480x320 | 720x480 | 480x320 |
WebM (VP8)
VP8 video with Ogg Vorbis audio for playback in HTML5 compatible browsers.
| Quality | Standard | High |
|---|---|---|
| preset_name | webm | webm.hi |
| video bitrate | 500kbps | 1000kbps |
| audio bitrate | 128kbps | 128kbps |
| resolution | 480x320 | 720x480 |
OGG (Theora)
Theora video with Ogg Vorbis audio for playback in HTML5 compatible browsers.
| Quality | Standard | High |
|---|---|---|
| preset_name | ogg | ogg.hi |
| video bitrate | 500kbps | 1000kbps |
| audio bitrate | 128kbps | 128kbps |
| resolution | 480x320 | 720x480 |
iPhone & iPad Adaptive Stream (multi-bitrate)
Special multi-bitrate segmented video for streaming to Apple devices. Streams of 5 varying qualities are encoded and the most appropriate quality is automatically served to users. H.264 video with AAC audio.
| Quality | Adaptive quality | iPad only | |||
|---|---|---|---|---|---|
| preset_name | iphone_and_ipad | ||||
| video bitrate | 110kbps | 200kbps | 400kbps | 600kbps | 800kbps |
| audio bitrate | 40kbps | 40kbps | |||
| resolution | 400x300 | 640x480 | |||
This profile uses an adaptive technique, and the iPhone/iPad streams one version or the other depending on the quality of the phone signal. All sub-profiles are always generated, and their specs have been set to the shown values by Apple.
MP3
MP3 audio preset.
| preset_name | mp3 |
|---|---|
| audio bitrate | 192kbps |
M4A (AAC)
MP4 audio preset.
| preset_name | m4a |
|---|---|
| audio bitrate | 192kbps |
OGA (Vorbis)
Ogg Vorbis audio preset.
| preset_name | oga |
|---|---|
| audio bitrate | 192kbps |
Create a profile from a preset using the API
Panda gives you complete control of presets using the API and the available libraries. For this, simply pass the preset_name attribute instead of the command attribute.
In ruby it would look like this
Panda::Profile.create!({
:preset_name => "h264", // A valid preset name, as per the tables above
:name => "my-h264", // Unique name for this profile
:width => "480",
:height => "320"
})
Add Watermarking
You may want to add watermarking to your encodings. Use the api to set the url and the position of a remote image to use as a watermark.
Panda::Profile.create!({
:name => "h264",
:preset_name => "h264",
:width => 480,
:height => 320,
:watermark_url => "http://www.pandastream.com/images/panda_logo.png",
:watermark_bottom => 5,
:watermark_right => 5
})
Advanced preset
You can set numerous of options to make your encoding just right.
Panda::Profile.create!({
# h264 profile
:preset_name => "h264",
# sets your profile name to h264
:name => "h264",
# 2 pass encoding
:two_pass => true,
# 30 fps
:fps => 30,
# mp4 format and .mp4 extname
:extname => ".mp4"
# 48k sample rate
:audio_sample_rate => 48000,
# Resolution 1080x720
:height => 720,
:width => 1080,
# set the s3 destination
:path_format => "my/path/:id",
# don't upscale the video if the input is smaller than your profile resolution
:upscale => false,
# starts the clip after 10 seconds
:clip_offset => "00:00::10",
# Cut the clip after 20 minutes
:clip_length => "00:20::00",
# Keep aspect ratio
:aspect_mode => 'letterbox',
# Bitrates
:video_bitrate => 2200,
:audio_bitrate => 128,
})