Skip to main content

Easy Telestream Cloud integration with LiveSync

What is LiveSync?

We have just added a new, easier way to integrate with Telestream Cloud. With LiveSync all you need to do is specify additional AWS S3 source bucket for new or existing factory and we take care of the rest. Anytime you add a new file to it we will encode it automatically to all output profiles assigned to the factory.

LiveSync allows you to batch process videos without having to write any code or make API requests. It also comes with an option to back-synchronize files you might already have in your source bucket. Once you set up a factory and define output parameters exactly as you need them, with one click you can encode all previously existing files in source bucket. Once the files are encoded they will be delivered to your selected storage. We strongly recommend you make sure your output is exactly as you need it before enabling back synchronization.

It’s up to you to decide when to use LiveSync – either when creating a new factory or changing factory settings at any time.

It’s currently available on AWS only but we’re working on Google Cloud Storage implementation as well.

How to get started?

When creating a factory, select S3 as your storage option and identify your S3 source bucket. It can’t be the same bucket as the output bucket and has to use the same credentials to access it. Alternatively, you can turn on LiveSync in Factory Settings for any factory you’ve already created.

A3gm27nTE2gXR1nbFvUQ
Enabling LiveSync while adding new factory

We will need your Access Key and Secret Key only once a to let Telestream Cloud user access the S3 bucket. We don’t store the keys. Once configured, we will use AWS events to monitor the bucket, ingest and encode any new media files placed in it. The easiest integration ever.

Telestream Debuts Telestream Cloud, High Quality SaaS (software-as-a-service) for Video Encoding in the Cloud

Nevada City, California, April 7, 2016At NAB 2016 on booth SL 4525, Telestream, a global market leader in video transcoding and workflow automation solutions, will debut Telestream Cloud, a video encoding SaaS (software as a service) ideally suited to meet the needs of video production and post production professionals.  Telestream Cloud features support for the popular Apple ProRes video format, and extends the reach of encoding capabilities to a wider audience seeking Telestream quality encoding, while offering cloud-encoding scalability for current users.

Telestream Cloud LogoTelestream’s Cloud service offers high quality video transcoding for all formats and codecs, and dynamically scales in response to customer requirements. The service utilizes an easy yet powerful API to automate and integrate into customer workflows. File transfer and encoding times are optimized from any location since Telestream Cloud leverages multiple cloud service providers including Google Cloud Platform, Amazon Web Services and Rackspace.

Telestream Introduces ProRes Support to Telestream Cloud

Telestream’s cloud-based transcoding service provides users with a fast, intuitive and highly cost-effective means to start producing ProRes output. For media that resides in the cloud and is destined for OTT distribution, Telestream Cloud takes a fraction of the time to commission and operate compared with an on-premises approach. Telestream Cloud pricing is structured as pay-as you-go monthly subscriptions for quick scaling as your workflow changes with no upfront expenses.

Telestream Cloud features certified ProRes presets to deliver high quality video files that conform to Apple standards and ensures trouble free, cost efficient post-production on Apple’s Final Cut Pro platform, as well as other popular editing software packages. Telestream Cloud supports Apple ProRes 422 Proxy, LT, SQ, HQ with resolutions up to 4K.

“Since its introduction, ProRes has revolutionized the post market, fundamentally changing the toolkit available to the widest audience of pro editors, and has become a standard mezzanine format for many media workflows,” commented Barbara DeHart, VP Desktop and Cloud Businesses at Telestream. “Now, Telestream is providing new impetus to this revolution, providing confidence of error free encoded files that unauthorized implementations might produce. Our elegant Cloud infrastructure offers all users a low-cost means of producing high quality ProRes files for their media workflows.”

Telestream Cloud Product Sheet

Easier, faster, better looking & still secure – API Tokens

If you’ve ever had to access Panda API by crafting raw HTTP requests or write your own Panda client library, you must know how annoying request signatures could be. They make communication very secure, but can be very inconvenient.

Building a signature was quite a complex, error prone task. And debugging wasn’t the most pleasant thing on earth either as the number of possible mistakes was huge. Each of them manifested in the same way – an error message saying that signatures mismatch has occurred.

Wouldn’t it be great to have another authorization method, whose usage would be as simple as copy & paste a string? Without compromising security. One that would be simple enough to make querying Panda from command line tools actually viable?

It bothered us as well so we decided to put some time into making everyone’s life bit easier. We came up with a solution that’s being used by a number of payment platforms. And these guys usually do care about security. If you’re using Panda API you will now be able to authorize yourself through an API Token instead of a signature.

There is one unique auth token per encoding cloud in Panda. You can check API Token for each cloud in our web application and generate new one if needed.

skpMpbhAQGX4eqctNp0W
API Token view

And now we can finally do what other services have been bragging about for a long time. We can have curl examples. YAY!

That’s how you send a file to Panda now (more examples in our docs):

curl -X POST -H "Content-Type: multipart/form-data" -F "file=@/path/to/file/panda.mp4" "http://api.pandastream.com/v2/videos.json?token=clou_lCTyUrw5eapr3rVE5vTOwlgxW&file=panda"

Response:

{
   "id":"524fb96a85e8cf0edbe5865d070539cc",
   "status":"processing",
   "created_at":"2015/07/17 15:33:47 +0000",
   "updated_at":"2015/07/17 15:33:48 +0000",
   "mime_type":null,
   "original_filename":"panda.mp4",
   "source_url":null,
   "duration":14014,
   "height":240,
   "width":300,
   "extname":".mp4",
   "file_size":805301,
   "video_bitrate":344,
   "audio_bitrate":112,
   "audio_codec":"aac",
   "video_codec":"h264",
   "fps":29.97,
   "audio_channels":2,
   "audio_sample_rate":44100
}

 

That’s all folks. Have a great weekend!

On bears and snakes. Panda has updated Python library.

We usually don’t want to deal with complicated APIs, protocols and requests. Straightforward, clear way of doing things is preferred and it’s usually the best to hide raw communication and all the technical details under a simple interface. The structural organization of most successful systems is based on several layers of abstraction. The higher you are the less control over things you have but then such level of control is often dispensable in favor of simplicity.

Panda communicates with the rest of the world using several endpoints, related to particular entities it works with, like clouds, notifications and videos. Each of these endpoints can be reached using HTTP requests. Depending on their type (POST, GET, DELETE or PUT) and arguments various operations are executed. It could be modifying an existing profile, deleting a video or creating a new cloud. All these requests need proper timestamps and the right signature to pass the verification. To save you from managing it all on your own, several client libraries are used.

New Python library

We just wanted to let you know that Python library in Panda has been updated to make integrations much easier. So far it only offered basic functionality like signature generating. You still had to provide both, an endpoint location and a HTTP method to send a request, and then parse returned JSON data on your own. It’s no longer needed in the next version of the package, which introduces a new, simpler interface, based on the one provided by the Ruby language gem. Returned information is now stored in dictionary-like objects, which makes it easier to inspect. Also, you don’t have to input API endpoint locations and proper HTTP method types to interact with your data.

Resumable upload is there

Finally, a support for a resumable upload was added. If you send a file using a basic POST request, you don’t have a chance of resuming an upload in case of a connection failure. It is especially annoying if happens at the end of uploading large multimedia file. In such case, even through several gigabytes have already been sent, you have to start all over again. 

Panda offers another, much better approach, and allows you to create uploading session. The old version of the library only returned the endpoint address and left all the work up to you. The new one is now capable of managing the session using simple, easy to remember set of methods. You don’t have to calculate offsets and positions in a multimedia file anymore to ensure that it will be sent in one piece.

The backward compatibility with previous version is also preserved. If you prefer, you can still use the old way and call specific HTTP methods manually.

With the new library and thanks to power of Python you can easily write clear, robust, elegant and maintainable code. And that’s the fun part, isn’t it?

GitHub repo and examples

XDCAM preset streamlined in Panda

XDCAM is a series of video formats that are widely used in the broadcasting industry, you might also know them as MXF. Sony introduced them back in 2003, and since then they’ve become quite popular among video professionals. It has always been possible to encode to XDCAMs in Panda through our raw encoding profiles, but we’ve decided to make it more streamlined. Oh, and, by the way, to make their quality possibly best in the industry.

And here it is, the new preset to create XDCAM profiles. Everything can be set up using Panda’s UI. Because XDCAMs only allow a predefined set of possible FPS values, we decided that it would be a good idea to always use our motion-compensated FPS conversion for XDCAM profiles (more on Google’s blog). If your input video’s frame rate doesn’t match that used by the XDCAM preset, or if it is progressive and you need interlaced outputs, the quality won’t degrade as much as it would without motion compensation. And that’s what gives our preset the best quality in the cloud video encoding industry.

 

Adding XDCAMs to your profiles is super easy now.
Adding XDCAMs to your profiles is super easy now.

Should you have any questions or suggestions regarding the new presets – just shoot us an email at team@pandastream.com.

A case for MPEG DASH

In an always competing IT world there are many rivaling groups of skilled developers who independently try to solve the same problems and implement the same concepts. It usually results with a vast choice of possible solutions that share a lot of common traits. This abundance of techniques, methods and protocols is one of the things that allowed the rise of modern software.

However, it can also be a burden because one needs to provide the support for multiple technologies instead of being able to focus on one. The worst thing that can happen is a set of incompatible mechanisms that need to be separately served within the application, language or library. A good example – legendary browser wars that we had in the 90s. Both Microsoft and Netscape developed their own unique features that weren’t supported in the competitor’s product which brought a ton of problems for web developers who wanted their web pages rendered the same way. Even now it’s common to use various JavaScript libraries like YUI and jQuery to fix issues related to legacy browsers.

That’s why standards are important

They provide a well defined core that needs to be implemented among all vendors. It makes the constant struggle for portability a bit easier. Standard shifts the responsibility: now developer doesn’t have to worry about every possible type of a user software and include several tests for special cases. He doesn’t need to write extra code just to handle a single task done differently in a different environments. He can improve the support of a single protocol instead of working with five. It’s now a vendor’s job to provide a product that works with code compliant to the specification.

Unfortunately, creating a standard is not a simple task and there is a lot of problems in order to satisfy all the needs and cases. A clash between proposals is hard to avoid. It takes time to have one victorious solution emerge and dominate the market.

Divided world of adaptive bitrate streaming

Such strife can be observed now in a world of multimedia streaming techniques. There are three competing HTTP based methods, referred as adaptive bitrate streaming –  Apple’s HLS, Microsoft HSS and Adobe HDS. These 3 provide the way to transmit multimedia with bitrate that can be changed dynamically, depending on network bandwidth and hardware capabilities.

They are similar but occupy a different parts of the market. HSS is present in Silverlight based applications, HLS is in a common use among mobile devices and HDS is popular companion of Flash on desktop. It would be a lot easier for developers to have one common technology to support instead of 3 separate ones. That’s why there were attempts to standardize the adaptive bitrate streaming.

Enter MPEG DASH

The MPEG group, major organization that contributes commonly used multimedia standards, introduced their own version of HTTP based streaming called MPEG DASH, that strives now to become a dominant method for delivering rich video content.Right now MPEG DASH is far from being a champion and the only preferred choice. HDS, HLS and HSS are still commonly used across the Internet. It’s hard to predict if it’ll prevail. All that’s certain is it should not be ignored. There’s a little merit in waiting for a winner to rise victorious from this clash of technologies. That’s why we decided to enhance Panda with a DASH support.

We provide this feature through a new preset that is available to choose from a profiles list. Similar to a HSS support that we introduced recently, there are two ways the encoded set of output files can be stored in the cloud. If the default .tar extension is preserved then both multimedia files and XML manifest with all necessary metadata are archived into a single file, which can be later downloaded and unpacked. Alternatively you can choose a .mpd which makes Panda upload all output files into the cloud separately.

Another important decision to make is a set of output bitrates. The default setting consists of bitrates with values of 2400k, 600k, 300 and 120k. Changing the video bitrate value through the preset settings panel results with values equal to the one you set, 1/2, 1/4 and 1/8 of it (just like with HSS which we introduced before).

To test your output you can use one of these media players:

This new preset allows you to adapt our product to your needs more flexibly. There is a saying that “nobody ever got fired for buying IBM equipment” because when in doubt one should choose what is a standard for the industry. If you want to provide your application with features that modern streaming techniques offer then choosing MPEG DASH might be a good option. Panda is there to help getting your videos encoded the right way.

All profiles are equal…

…. but some profiles are more equal than others. At least they might be to you. We do realize that Panda is basically all about video transcoding and its core tasks are pretty much the same for most of you. However, good services should be customizable so they can fit specific user requirements.

If your business relies on specific output files more heavily than others you may want them to be encoded first. Until now you could do this by setting priority on your encoding clouds and sending more important files to the one with high priority.

Setting priority on encoding cloud
Setting priority on encoding cloud

 

This solution while generally good, had a limitation if you wanted to have specific profile encoded before others. Let’s say you need high quality MP4(H.264) encoded as your primary profile while the smaller, lower quality MP4s could follow later on. It required you to upload files twice to two different encoding clouds. Definitely not fun, as one of our clients pointed out.

We had to do something about it. And we did. Couple days later and now also profiles can have a priority setting of High, Normal and Low so you can control the order in which the jobs for specific profiles are processed.

 

Setting priority on encoding profile
Setting priority on encoding profile

Your Panda workflow just got even more flexible.

Have a nice weekend!

 

Panda gets more secure with AES-128 encryption for HLS

Yay, it’s Friday afternoon! Here’s something short before you go and enjoy your weekend.

We have just added in Panda an ability to provide our customers with encryption of the HLS protocol. This means improved transmission security and that you get to control who can view your videos. We help you encrypt your videos either by generating a 128-bit key along with initialization vector or using a key provided by you.

In short – we encrypt all the segments of your video found in an associated HLS variant playlist. You will be able to choose a URL which contains your secret key to decrypt them with your media player. HLS Variant and HLS Variant audio profiles will now contain Encryption section to help you set everything up in seconds.

To make sure the secret key from URL is properly protected, you will need to authorize the media player to obtain the key using your web authentication service.

You can find out more on our documentation page

Panda adds streaming with Microsoft HSS

You could have the most astounding video content, in high resolution and with amazing quality, enhanced with all sorts of special effects and advanced graphical filters – it doesn’t matters if you aren’t capable of delivering it to your consumers. Their connection speed is often limited and they might not have enough bandwidth to receive all these megabytes filled with rich multimedia data. While our networks are improving at an astonishing rate, they’re still the main bottleneck of many systems, as the size of the files rises rapidly with better resolutions and bitrates. While you can add several more cores to your servers to increase their computing power, you’re not able to alter the Internet infrastructure of your users. You have to choose – send them high definition data or sacrifice the quality to make sure the experience is smooth.

Continuous streaming vs Adaptive bitrate

The most obvious solution is to prepare several versions of the same video and deliver one of them depending on user bandwidth. In the past this was a standard approach, once the choice was made, files were streamed in a progressive way, from the beginning till the end, just like images in modern web browsers.

This method has several disadvantages. The biggest one – you cannot dynamically switch between versions in the middle of the sending process in order to react to changes in the network load. If the connection improves you can’t take advantage of it and you have to continue sending worse quality despite having resources available. Even worse, you can’t prevent congestion if the transmission speed decreases – you either cancel the entire process or end up with the video becoming laggy. With continuous streaming you also can’t just skip part of the multimedia and jump ahead until the downloading process gets to the desired moment neither can you rewind data quickly.

To fix these issues better a more flexible solution is needed. For a long time the preferred choice was Adobe RTMP (Real-Time Messaging Protocol) used together with Adobe FMS (Flash Media Server). It was complex and became problematic in the era of mobile devices, since their support for Flash based technologies is pretty average. This allowed HTTP based protocols to emerge and dominate the market.

These technologies split video and audio into smaller segments which are encoded with different bitrates. It allows to dynamically choose optimized data based on current connection speed and CPU. It’s called adaptive bitrate streaming. 

HTTP has a number of advantages compared to RTMP

  • it’s a well known, simple, popular and universally applied protocol
  • it can use caching features of content delivery networks
  • it manages to traverse firewalls much easier.

Microsoft HSS, underrated protocol

As of now there is no single, standard HTTP-based protocol, instead there are several implementations by different vendors. One of them, Apple’s HLS, was available in Panda for a long time. Now we’re adding another one – HSS (HTTP Smooth Streaming), a Microsoft technology which allows the use of adaptive bitrate streaming features in Silverlight applications. Even though that with the advent of HTML5 Silverlight is not as popular as it used to be (over 50% market penetration in 2011) it’s still a widely spread, common technology and a noteworthy rival of Flash.

To use HSS specialized server is needed. The most obvious choice would be Microsoft’s IIS but there are modules for Nginx, Apache Httpd and Lighttpd as well. After setting it up, together with a Silverlight player, you need to split your video files into data segments (files with .ismv extension) and generate manifest files (.ism and .ismc extensions), which are used to inform receivers what kind of content the server can deliver.

HSS preset in Panda

This is where Panda comes in handy as a convenient encoding tool. All you have to do is add HSS preset to your set of profiles and configure it as needed to get a pack of converted files ready to deploy. The most important setting is an output file format. With a default ‘.tar’ extension you will receive at the end of the encoding process a single, uncompressed archive which contains all necessary data. All that’s left is to unpack this archive into the selected folder of your video server and then provide your Silverlight player with a proper link to a manifest file. You can alternatively choose ‘.ism’ format, which won’t archive the output. Instead files will only be sent to your cloud, from where you can use them any way you need.

 

ydD6yeL8Qoi3IWOxfeJF

 

Another important thing to consider is a video bitrate value for your segments. The default settings produce segments with bitrates of 2400k, 600k, 300k and 120k. If you insert custom value, your output will consist of segments having a bitrate equal to the provided value, 1/2, 1/4 and 1/8 of it. Finally, you might alter the standard set of options such as resolution and aspect ratio.

Now you can have the benefits of adaptive bitrate streaming if your business uses Microsoft technologies. All you have to worry about is content quality, since the problems with delivery are becoming less of a burden, all thanks to the abilities of HTTP protocol.

 

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.

ExtraEncoders2

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 info@copper.io