January 22, 2018

Using Amazon EC2 for HEVC transcoding

Nimble Streamer Live Transcoder is currently used in various live transcoding scenarios on various platforms. It can be deployed both to bare metal and virtual servers.

When it comes to HEVC (H.265) transcoding, there are certain limitations you may face. H.265 encoding is resource consuming so Nimble Live Transcoder supports only hardware encoding which is currently implemented for NVidia NVENC and Intel QuickSync. So if your project requires to use some cloud computing platform with no bare metal, you need to find a provider which has hardware acceleration available as part of cloud services. Our customers ask us about such provider so we wanted to do some analysis about this this.

Choosing EC2


After some research we ended up with Amazon Web Services (AWS) and their Elastic Compute Cloud (EC2). Here's what we have.

First, we need to define what chips are capable of HEVC encoding. Take a look at NVENC Support Matrix to see which of the chips have proper support. Considering latest NVidia changes in GeForce drivers EULA, not many cards can do what we need.

Having the list of proper chipsets, check EC2 instance types.  There are two of them that meet our criteria.

  • G3 instances have Tesla M60 based on 2nd generation of Maxwell chip family, starting from 1.14 USD per hour.
  • P3 instances have Tesla V100 based on Volta chip family, starting from 3.06 USD per hour.

We ran some tests on g3.4xlarge instance type, it has Tesla M60 chipset on board which we tested previously on bare metal. This time it also showed great results being used in cloud environment.

Notice that not all regions have P3 and G3 instances available. We tested our case in US East N. Virginia region, you should manually check what is the closest region with required instance types.



Working with Live Transcoder


Good thing about running any EC2 instances is that you can pay as you go. GPU-powered ones may cost significant amount of money so the best strategy would be to run them only when live streaming event take place.
The best usage scenario with Softvelum products would be as follows:

  1. Sign up for WMSPanel account, subscribe for it and subscribe for Live Transcoder license.
  2. Sign up for Amazon EC2 account
  3. Create your EC2 server instance with your preferred OS. We made our testing with Ubuntu 16.04.
  4. Install official NVidia drivers, check their website for latest version for your OS.
  5. Install Nimble Streamer instance on EC2 and register it in WMSPanel.
  6. Install Live Transcoder and register its license.
  7. Set up Live Transcoder scenarios and test them with your live streams.
  8. Stop EC2 instance.
  9. Prior to your live event, start EC2 instance.
  10. Your instance IP address will be changed after re-start, so make sure you add new IP to ingest URLs at your stream source.
That's it - you can stop and start again your instance any time you need it.


Notice that you may need some fine tuning if you'd like to use NVENC on high load, e.g. when transcoding multiple incoming streams on multiple GPUs. Take a look at this article for more details describing previous stress testing procedures and their results.

Please also check Transcoder troubleshooting article describing some approached to NVENC usage.

Feel free to visit Live Transcoder webpage for other transcoding features description and contact us if you have any question.

Related documentation


Live Transcoder for Nimble Streamer, HEVC support in Nimble Streamer, Build streaming infrastructure, Live Streaming features,

No comments:

Post a Comment