Creating mp4 files with Dolby Atmos content is very helpful for auditioning mixes on consumer equipment but also for facilitating remote mix approvals. The mp4 export from the Renderer creates an mp4 file with black video. Dolby has some tools available on Github to allow you to use the mp4 exported from the Renderer to create mp4 with “real” video content. A guide to using these tools is available here:
This can also be done with Amazon Web Services (AWS) MediaConvert in conjunction with S3 storage. Additionally MediaConvert can output Apple HLS which enables distribution of links to streaming media rather then .mp4 files themselves.
What follows is a guide to setting up an AWS account and using MediaConvert with S3 storage. This is not meant to be a comprehensive guide and specifically does not address any security concerns that could arise for making S3 storage public. There are additional parameters and video codec choices that might be more applicable to your use case but this should get you up and running. AWS has extensive online and contextual help that should be referenced for additional guidance.
The guide is divided into 7 sections with screen grabs provided for each section.
Sections 1 to 3 covers initial set up and configuring the AWS account, user groups, users, roles, policy and permissions. This process is laborious and complex. However, this only needs to be done once.
Creating and running jobs once this is done is relatively straight forward and templates can be created to make this even easier. Sections 1 to 3 is a step by step guide. Again, this is minimum required to get AWS MediaConvert and S3 operational. See AWS online and contextual help for additional guidance.
Clicking on any image to enlarge it.
Index of AWS Related Screen Grabs
Section 1 – Creating an AWS Account:
Navigate to the AWS home page and signin to an existing account or create an account as pictured below and enter payment information etc:
1. AWS Home
2. AWS Sign In
3. AWS Create Account
Section 2 – Configuring AWS IAM Groups, Users, Roles and Policies:
After creating an you will receive and email with links to use once these steps are done. Prior to this log in to your account as Root user with the User/PW created when establishing the account:
4. AWS Root User Login
This will drop you into the Management Console view. The “Services” drop down menu in the top left if the best way to navigate among functions.
5. AWS Management Console
The IAM (Identity and Access Management) service is where most of this configuration work will take place.
6. AWS Services IAM
Once in the IAM view you will see the side bar with the Access Management categories. While you are currently logged into root with the user/pw set when the account was created, actual work is performed by a different user with defined credentials. The identity and access hierarchy required is:
- Group(s) which have associated access policies
- User(s) who are assigned to groups
- Role(s) associated with the user(s) have specific operational permissions
Click on Group in the side bar and “Create New Group.” Follow steps 7 to 13.
7. AWS Create New Group
8. AWS IAM Group Name
9. AWS IAM Group Attach Policy S3
10. AWS IAM Group Attach Policy MediaConvert
11. AWS IAM Group Attach Policy IAM
12. AWS IAM Group Review
13. AWS IAM Croup Created
Next click on Users in the side bar and “Add New User.” Follow steps 14 to 19. Download and save the .csv file from step 19 to a secure location.
14. AWS IAM User
15. AWS IAM User Set User Details
16. AWS IAM User Add User to Group
17. AWS IAM Add User Tags optional
18. AWS IAM Add User Review
19. AWS IAM Add User IMPORTANT Download csv
Next click on Roles in the sidebar and “Create Role.” Follow steps 21 to 26.
20. AWS IAM Roles
21. AWS IAM Create Role
22. AWS IAM Create Role Select User Case MediaConvert
23. AWS IAM Create Role Attached Permissions Policy
24. AWS IAM Create Role Add Tags Optional
25. AWS IAM Create Role Review and Name
26. AWS IAM Role Created
Section 3 – Creating and Configuring S3 Buckets and Uploading Media:
All the above steps in Section 2 were performed when logged in as Root using the User/PW created with the AWS Account. Root is used for account info, billing information or to add additional groups, users, and roles if needed.
Now you need to click on the link provide in the email received when you created the account and Sign in as IAM user you create above using the credential in the “credentials.csv” you downloaded in step 19. Going forward all work is performed signed in as IAM User.
27/28. AWS Sign In as IAM User
Now you will navigate to S3 from Services and create and configure your S3 storage “buckets.” Follow steps 29 to 39.
29. AWS Services S3
30. AWS S3
31. AWS S3 Create Bucket 1
32. AWS S3 Create Bucket 2
33. AWS S3 Create Bucket 3 Set Permissions Turn off Block Public Access
34. AWS S3 Create Bucket Set Permissions Warning
35. AWS S3 Create Bucket Review
36. AWS S3 Bucket Created
37. AWS S3 Bucket Overview
Create Folders in your Bucket to keep files organized between source and output
38. AWS S3 Bucket Create Folders
39. AWS S3 Bucket Folders Created
NOTE: You can create a separate S3 Buckets for your source media and your output repeating the above steps. If doing so skips steps 33 to 35 re: making the bucket public for your source media.
Now it is time to upload some media
40. AWS S3 Bucket Ready to Upload to Source 1
41. AWS S3 Bucket Ready to Upload to Source 2
42. AWS S3 Bucket Uploading in Progress
While you need to upload media for additional jobs as in steps 40 to 42 you will not have to repeat steps 1 to 39.
Section 4 – Creating and Running Jobs in MediaConvert:
Now you will navigate to S3 from MediaConvet and create and run your jobs. Inputs will come from your S3 Bucket source folder and be Output to the appropriate output folders. Follow steps 43 to 58. Note that some repetitive steps are not pictured.
Start by navigating to MediaConvert from Services.
43. AWS Services MediaConvert
From the main MediaConvert view Click on “Create Job.”
44. AWS Media Convert Main Page
45. AWS MediaConvert Create Job Blank
Browse to set the job input. In this case this is a .mov file in the S3 Bucket Source folder
46. AWS MediaConvert Create Job Input Browse
47. AWS MediaConvert Input 1 Set
The Audio for this job is not a separate input but rather specified as an external file to Input 1. In this example it will be the .mp4 file exported from the Renderer that contains Atmos content encoded as Dolby Digital Plus JOC. If the audio is encoded outside of the mp4 export function of the Renderer (using Dolby Media Producer) the .ec3 file can be used.
48. AWS MediaConvert job Input 1 Audio Selector External File Set
After the input is set, the job output needs to be created. In this example there will be a File Group output and a Apple HLS output.
The File Group output will generate will have two outputs that both generate MP4 files. The only difference between the two MP4 files will be the datarate of the encoded video. Two different datarates are used for the MP4 files to facilitate local playback (higher) and remote playback (lower datarate).
The Apple HLS output will likewise generate two sets of segmented files at different datarates. Two different datarates are used to allow for the lower bitrate video to be used in the event of network congestion.
To start click on Output groups “Add”
49. AWS MediaConvert Create Job Output Group Add 1
50. AWS MediaConvert Create Job Add Output Group File group
51. AWS MediaConvert Create Job Add Output Apple HLS
53. AWS MediaConvert Create Job File Group add 2nd output set Destination and Name Modifiers
54. AWS MediaConvert Create Job Apple HLS add 2nd output set Destination and Name Modifiers
55. AWS MediaConvert Create Job File Group Output 1 Video set Container, Video codec, Resolution
56. AWS MediaConvert Create Job File Group Output 1 Video set Quality and Bitrate
57. AWS MediaConvert Create Job File Group Output 1 Audio set Audio codec to Passthrough.
Repeat 55 to 57 for File Group Output 2 setting bitrate to 8000000.
Repeat 55 to 57 for Apple HLS Outputs 1 and 2 setting Output 2 bitrate to 800000.
Next go to Job Settings/Setting to set the IAM role
58. AWS MediaConvert Create Job Job Settting IAM role
Scroll down and click “Create”
If there are no errors you should see a job summary window. Refresh this window. When the job is completed navigate back to S3 via Services.
Section 5 – Alternative Encoding Parameters in MediaConvert:
MediaConvert to passthrough Atmos content as Dolby Digital Plus JOC either in an mp4 container or as a .ec3 file. MediaConvert can also encode Dolby Digital Plus JOC from 9.1.6 output as a Re-Render. It can only accept 16 mono .wav files. To do this 16 Audio Selectors need to be used when specifying the input with each set to External File and using 9.1.6 in the following channel order: L, R, C, Lfe, Lss, Rss, Lsr, Rsr, Lw, Rw, Ltf, Rtf, Ltm, Rtm, Ltr, Rtr. Follow steps 59 to 61.
59. ALT AWS MediaConvert Create Job Input 16 x Audio Selector External File for 9.1.6 as 16 x mono .wav
The 16 Audio Selectors are then the input for an Audio Selector Group.
60. ALT AWS MediaConvert Create Job Input Audio Selector Group
In the Output Audio page the Audio Codec is set as Dolby Digital Plus JOC (Atmos) and the Audio source as Audio Selector Group 1.
61. ALT AWS MediaConvert job File Group Output 1 Audio 1 Audio codec DDPJOC Audio Source Audio Selector Group 1
MediaConvert can also encode Dolby Vision content from MXF or IMF with interleaved Dolby Vision metadata. To enable Dolby Vision encoding the Video Codec must be HEVC, Color metadata must set to Insert, and the profile set to Main10/Main or higher. Follow Steps 62 to 64.
62. ALT AWS MediaConvert Create Job Video 1 Video codec HEVC
63 ALT AWS MediaConvert Create Job Video 1 Profile Main10_Main
64. ALT AWS MediaConvert Create Job Video Dolby Vision processing enabled
Section 6 – Downloading MP4 files and Copyng Links for Streaming:
When the job is completed navigate back to S3 via Services. In the file_output folder of the S3 bucket select either MP4 and download for playback via USB/Blu-Ray Player or Plex Media Server/Player on Apple TV 4k.
65 AWS S3 file_output download
For the Apple HLS links to work the output files must first be made public. Then the Object URL can be copied (highlight it and copy). The “copy path” button will not copy the full path. Follow steps 66 to 69.
66. AWS S3 HLS_output
67. AWS S3 HLS_output Make Public
68. AWS S3 HLS_output make public 2
69. AWS S3 m3u8 highlight copy Object URL
Section 7 – Playback on AppleTV 4k:
The copied object URL can now be tested to stream content from S3 directly. To do this email the link to an Apple device, click the link, and use AirPlay from the device browser to connect to an AppleTV 4k. Make sure the Audio Format settings on the AppleTV 4k are Auto, Atmos Available. Follow steps 70 to 73.
70. iPhone Email w/AWS S3 link
71. iPhone select AirPlay device
72. iPhone AirPlay connected
73. AppleTV 4k Audio Settings