本文介紹了利用Intelligent Media Management(IMM)媒體轉碼介面來實現視頻轉碼的能力。
功能簡介
視頻轉碼通過將已壓縮編碼的視頻碼流轉換為另一種視頻碼流,將視頻格式、封裝、解析度、幀率及碼率等參數轉換為適合不同裝置和平台播放,同時降低檔案大小以最佳化傳輸效率的過程。

使用情境
多裝置相容性:為確保視頻能夠在不同裝置(如手機、平板、電腦、智能電視等)上順利播放,轉碼技術能夠將視頻轉換為符合特定裝置所支援的格式。
流媒體播放:流媒體服務需要將視頻轉碼為多種格式和位元速率,以便根據使用者的網路狀況進行動態調整,從而提升觀看體驗。
視頻壓縮:在確保視頻品質的前提下,通過轉碼技術降低檔案大小,以便於儲存和傳輸,尤其是在網路頻寬受限的情況下。
支援音視頻格式列表
分類 | 格式 |
音頻 | AAC、MP3、WAV、FLAC、WMA、AC3、OPUS等所有主流格式。 |
視頻 | MP4、MPEG-TS、MKV、MOV、AVI、FLV、M3U8、WebM、WMV、RM、VOB等所有主流格式。 |
如何使用
前提條件
已建立並擷取AccessKey。具體操作,請參見建立AccessKey。
已開通OSS服務、建立儲存空間。具體操作,請參見建立儲存空間。
已開通Intelligent Media Management服務。具體操作,請參見開通產品。
已通過Intelligent Media Management控制台建立專案。具體操作,請參見建立專案。
說明您也可以調用API介面建立專案。具體操作,請參見CreateProject - 建立專案。
您可以調用ListProjects - 列出所有專案資訊的列表介面列出指定地區下已建立的所有專案資訊。
步驟一:上傳檔案
請使用OSS管理主控台將媒體檔案上傳至IMM專案所在地區的Bucket。

步驟二:使用IMM視頻轉碼
調用CreateMediaConvertTask - 建立媒體轉碼任務介面建立視頻轉碼任務。
參數說明
以下樣本以IMM專案test-project為基礎,使用視頻檔案oss://test-bucket/video-demo/蜀山區商業大樓.mov進行視頻轉碼處理。
更多有關ApsaraVideo for Media Processing各功能介紹和使用,請參見媒體轉碼。
您可以通過OpenAPI 門戶使用媒體轉碼介面對視頻檔案進行處理,可參考SDK代碼。
為實現最佳的播放相容性,推薦轉碼為 mp4 或者 hls,並設定視頻 Codec 為 h264 且PixelFormat 為 yuv420p,音頻 Codec 為 aac 且 Channel 為 2。
轉碼過程將不可避免地導致視頻畫面品質的下降。您可以通過 Bitrate 和 CRF 參數來調控轉碼後的視頻畫面品質。一般而言,畫面品質越高,檔案大小也會相應增大。
h265相較於h264具有更優越的壓縮效率。在視頻畫面品質相同的條件下,h265通常能夠比h264節省超過30%的儲存空間和頻寬成本。然而,h265的使用必須在播放器相容的前提下進行。
Codec 參數不設定時預設為 copy,為 copy 時,表示將需要處理的視頻流直接拷貝到輸出檔案,此時 TranscodeVideo 下的其餘參數無效。copy 不可用於視頻轉碼,通常應用於轉封裝情境。
Targets中URI檔案名稱建議使用變數設定輸出檔案路徑,相關變數請參見TargetURI模板。
轉碼為mp4
將視頻轉為mp4格式,且不改變解析度、幀率等視頻參數。

轉碼資訊
視頻格式:mov -> mp4
視頻配置:CRF設定為24,保持原有解析度與幀率等視頻參數
音頻配置:aac格式,碼率96Kbps,雙聲道,採樣率44.1kHz
輸出視頻儲存路徑:
oss://test-bucket/video-demo/蜀山區商業大樓.mp4轉碼完成訊息通知:發送MNS訊息到MNS主題“test-mns-topic”
SDK樣本請參見OpenAPI門戶,已為您自動填滿樣本的參數,請您按需修改後再進行調試。
請求參數如下
{
"ProjectName": "test-project",
"Notification": {
"MNS": {
"TopicName": "test-mns-topic"
}
},
"Sources": [
{
"URI": "oss://test-bucket/video-demo/蜀山區商業大樓.mov"
}
],
"Targets": [
{
"Audio": {
"TranscodeAudio": {
"Bitrate": 96000,
"Channel": 2,
"Codec": "aac",
"SampleRate": 44100
}
},
"Container": "mp4",
"URI": "oss://test-bucket/video-demo/蜀山區商業大樓.mp4",
"Video": {
"TranscodeVideo": {
"CRF": 24,
"Codec": "h264",
"PixelFormat": "yuv420p"
}
}
}
]
}轉碼為1920x1080解析度30fps的hls格式視頻
將視頻轉碼為1920x1080解析度、30fps的H.265視頻,使用HLS格式切片,當源視頻解析度與幀率不足時遵循源視頻參數。

轉碼資訊
視頻格式:mov -> m3u8
切片:hls格式,切片時間長度10s
視頻配置:h265編碼格式,CRF設定為24,解析度1920x1080,幀率30
音頻配置:aac格式,碼率128Kbps,雙聲道,採樣率44.1kHz
輸出視頻儲存路徑:
oss://test-bucket/video-demo/蜀山區商業大樓.m3u8、oss://test-bucket/video-demo/蜀山區商業大樓-%d.ts轉碼完成訊息通知:發送MNS訊息到MNS主題“test-mns-topic”
SDK樣本請參見OpenAPI門戶,已為您自動填滿樣本的參數,請您按需修改後再進行調試。
請求參數如下
{
"ProjectName": "test-project",
"Notification": {
"MNS": {
"TopicName": "test-mns-topic"
}
},
"Sources": [
{
"URI": "oss://test-bucket/video-demo/蜀山區商業大樓.mov"
}
],
"Targets": [
{
"Audio": {
"TranscodeAudio": {
"Bitrate": 128000,
"Channel": 2,
"Codec": "aac",
"SampleRate": 44100
}
},
"Container": "ts",
"Segment": {
"Duration": 10,
"Format": "hls"
},
"URI": "oss://test-bucket/video-demo/蜀山區商業大樓.{autoext}",
"Video": {
"TranscodeVideo": {
"AdaptiveResolutionDirection": true,
"CRF": 24,
"Codec": "h265",
"FrameRate": 30,
"FrameRateOption": "adaptive",
"PixelFormat": "yuv420p",
"Resolution": "1920x1080",
"ResolutionOption": "adaptive",
"ScaleType": "fit"
}
}
}
]
}轉碼為1080p、720p、480p三個解析度的hls視頻
將視頻轉碼為1080p、720p、480p三個解析度的視頻,使用HLS格式切片。

轉碼資訊
轉碼前
視頻格式:mov
視頻編碼格式:h264
解析度:3840x2160
幀率:30
轉碼後
轉碼完成訊息通知:發送MNS訊息到MNS主題“test-mns-topic”
視頻1
視頻格式:m3u8
切片:hls格式,切片時間長度10s
視頻配置:h264編碼格式,CRF設定為25,解析度1920x1080,幀率30
音頻配置:aac格式,碼率256Kbps,雙聲道,採樣率44.1kHz
輸出視頻儲存路徑:
oss://test-bucket/video-demo/蜀山區商業大樓-x1080.m3u8、oss://test-bucket/video-demo/蜀山區商業大樓-x1080-%d.ts
視頻2
視頻格式:m3u8
切片:hls格式,切片時間長度10s
視頻配置:h264編碼格式,CRF設定為26,解析度1280x720,幀率30
音頻配置:aac格式,碼率128Kbps,雙聲道,採樣率44.1kHz
輸出視頻儲存路徑:
oss://test-bucket/video-demo/蜀山區商業大樓-x720.m3u8、oss://test-bucket/video-demo/蜀山區商業大樓-x720-%d.ts
視頻3
視頻格式:m3u8
切片:hls格式,切片時間長度10s
視頻配置:h264編碼格式,CRF設定為28,解析度854x480,幀率25
音頻配置:aac格式,碼率96Kbps,雙聲道,採樣率44.1kHz
輸出視頻儲存路徑:
oss://test-bucket/video-demo/蜀山區商業大樓-x480.m3u8、oss://test-bucket/video-demo/蜀山區商業大樓-x480-%d.ts
SDK樣本請參見OpenAPI門戶,已為您自動填滿樣本的參數,請您按需修改後再進行調試。
請求參數如下
{
"ProjectName": "test-project",
"Notification": {
"MNS": {
"TopicName": "test-mns-topic"
}
},
"Sources": [
{
"URI": "oss://test-bucket/video-demo/蜀山區商業大樓.mov"
}
],
"Targets": [
{
"Audio": {
"TranscodeAudio": {
"Bitrate": 256000,
"Channel": 2,
"Codec": "aac",
"SampleRate": 44100
}
},
"Container": "ts",
"Segment": {
"Duration": 10,
"Format": "hls"
},
"URI": "oss://test-bucket/video-demo/蜀山區商業大樓-{resolution}.{autoext}",
"Video": {
"TranscodeVideo": {
"AdaptiveResolutionDirection": true,
"CRF": 25,
"Codec": "h264",
"FrameRate": 30,
"FrameRateOption": "adaptive",
"PixelFormat": "yuv420p",
"Resolution": "x1080",
"ResolutionOption": "adaptive",
"ScaleType": "fit"
}
}
},
{
"Audio": {
"TranscodeAudio": {
"Bitrate": 128000,
"Channel": 2,
"Codec": "aac",
"SampleRate": 44100
}
},
"Container": "ts",
"Segment": {
"Duration": 10,
"Format": "hls"
},
"URI": "oss://test-bucket/video-demo/蜀山區商業大樓-{resolution}.{autoext}",
"Video": {
"TranscodeVideo": {
"AdaptiveResolutionDirection": true,
"CRF": 26,
"Codec": "h264",
"FrameRate": 30,
"FrameRateOption": "adaptive",
"PixelFormat": "yuv420p",
"Resolution": "x720",
"ResolutionOption": "adaptive",
"ScaleType": "fit"
}
}
},
{
"Audio": {
"TranscodeAudio": {
"Bitrate": 96000,
"Channel": 2,
"Codec": "aac",
"SampleRate": 44100
}
},
"Container": "ts",
"Segment": {
"Duration": 10,
"Format": "hls"
},
"URI": "oss://test-bucket/video-demo/蜀山區商業大樓-{resolution}.{autoext}",
"Video": {
"TranscodeVideo": {
"AdaptiveResolutionDirection": true,
"CRF": 28,
"Codec": "h264",
"FrameRate": 25,
"FrameRateOption": "adaptive",
"PixelFormat": "yuv420p",
"Resolution": "x480",
"ResolutionOption": "adaptive",
"ScaleType": "fit"
}
}
}
]
}轉碼為mp4並添加浮水印
將視頻轉碼為mp4格式,並在視頻左上方添加浮水印Logo,在視頻右下角添加浮水印文字。

轉碼資訊
視頻格式:mov -> mp4
視頻配置:h264編碼格式,CRF設定為25,保持原有解析度與幀率等視頻參數。在左上方添加阿里雲LOGO圖片浮水印,在右下角添加“Intelligent Media Management”文字浮水印。
音頻配置:aac格式,碼率為256 Kbps,雙聲道,採樣率為44.1 kHz。
輸出視頻儲存路徑:
oss://test-bucket/video-demo/蜀山區商業大樓.mp4轉碼完成訊息通知:發送MNS訊息到MNS主題“test-mns-topic”
SDK樣本請參見OpenAPI門戶,已為您自動填滿樣本的參數,請您按需修改後再進行調試。
請求參數如下
{
"ProjectName": "test-project",
"Notification": {
"MNS": {
"TopicName": "test-mns-topic"
}
},
"Sources": [
{
"URI": "oss://test-bucket/video-demo/蜀山區商業大樓.mov"
}
],
"Targets": [
{
"Audio": {
"TranscodeAudio": {
"Bitrate": 256000,
"Channel": 2,
"Codec": "aac",
"SampleRate": 44100
}
},
"Container": "mp4",
"URI": "oss://test-bucket/video-demo/蜀山區商業大樓.{autoext}",
"Video": {
"FilterVideo": {
"Delogos": [],
"Watermarks": [
{
"Dx": 0.05,
"Dy": 0.1,
"ReferPos": "topleft",
"Type": "file",
"URI": "oss://test-bucket/video-demo/aliyun.png",
"Width": 0.1
},
{
"Content": "Intelligent Media Management",
"Dx": 0.05,
"Dy": 0.1,
"FontColor": "#FFFFFF",
"FontSize": 100,
"ReferPos": "bottomright",
"Type": "text"
}
]
},
"TranscodeVideo": {
"CRF": 25,
"Codec": "h264",
"PixelFormat": "yuv420p"
}
}
}
]
}截取視頻的部分區段轉碼為flv格式
截取源視頻的部分區段轉碼為FLV格式,將碼率調整為1Mbps。

轉碼資訊
視頻格式:mov -> flv
截取開始時間:5s
截取時間長度:10s
視頻配置:碼率為1Mbps,保持原有的解析度、幀率及其他視頻參數。
音頻配置:aac格式,碼率96Kbps,雙聲道,採樣率44.1kHz
輸出視頻儲存路徑:
oss://test-bucket/video-demo/蜀山區商業大樓.flv轉碼完成訊息通知:發送MNS訊息到MNS主題“test-mns-topic”
SDK樣本請參見OpenAPI門戶,已為您自動填滿樣本的參數,請您按需修改後再進行調試。
請求參數如下
{
"ProjectName": "test-project",
"Notification": {
"MNS": {
"TopicName": "test-mns-topic"
}
},
"Sources": [
{
"Duration": 10,
"StartTime": 5,
"URI": "oss://test-bucket/video-demo/蜀山區商業大樓.mov"
}
],
"Targets": [
{
"Audio": {
"TranscodeAudio": {
"Bitrate": 96000,
"Channel": 2,
"Codec": "aac",
"SampleRate": 44100
}
},
"Container": "flv",
"URI": "oss://test-bucket/video-demo/蜀山區商業大樓.{autoext}",
"Video": {
"TranscodeVideo": {
"Bitrate": 1000000,
"Codec": "h264",
"PixelFormat": "yuv420p"
}
}
}
]
}將視頻轉封裝為mp4
將視頻轉封裝為mp4,轉封裝不改變音視頻資料內容,可能存在播放相容性問題。
轉碼資訊
視頻格式:mov -> mp4
輸出視頻儲存路徑:
oss://test-bucket/video-demo/蜀山區商業大樓.mp4轉碼完成訊息通知:發送MNS訊息到MNS主題“test-mns-topic”
SDK樣本請參見OpenAPI門戶,已為您自動填滿樣本的參數,請您按需修改後再進行調試。
請求參數如下
{
"ProjectName": "test-project",
"Notification": {
"MNS": {
"TopicName": "test-mns-topic"
}
},
"Sources": [
{
"URI": "oss://test-bucket/video-demo/蜀山區商業大樓.mov"
}
],
"Targets": [
{
"Container": "mp4",
"URI": "oss://test-bucket/video-demo/蜀山區商業大樓.{autoext}"
}
]
}將視頻浮水印地區打馬賽克
將視頻左上方浮水印logo地區和右下角浮水印文字地區打上馬賽克。

轉碼資訊
輸入視頻路徑:
oss://test-bucket/video-demo/蜀山區商業大樓.mp4視頻配置:h264編碼格式,CRF設定為24,保持原有解析度、幀率等視頻參數,並對左上方的LOGO地區和右下角的文字浮水印地區進行馬賽克處理。
音頻配置:aac格式,碼率為96 Kbps,雙聲道,採樣率為44.1 kHz。
輸出視頻儲存路徑:
oss://test-bucket/video-demo/蜀山區商業大樓-mosaic.mp4轉碼完成訊息通知:發送MNS訊息到MNS主題“test-mns-topic”
SDK樣本請參見OpenAPI門戶,已為您自動填滿樣本的參數,請您按需修改後再進行調試。
請求參數如下
{
"ProjectName": "test-project",
"Notification": {
"MNS": {
"TopicName": "test-mns-topic"
}
},
"Sources": [
{
"URI": "oss://test-bucket/video-demo/蜀山區商業大樓.mp4"
}
],
"Targets": [
{
"Audio": {
"TranscodeAudio": {
"Bitrate": 96000,
"Channel": 2,
"Codec": "aac",
"SampleRate": 44100
}
},
"Container": "mp4",
"URI": "oss://test-bucket/video-demo/蜀山區商業大樓-mosaic.{autoext}",
"Video": {
"FilterVideo": {
"Delogos": [
{
"Dx": 0.05,
"Dy": 0.1,
"Height": 0.1,
"ReferPos": "topleft",
"Width": 0.1
},
{
"Dx": 0.05,
"Dy": 0.1,
"Height": 100,
"ReferPos": "bottomright",
"Width": 600
}
],
},
"TranscodeVideo": {
"CRF": 24,
"Codec": "h264",
"PixelFormat": "yuv420p"
}
}
}
]
}