{"id":53193,"date":"2019-03-30T17:16:39","date_gmt":"2019-03-30T11:46:39","guid":{"rendered":"http:\/\/www.tothenew.com\/blog\/?p=53193"},"modified":"2019-08-30T12:05:18","modified_gmt":"2019-08-30T06:35:18","slug":"vod-encoding","status":"publish","type":"post","link":"https:\/\/www.tothenew.com\/blog\/vod-encoding\/","title":{"rendered":"VOD Encoding"},"content":{"rendered":"<p><span style=\"font-weight: 400\">In this blog, we will understand the workflow to transcode raw video file so that it can be streamed on any device including mobile, browser &amp; smart-tv. Here, we will achieve Adaptive Bitrate behaviour as well.<\/span><\/p>\n<p>MediaConvert is a file-based video transcoding service which allows you to easily create Video-on-Demand (VOD) content for the broadcast.<\/p>\n<p><strong><b>Setting up IAM permissions:<\/b><\/strong><\/p>\n<p><span style=\"font-weight: 400\">First, we need to create an IAM role to access mediaConvert service. To do this, please follow the below listed steps:<\/span><\/p>\n<ol>\n<li><span style=\"font-weight: 400\">To create a new role, go to &#8220;IAM&#8221; service and select &#8220;roles&#8221; from the left navigation panel, and then select &#8220;create role&#8221; option.<\/span><\/li>\n<li><span style=\"font-weight: 400\"> Select the role type as &#8220;AWS service&#8221; and choose &#8220;MediaConvert&#8221; service. Scroll down on the same page and choose &#8220;Next: Permissions&#8221; from the bottom right section of the page.<\/span>\n<p class=\"aligncenter\"><img decoding=\"async\" loading=\"lazy\" class=\"alignnone wp-image-53200 size-full\" src=\"\/blog\/wp-ttn-blog\/uploads\/2019\/07\/14.png\" alt=\"MediaConvert service\" width=\"1299\" height=\"669\" srcset=\"\/blog\/wp-ttn-blog\/uploads\/2019\/07\/14.png 1299w, \/blog\/wp-ttn-blog\/uploads\/2019\/07\/14-300x154.png 300w, \/blog\/wp-ttn-blog\/uploads\/2019\/07\/14-1024x527.png 1024w, \/blog\/wp-ttn-blog\/uploads\/2019\/07\/14-624x321.png 624w\" sizes=\"(max-width: 1299px) 100vw, 1299px\" \/><\/p>\n<\/li>\n<li><strong><span style=\"font-weight: 400\">On that role, the default permissions will be assigned automatically. Choose &#8220;next:tags&#8221;, provide tag if you want, that will be useful at the later stage for the cost measurement. Choose &#8220;Next: Review&#8221; option to proceed further.\u00a0<\/span><\/strong> <img decoding=\"async\" loading=\"lazy\" class=\"wp-image-53201 size-full\" src=\"\/blog\/wp-ttn-blog\/uploads\/2019\/07\/21.png\" alt=\"next:tags\" width=\"1299\" height=\"620\" srcset=\"\/blog\/wp-ttn-blog\/uploads\/2019\/07\/21.png 1299w, \/blog\/wp-ttn-blog\/uploads\/2019\/07\/21-300x143.png 300w, \/blog\/wp-ttn-blog\/uploads\/2019\/07\/21-1024x488.png 1024w, \/blog\/wp-ttn-blog\/uploads\/2019\/07\/21-624x297.png 624w\" sizes=\"(max-width: 1299px) 100vw, 1299px\" \/><\/li>\n<li><strong><span style=\"font-weight: 400\">Provide a unique roleName which you can easily find while creating a job. And, then choose &#8220;create role&#8221;.\u00a0<\/span><\/strong><\/li>\n<\/ol>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter wp-image-53202 size-full\" src=\"\/blog\/wp-ttn-blog\/uploads\/2019\/07\/3.png\" alt=\"roleName\" width=\"1299\" height=\"620\" srcset=\"\/blog\/wp-ttn-blog\/uploads\/2019\/07\/3.png 1299w, \/blog\/wp-ttn-blog\/uploads\/2019\/07\/3-300x143.png 300w, \/blog\/wp-ttn-blog\/uploads\/2019\/07\/3-1024x488.png 1024w, \/blog\/wp-ttn-blog\/uploads\/2019\/07\/3-624x297.png 624w\" sizes=\"(max-width: 1299px) 100vw, 1299px\" \/><\/p>\n<p><strong><b>Setup S3 bucket:<\/b><\/strong><\/p>\n<ol>\n<li><strong><span style=\"font-weight: 400\">Go to &#8220;S3&#8221; from the services tab and create a new s3 bucket or choose an existing one from the bucket list. Click on the &#8220;properties&#8221; tab and then select the &#8220;default encryption&#8221; option.<\/span><\/strong> <img decoding=\"async\" loading=\"lazy\" class=\"wp-image-53203 size-full\" src=\"\/blog\/wp-ttn-blog\/uploads\/2019\/07\/4.png\" alt=\"new s3 bucket\" width=\"1299\" height=\"620\" srcset=\"\/blog\/wp-ttn-blog\/uploads\/2019\/07\/4.png 1299w, \/blog\/wp-ttn-blog\/uploads\/2019\/07\/4-300x143.png 300w, \/blog\/wp-ttn-blog\/uploads\/2019\/07\/4-1024x488.png 1024w, \/blog\/wp-ttn-blog\/uploads\/2019\/07\/4-624x297.png 624w\" sizes=\"(max-width: 1299px) 100vw, 1299px\" \/><\/li>\n<li><strong><span style=\"font-weight: 400\">Choose &#8220;AES-256&#8221; and click on the save button.\u00a0<\/span><\/strong> <img decoding=\"async\" loading=\"lazy\" class=\"wp-image-53204 size-full\" src=\"\/blog\/wp-ttn-blog\/uploads\/2019\/07\/5.png\" alt=\"AES-256\" width=\"1299\" height=\"620\" srcset=\"\/blog\/wp-ttn-blog\/uploads\/2019\/07\/5.png 1299w, \/blog\/wp-ttn-blog\/uploads\/2019\/07\/5-300x143.png 300w, \/blog\/wp-ttn-blog\/uploads\/2019\/07\/5-1024x488.png 1024w, \/blog\/wp-ttn-blog\/uploads\/2019\/07\/5-624x297.png 624w\" sizes=\"(max-width: 1299px) 100vw, 1299px\" \/><\/li>\n<li><strong><span style=\"font-weight: 400\">Go to bucket and select the upload option. In the upload dialog box, choose \u201cadd files\u201d option and upload the media file that you want to transcode. <\/span><\/strong><\/li>\n<\/ol>\n<p><strong>Create and run job:<\/strong><\/p>\n<ol>\n<li><strong><span style=\"font-weight: 400\">Go to &#8220;mediaconvert&#8221; service. Select &#8220;job templates&#8221; from the left navigation panel. Choose &#8220;system templates&#8221; from the dropdown and open any template which you want to clone.<\/span><\/strong> <img decoding=\"async\" loading=\"lazy\" class=\"wp-image-53206 size-full\" src=\"\/blog\/wp-ttn-blog\/uploads\/2019\/07\/6.png\" alt=\"job templates\" width=\"1299\" height=\"669\" srcset=\"\/blog\/wp-ttn-blog\/uploads\/2019\/07\/6.png 1299w, \/blog\/wp-ttn-blog\/uploads\/2019\/07\/6-300x154.png 300w, \/blog\/wp-ttn-blog\/uploads\/2019\/07\/6-1024x527.png 1024w, \/blog\/wp-ttn-blog\/uploads\/2019\/07\/6-624x321.png 624w\" sizes=\"(max-width: 1299px) 100vw, 1299px\" \/><\/li>\n<li><strong><span style=\"font-weight: 400\">Click on the duplicate option. Provide a job name under the general information section and choose &#8220;create&#8221; option. A template will be created in your job templates list.<\/span><\/strong> <img decoding=\"async\" loading=\"lazy\" class=\"wp-image-53207 size-full\" src=\"\/blog\/wp-ttn-blog\/uploads\/2019\/07\/7.png\" alt=\"template \" width=\"1299\" height=\"620\" srcset=\"\/blog\/wp-ttn-blog\/uploads\/2019\/07\/7.png 1299w, \/blog\/wp-ttn-blog\/uploads\/2019\/07\/7-300x143.png 300w, \/blog\/wp-ttn-blog\/uploads\/2019\/07\/7-1024x488.png 1024w, \/blog\/wp-ttn-blog\/uploads\/2019\/07\/7-624x297.png 624w\" sizes=\"(max-width: 1299px) 100vw, 1299px\" \/><\/li>\n<li><strong><span style=\"font-weight: 400\">Open that duplicate template and select &#8220;create job&#8221; from the upper menu tab. It will create a job from that template.<\/span><\/strong><\/li>\n<li><strong><span style=\"font-weight: 400\">To provide input file choose &#8220;Add&#8221; from the right side menu &amp; browse source file that you have stored in the S3 bucket initially and click on the create option.<\/span><\/strong><\/li>\n<li><strong><span style=\"font-weight: 400\">To verify input and output profiles, go to the jobs section from the left navigation panel and select your respective job.<\/span><\/strong><\/li>\n<li><strong><span style=\"font-weight: 400\">Now, it&#8217;s time to check the final output of your job. There will be a link generated in the output section under the same page.<\/span><\/strong> <img decoding=\"async\" loading=\"lazy\" class=\"wp-image-53208 size-full\" src=\"\/blog\/wp-ttn-blog\/uploads\/2019\/07\/8.png\" alt=\"link generated \" width=\"1299\" height=\"669\" srcset=\"\/blog\/wp-ttn-blog\/uploads\/2019\/07\/8.png 1299w, \/blog\/wp-ttn-blog\/uploads\/2019\/07\/8-300x154.png 300w, \/blog\/wp-ttn-blog\/uploads\/2019\/07\/8-1024x527.png 1024w, \/blog\/wp-ttn-blog\/uploads\/2019\/07\/8-624x321.png 624w\" sizes=\"(max-width: 1299px) 100vw, 1299px\" \/><\/li>\n<li><strong><span style=\"font-weight: 400\">Clicking on it will redirect you to the destination s3 bucket location. Choose any of the output URL, and you will find the object URL at the end of that page.<\/span><\/strong> <img decoding=\"async\" loading=\"lazy\" class=\"wp-image-53209 size-full\" src=\"\/blog\/wp-ttn-blog\/uploads\/2019\/07\/9.png\" alt=\"s3 bucket\" width=\"1299\" height=\"669\" srcset=\"\/blog\/wp-ttn-blog\/uploads\/2019\/07\/9.png 1299w, \/blog\/wp-ttn-blog\/uploads\/2019\/07\/9-300x154.png 300w, \/blog\/wp-ttn-blog\/uploads\/2019\/07\/9-1024x527.png 1024w, \/blog\/wp-ttn-blog\/uploads\/2019\/07\/9-624x321.png 624w\" sizes=\"(max-width: 1299px) 100vw, 1299px\" \/><\/li>\n<li><strong><span style=\"font-weight: 400\">Play that URL using any media player. If the URL is giving you a json\/html output, then you may need to make it public. You can find &#8220;Make Public&#8221; option at the top of the same page or you may need to make your s3 bucket public. <\/span><\/strong><\/li>\n<\/ol>\n<p><strong><span style=\"font-weight: 400\">I have used MediaConvert to transcode the mp4 file, which is useful for VOD transcoding. For Live video transcoding, use AWS elemental mediaLive and mediaPackages services. <\/span><\/strong><\/p>\n<p><strong><strong><br \/>\n<\/strong><\/strong><\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In this blog, we will understand the workflow to transcode raw video file so that it can be streamed on any device including mobile, browser &amp; smart-tv. Here, we will achieve Adaptive Bitrate behaviour as well. MediaConvert is a file-based video transcoding service which allows you to easily create Video-on-Demand (VOD) content for the broadcast. [&hellip;]<\/p>\n","protected":false},"author":1222,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"iawp_total_views":10},"categories":[1,4683],"tags":[4812,4811,4810,2235,2210,2109],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/posts\/53193"}],"collection":[{"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/users\/1222"}],"replies":[{"embeddable":true,"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/comments?post=53193"}],"version-history":[{"count":13,"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/posts\/53193\/revisions"}],"predecessor-version":[{"id":53219,"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/posts\/53193\/revisions\/53219"}],"wp:attachment":[{"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/media?parent=53193"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/categories?post=53193"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/tags?post=53193"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}