

手把手設定 MediaConvert 轉檔 HLS 搭配 S3 + CloudFront
source link: https://www.tuicool.com/articles/NjQzAnZ
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

AWS Elemental MediaConvert 可以編譯您輸入的影音檔案並轉換產出其他格式的影音檔案。MediaConvert 可以從 S3 取得來源檔或者通過 HTTP 或 HTTPS。整體步驟如下:
- 建立 S3 Bucket
- 建立 SSL 憑證,後續 CloudFront 欲使用自訂網址
- 設定 CloudFront
- 設定 IAM 權限
- 上傳 Video 使用 MediaConvert 轉譯
建立 S3 Bucket
S3 Bucket 僅允許 CDN 存取。

建立儲存體

輸入名稱

預設值即可。

預設值即可。


上傳圖片測試。

選擇圖檔



確認上傳

建立 SSL 憑證
由於 CloudFront 我們想使用自己的網址,因此需要建立 SSL 憑證。登入 AWS Console 選擇 Certificate Manager。

使用佈建憑證

為了示範流程,選擇【申請公有憑證】
私有憑證的流程也類似如果您使用的是私有憑證請選擇

輸入網域,我們使用 Wildcard *
依照您較方便的方式進行驗證

檢視設定結果

取得驗證流程所需的資訊,至您的 DNS 管理介面設定

本文網址為 Gandi 託管

稍後片刻,驗證成功

設定 CloudFront
由 CloudFront 取得 S3 資源,S3 本身不提供直接存取。



選擇您的 Bucket


提供我們要使用的自訂網址



下圖為自動設定 S3 的設定檔

至您的 DNS 設定 CNAME

設定 IAM 權限
為了使用 MediaConvert 我們需要先建立角色。






使用 MediaConvert
這裡我們練習使用 MediaConvert 將一個 .mp4
轉換成 HLS
串流,您的應用程式可以搭配 AWS SDK 來整合,這裡我們只是要紀錄學習一個使用流程與概念。
第一步我們先回到 S3 上傳一部 mp4

流程跟之前上傳圖片一樣。



完成上傳,接著我們可以切換至 MediaConvert 服務頁面。

選擇【開始使用】

選擇檔案來源

選擇 Bucket 和檔案

輸入設定,這裡您可以依據您的需求設定 Input Selectors,總共有三種類型。不過 這裡的示範我們維持預設值即可
-
在 Video Selector 的部分,指定您需要的欄位值。您不需要自行建立 Video Selector 因為 AWS Elemental MediaConvert 會在建立 Job 的時候自動建立一組。然而服務不會自動偵測影片來源的資訊。您可以在 Video Selector 提供。如果您在這些欄位使用預設值,您還是可以建立一組合法的 Job。
注意:AWS Elemental MediaConvert 不支援多影音串流格式的影片例如 Quad 4K。每一個輸入只能有一個 Video Selector;因此沒有 Add Video Selector 的按鈕可以點。
-
Audio Selectors 的部分,在 Audio selector 1 ,設定關於主要音源資源的資訊。您不需要建立 Audio selector 1 因為建立 Job 的時候一樣會自動建立一組。
注意:
音頻資源通常包含對話、背景音,配樂等在一個 Track。Tracks 通常由多個聲道 Channels 組成。例如杜比 5.1 每個 Track 有 6 個聲道
a. 針對 Selector type 選擇識別音頻的方式,通常使用 Track
b. 替主要的音源設定識別(Track number,PID 或 Language code),主要的音源可能是 Track 1
對於大部分的情況,每一個 Input Selector 都有一組 Input Track。如果您需要合併多個音軌可以使用
,
分隔列表項目或使用*




注意:輸出如果要在目錄底下需要以 /
結尾。

Output 如果輸出設定的 Preset 沒有設定的話,那麼至少 Bitrate
一定要設定。
# 使用 ffmpeg 查詢 Bitrate ffprobe -show_format demo.mp4


任務設定必須要設定角色,我們選擇剛剛建立的角色。

建立 Job 完成執行轉檔。


至 S3 檢查產出的結果。


完成 .m3u8
的轉換之後,我們需要調整 S3 和 CloudFront 的設定,因為我們希望可以直接從 CDN 取得 .m3u8
。
S3 先設定 CORS。
<?xml version="1.0" encoding="UTF-8"?> <CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/"> <CORSRule> <AllowedOrigin>*</AllowedOrigin> <AllowedMethod>GET</AllowedMethod> <MaxAgeSeconds>3000</MaxAgeSeconds> <AllowedHeader>Authorization</AllowedHeader> <AllowedHeader>Origin</AllowedHeader> </CORSRule> </CORSConfiguration>

注意:CloudFront 一定要允許 Origin
資源
Recommend
-
8
随想录(hls加速技术)
-
13
HLS及M3U8介绍
-
14
流媒体(Streaming media)是指将一连串的多媒体资料压缩后,经过互联网分段发送资料,在互联网上即时传输影音以供观赏的一种技术与过程,此技术使得资料数据包得以像流水一样发送,如果不使用此技术,就必须在使用前下载整个媒体文件。实...
-
15
在前面一篇文章中《流媒体协议之HLS》介绍了什么是流媒体,什么是HLS以及分析了m3u8文件格式内容的含义。在本篇文章中更多的是实际操作,搭建一个流媒体服务,使用ffmpeg切割大的视频文件,使用ffmpeg切割大的视频文件并加密,使用ffmpeg...
-
32
David Cordero HLS Timed Metadata with AVPlayer Published on 01 Feb 2021 As
-
10
转换方式一 1.直接把媒体文件转为ts ffmpeg -i cat.mp4 -c copy -bsf h264_mp4toannexb cat.ts 2.使用segment参数进行切片 ffmpeg -i cat.ts -c copy -map 0 -f segment -segment_list playlist.m3u8 -...
-
8
使用FFMPEG生成HLS | Lenix Blog使用FFmpeg生成HLS HLS也就是HTTP Live...
-
3
32 | HLS:实现一对多直播系统的必备协议 | Lenix Blog 在上一篇文章中 ,我们对 RTMP 协议和 HLS 协议的优势与劣势进行了比较。从比较的结果我们可以看出,RTMP 作为传统的直播传输技术在实时性...
-
6
AWS Elemental MediaConvert
-
7
手把手配置Amazon CloudFront 实现全站加速 VPS小白 >
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK