• Skip to content
  • Skip to primary sidebar
  • Skip to footer

Foliovision

Making the web work for you

Main navigation

  • Weblog
    • FV Player
    • WordPress
    • Video of the Week
    • Case Studies
    • Business
  • About
    • Testimonials
    • Meet the Team
    • We Support
    • Careers
    • Contact
    • Pricing
  • Products
  • Support
    • FV Player Docs
    • Pro Support
  • Login
  • Basket is empty
Affordable VAST/VPAID for Wordpress has arrived. Serve ads with your videos starting today!
    • Docs
      • Installation
      • Configuration
      • User guide
      • Downgrading
      • Changelog
    • FAQ
    • Support
      • Free Support
      • Pro Support
    • PRO

    AWS MediaConvert Encrypted HLS Guide

    MediaConvert is the new Amazon Web Service for video encoding which replaces the old Elastic Transcoder. It has a better pricing model where you only pay for the encoding features which you are actually using, and it supports all the new standards, such as 4K video

    Before you begin

    We assume that:

    1. You know the basics of the FV Player usage. You can check it here: FV Player Start-up Guide

    2. You have working Amazon S3 + Cloudfront setup according to the Serving Private Videos via CloudFront guide (Note: please be aware of the fact that every step regarding download protection or privacy, needs to be skipped)

    IAM User Role

    Before you start using MediaConvert, you need to create the IAM Role which you will use it with.

    1. Start by opening Services -> IAM ->Roles -> Create role.

     

    Creating roles in IAM
     

    2. Pick the MediaConvert service and then just keep hitting "Next", three times.

     
     

    3. In the last step of the Create role wizard, you need to provide the name of the new role. Just enter "MediaConvert".

     
     

    Now it's time to create your first video encoding job. Click "Create role".

    Creating a new MediaConvert video encoding job

    We assume that you have an S3 bucket in place to which you already uploaded your video in an MP4 format. Always use the highest quality version of your video, otherwise the video encoding process might degrade the quality too much.

    4. Open Services -> MediaConvert and click "Get started".

     
     

    5. You will get to a screen which outlines the whole process on the left hand side, and lets you edit all the properties on the right hand side. Make sure you are in the "Input 1" section and click the "Browse" button.

    Where to find the browse button.Input section of Creating a job

    6. Use the popup dialog to pick your S3 bucket and the input file. Once your file is selected click "Choose".

    7. Now you need to add the Output group, so click the "Add" button, next to it.

    Select ADD, under Output Groups.Adding output group

    8. Use the popup to pick "Apple HLS". Click "Select".

    If you are interested in H.265 video codec pick the "CMAF" output and then select "Segment Control -> Segmented Files" and you can disable "Write DASH manifest" too.

     
     

    9. You will get to the "Apple HLS" section where you need to click "Browse" to specify the output location.  

    Select Browse, under Apple HLS group settings.Apple HLS group settings 

    10. Use the popup dialog to pick your S3 bucket and enter the location path. You have to use the forward slash in order to put it all into a new folder, and then also enter a filename - without the extension. So if you have multiple courses where each course consists of multiple lessons you can works with a structure like this:

    Course-01/Lessons-01/index

    You can browse through your existing folders too. Once you are done click "Choose".

     
     

    11. Now that your destination is set, you need to add all the outputs. Click "Output 1" to enter information about the desired video output.

     
    Adding outputs
     

    12. Pick the "Preset" and enter the "Name modifier".

    Just make sure what you pick matches your video aspect ratio, frame rate, and resolution. So, for a Full HD video start by picking "System-Avc_16x9_1080p_29_97fps_8500kbps" and enter "-1080p" as the Name modifier.

     
     

    13. Now, click on Output Groups -> "Apple HLS" to go back to that section, and click "Add output" to add another quality.

     

    Adding another quality

    14. "Output 2" will be displayed. Click on it and repeat steps 12. and 13. until you have set all the qualities you need. We recommend using the following setup:

    • Output 1: System-Avc_16x9_1080p_29_97fps_8500kbps with Name modifier -1080p
    • Output 2: System-Avc_16x9_720p_29_97fps_5000kbps with Name modifier -720p
    • Output 3: System-Avc_16x9_540p_29_97fps_3500kbps with Name modifier -540p
    • Output 4: System-Avc_16x9_360p_29_97fps_1200kbps with Name modifier -360p
    • Output 5: System-Avc_16x9_270p_14_99fps_400kbps with Name modifier -270p

    Just make sure what you pick matches your video aspect ratio, frame rate, and resolution.

    15. To really protect your video from downloading, you also need to encrypt the HLS stream. 1. Click "Apple HLS", then 2. click "DRM encryption".

    If you don't need to encrypt your video, you can skip to step 17.

     
     

    (Please fill your own info into parts of the text marked with red)
     

    16. In the DRM box, select the following properties:

    • 3. Encryption method: AES-128
    • 4. Key provider type: Static Key
    • 5. Static key value: enter a random hex encoded 16 byte string, you can use this tool to get it:
    • 6. URL: It's important to get this one right otherwise the video won't play. The format of that URL is:

      https://your-wordpress-site.com/?fv_player_hls_key={Location from step 10.}

      If your website is using https:// then this URL needs to use https:// as well. If your website is using a domain with www. in front of it, make sure it's included as well.

      Example:

      In this guide, our location was set to MediaConvertTest/index and our WordPress site is https://foliovision.com so the URL for the Static key will be:

      https://foliovision.com/?fv_player_hls_key=MediaConvertTest/index       
     
     

    17. Then go to Job Settings -> Settings, and pick your IAM role. 

    Selecting IAM role.

    18. Scroll down to the very bottom and click "Create".

     
     

    19. You will see that your job has been submitted. You can click the "Refresh" button to see if it's done yet.

    Job submitted screen, with Refresh button.

    20. Once it's done, you can access the folder with the encoded stream using the link in the "Outputs" section.

    Job Summary screen, with link to output folder.

    File permissions

    21. To make the new stream playable, you need to either:

    • Make sure you are using a CloudFront distribution with your S3 bucket. The guide for that is here. Keep in mind that:
      • You should not use the "Restrict Viewer Access" option (signed URLs won't work with HLS stream)
      • You will need to check the "Restrict Bucket Access" along with the "Grant Read Permissions on Bucket"
    • Fix the file permissions to make your HLS stream file is publicly accessible.

    This is due to the fact that a m3u8 HLS file is static and cannot always include the most up-to-date URL signatures as these are time sensitive.

    In case you are using CloudFront, you can skip to step 23.

    The stream file permissions need to be fixed in the S3 bucket. First locate the folder in the S3 bucket, right click it and select "Make public".

     

    Changing stream file premission
     

    22. You will be asked to confirm your action in a popup box.

     
     

    Posting the video to your website

    23. To insert and play your encrypted HLS stream, make sure you are using FV Player Pro Beta. Here's how to switch to it: Switching FV Player Pro to Beta

    This guide and the whole process is new, we will of course make it part of the stable version of FV Player Pro soon. But for now it's in Beta.

    24. Bring up the FV Player editor and:

    • Enter the video URL into the shortcode editor. You can get the file path from the S3 bucket which gives you something like:

      https://s3-eu-west-1.amazonaws.com/{bucket name}/MediaConvertTest/index.m3u8

      If you use CloudFront, you will need to replace the bucket path with your CloudFront URL, so it ends up being like this:

      https://{CloudFront domain ID}.cloudfront.net/MediaConvertTest/index.m3u8
      Note that you can also used the FV Player S3 Browser feature, if you have your S3 bucket access keys set in FV Player -> Hosting -> Amazon S3. That way the URL will automatically use the proper CloudFront URL if it's set up.
    • Paste in the "Static key value" from Step 16. into the Encryption HLS field. Or you can get it from the "Job summary" screen, just go to Details -> Apple HLS -> "DRM encryption"
    • Click "Insert" to save the player
    • Save your post and test the video

    Enter video URL into shortcode editor.

    Share
    Tweet
    Share
    0 Shares

    Reader Interactions

    Primary Sidebar

    Securing Your Video

    1. Download | Buy
    2. Basic Setup
    3. Demos
    4. Advanced
    5. Video Hosting
    6. Securing Your Video
      1. How to Protect Your Videos from Being Downloaded
      2. How to use RTMP streams with Flash
      3. Protecting Videos With DRM Text
      4. How to setup encrypted HLS stream with Amazon Elastic Transcoder
      5. AWS Elastic Transcoder End User Guide
      6. AWS MediaConvert Encrypted HLS Guide
      7. AWS MediaConvert End User guide
      8. Protecting HLS Videos with Cookies
      9. AWS Encryption Pricing
      10. How to secure your videos with Vimeo Security add-on
      11. How to Set up Encrypted HLS with Coconut
      12. How to encrypt videos directly in WordPress with Coconut
    7. Ads
    8. VAST/VPAID Ads
    9. Additional Services
    10. Legal
    11. Settings
    12. FV Player Pay Per View
    Foliovision logo
    All materials © 2021 Foliovision s.r.o. | Panská 12 - 81101 Bratislava - Slovakia | info@foliovision.com
    • This Site Uses Cookies
    • Privacy Policy
    • Terms of Service
    • Site Map
    • Contact
    • Tel. +1 518 412 4600