このトピックでは、Intelligent Media Management (IMM) のメディアトランスコーディング API 操作を使用して動画をトランスコーディングする方法について説明します。
機能の説明
動画のトランスコーディングは、圧縮およびエンコードされた動画ストリームを別の動画ストリームに変換するプロセスです。このプロセスでは、動画フォーマット、コンテナフォーマット、解像度、フレームレート、ビットレートなどのパラメーターを変更し、さまざまなデバイスやプラットフォームでの再生に適応させます。また、ファイルサイズを削減して伝送効率を最適化します。

利用シーン
複数デバイスの互換性:携帯電話、タブレット、コンピューター、スマートテレビなど、さまざまなデバイスでスムーズな再生を確保するために、動画トランスコーディングを使用して動画をデバイス固有のフォーマットに変換できます。
ストリーミングメディアの再生:ストリーミングメディアサービスでは、動画を複数のフォーマットとビットレートにトランスコーディングする必要があります。これにより、ユーザーのネットワーク状況に応じて動的に調整を行い、視聴体験を向上させることができます。
動画の圧縮:動画をトランスコーディングすることで、品質を大幅に損なうことなくファイルサイズを削減できます。これにより、特にネットワーク帯域幅が限られている場合に、効率的なストレージと伝送が容易になります。
サポートされているオーディオおよびビデオフォーマット
カテゴリ | フォーマット |
オーディオ | AAC、MP3、WAV、FLAC、WMA、AC3、Opus などの主要なオーディオフォーマット。 |
ビデオ | MP4、MPEG-TS、MKV、MOV、AVI、FLV、M3U8、WebM、WMV、RM、VOB などの主要なビデオフォーマット。 |
使用方法
前提条件
AccessKey ペアが作成され、取得されていること。詳細については、「AccessKey ペアの作成」をご参照ください。
Object Storage Service (OSS) が有効化され、バケットが作成されていること。詳細については、「バケットの作成」をご参照ください。
IMM が有効化されていること。詳細については、「IMM の有効化」をご参照ください。
IMM コンソールでプロジェクトが作成されていること。詳細については、「プロジェクトの作成」をご参照ください。
説明CreateProject 操作を呼び出してプロジェクトを作成できます。詳細については、「CreateProject」をご参照ください。
ListProjects 操作を呼び出して、リージョン内のすべてのプロジェクトの情報を一覧表示できます。
ステップ 1: ファイルのアップロード
OSS コンソールを使用して、IMM プロジェクトと同じリージョンにあるバケットにメディアファイルをアップロードします。

ステップ 2: IMM を使用した動画のトランスコーディング
CreateMediaConvertTask 操作を呼び出して、メディアトランスコーディングタスクを作成します。
パラメーターの説明
以下の例では、IMM プロジェクト test-project を使用してビデオファイル oss://test-bucket/video-demo/Shushan Commercial Building.mov をトランスコードします。
ApsaraVideo Media Processing の機能と使用方法の詳細については、「メディアトランスコーディング」をご参照ください。
OpenAPI Portal でメディアトランスコーディング API 操作を呼び出し、サンプル SDK コードを参照して動画ファイルを処理できます。
最高の再生互換性を得るには、動画を MP4 または HTTP Live Steaming (HLS) にトランスコーディングしてください。ビデオの Codec を h264、PixelFormat を yuv420p、オーディオの Codec を aac、Channel を 2 に設定します。
トランスコーディングプロセスでは、必然的に動画の品質が低下します。Bitrate および CRF パラメーターを使用して、トランスコーディングされた動画の品質を調整できます。一般的に、品質が高いほどファイルサイズは大きくなります。
H.265 は H.264 よりも圧縮効率が優れています。同じ動画品質の場合、H.265 は通常、ストレージスペースと帯域幅のコストを 30% 以上削減します。ただし、H.265 には互換性のあるプレーヤーが必要です。
Codec パラメーターを設定しない場合、デフォルト値は copy です。この値は、動画ストリームが出力ファイルに直接コピーされることを意味します。その場合、TranscodeVideo 配下の他のパラメーターは無効になります。copy 値は動画のトランスコーディングには使用されません。通常、コンテナフォーマットの変換に使用されます。
変数を使用して、Targets の URI の出力ファイルパスを設定できます。詳細については、「TargetURI テンプレート」をご参照ください。
MP4 へのトランスコーディング
解像度やフレームレートなどのパラメーターを変更せずに、動画を MP4 フォーマットに変換します。

トランスコーディング情報
動画フォーマット:MOV から MP4
ビデオ構成:CRF を 24 に設定。元の解像度、フレームレート、およびその他のビデオパラメーターを維持します。
オーディオ構成:AAC フォーマット、96 kbit/s ビットレート、2 つのサウンドチャンネル、44.1 kHz サンプルレート。
出力ビデオパス:
oss://test-bucket/video-demo/Shushan Commercial Building.mp4トランスコーディング完了通知:MNS メッセージを MNS トピック「test-mns-topic」に送信します。
サンプル SDK については、OpenAPI Portal をご参照ください。この例のパラメーターは自動的に入力されます。コードをテストする前に、必要に応じてパラメーターを変更できます。
リクエストパラメーター
{
"ProjectName": "test-project",
"Notification": {
"MNS": {
"TopicName": "test-mns-topic"
}
},
"Sources": [
{
"URI": "oss://test-bucket/video-demo/Shushan Commercial Building.mov"
}
],
"Targets": [
{
"Audio": {
"TranscodeAudio": {
"Bitrate": 96000,
"Channel": 2,
"Codec": "aac",
"SampleRate": 44100
}
},
"Container": "mp4",
"URI": "oss://test-bucket/video-demo/Shushan Commercial Building.mp4",
"Video": {
"TranscodeVideo": {
"CRF": 24,
"Codec": "h264",
"PixelFormat": "yuv420p"
}
}
}
]
}1920x1080 解像度、30 fps の HLS 動画へのトランスコーディング
動画を 1920x1080 の解像度、30 fps (1 秒あたりのフレーム数) の H.265 動画にトランスコーディングします。HLS フォーマットを使用して動画をセグメント化します。ソース動画の解像度またはフレームレートが低い場合、元のパラメーターが使用されます。

トランスコーディング情報
動画フォーマット:MOV から M3U8
セグメンテーション:HLS フォーマット、10 秒のセグメントの長さ
ビデオ構成:H.265 エンコード形式、CRF を 24 に設定、1920x1080 の解像度、30 のフレームレート。
オーディオ構成:AAC フォーマット、128 kbit/s ビットレート、2 つのサウンドチャンネル、44.1 kHz サンプルレート。
出力動画パス:
oss://test-bucket/video-demo/Shushan Commercial Building.m3u8、oss://test-bucket/video-demo/Shushan Commercial Building-%d.tsトランスコーディング完了通知:MNS メッセージを MNS トピック「test-mns-topic」に送信します。
サンプル SDK については、OpenAPI Portal をご参照ください。この例のパラメーターは自動的に入力されます。コードをテストする前に、必要に応じてパラメーターを変更できます。
リクエストパラメーター
{
"ProjectName": "test-project",
"Notification": {
"MNS": {
"TopicName": "test-mns-topic"
}
},
"Sources": [
{
"URI": "oss://test-bucket/video-demo/Shushan Commercial Building.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/Shushan Commercial Building.{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 の 3 つの解像度の個別の動画にトランスコーディングします。セグメンテーションには HLS フォーマットが使用されます。

トランスコーディング情報
トランスコーディング前
動画フォーマット:MOV
ビデオエンコード形式:H.264
解像度:3840x2160
フレームレート:30
トランスコーディング後
トランスコーディング完了通知:MNS メッセージを MNS トピック「test-mns-topic」に送信します。
動画 1
動画フォーマット:M3U8
セグメンテーション:HLS フォーマット、10 秒のセグメントの長さ
ビデオ構成:H.264 エンコード形式、CRF を 25 に設定、1920x1080 の解像度、30 のフレームレート。
オーディオ構成:AAC フォーマット、256 kbit/s ビットレート、2 つのサウンドチャンネル、44.1 kHz サンプルレート。
出力ビデオパス:
oss://test-bucket/video-demo/Shushan Commercial Building-x1080.m3u8、oss://test-bucket/video-demo/Shushan Commercial Building-x1080-%d.ts
動画 2
動画フォーマット:M3U8
セグメンテーション:HLS フォーマット、10 秒のセグメントの長さ
ビデオ構成:H.264 エンコード形式、CRF を 26 に設定、1280x720 の解像度、30 のフレームレート。
オーディオ構成:AAC フォーマット、128 kbit/s ビットレート、2 つのサウンドチャンネル、44.1 kHz サンプルレート。
出力動画パス:
oss://test-bucket/video-demo/Shushan Commercial Building-x720.m3u8、oss://test-bucket/video-demo/Shushan Commercial Building-x720-%d.ts
動画 3
動画フォーマット:M3U8
セグメンテーション:HLS フォーマット、10 秒のセグメントの長さ
ビデオ構成:H.264 エンコード形式、CRF を 28 に設定、854x480 の解像度、25 のフレームレート。
オーディオ構成:AAC フォーマット、96 kbit/s ビットレート、2 つのサウンドチャンネル、44.1 kHz サンプルレート。
出力動画パス:
oss://test-bucket/video-demo/Shushan Commercial Building-x480.m3u8、oss://test-bucket/video-demo/Shushan Commercial Building-x480-%d.ts
サンプル SDK については、OpenAPI Portal をご参照ください。この例のパラメーターは自動的に入力されます。コードをテストする前に、必要に応じてパラメーターを変更できます。
リクエストパラメーター
{
"ProjectName": "test-project",
"Notification": {
"MNS": {
"TopicName": "test-mns-topic"
}
},
"Sources": [
{
"URI": "oss://test-bucket/video-demo/Shushan Commercial Building.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/Shushan Commercial Building-{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/Shushan Commercial Building-{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/Shushan Commercial Building-{resolution}.{autoext}",
"Video": {
"TranscodeVideo": {
"AdaptiveResolutionDirection": true,
"CRF": 28,
"Codec": "h264",
"FrameRate": 25,
"FrameRateOption": "adaptive",
"PixelFormat": "yuv420p",
"Resolution": "x480",
"ResolutionOption": "adaptive",
"ScaleType": "fit"
}
}
}
]
}MP4 へのトランスコーディングとウォーターマークの追加
動画を MP4 フォーマットにトランスコーディングします。左上隅にロゴのウォーターマークを、右下隅にテキストのウォーターマークを追加します。

トランスコーディング情報
動画フォーマット:MOV から MP4
ビデオ構成:動画は H.264 フォーマットでエンコードされ、CRF は 25 に設定されています。元の解像度とフレームレートは保持されます。左上隅に Alibaba Cloud のロゴ画像のウォーターマークが追加され、右下隅に「Intelligent Media Management」のテキストウォーターマークが追加されます。
オーディオ構成:オーディオは AAC フォーマットでエンコードされ、256 kbit/s のビットレート、2 つのサウンドチャンネル、44.1 kHz のサンプルレートを持ちます。
出力動画パス:
oss://test-bucket/video-demo/Shushan Commercial Building.mp4トランスコーディング完了通知:MNS メッセージが MNS トピック「test-mns-topic」に送信されます。
コードサンプルについては、OpenAPI Portal をご参照ください。この例のパラメーターは自動的に入力されます。コードをテストする前に、必要に応じてパラメーターを変更できます。
リクエストパラメーター
{
"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 形式にトランスコーディングして、ビットレートを 1 Mbps に調整します。

トランスコーディング情報
動画フォーマット:MOV から FLV
クリップ開始時刻:5 秒
クリップの長さ:10 秒
ビデオ構成:1 Mbps のビットレート。元の解像度、フレームレート、およびその他のビデオパラメーターは保持されます。
オーディオ構成:AAC フォーマット、96 kbit/s ビットレート、2 つのサウンドチャンネル、44.1 kHz サンプルレート。
出力動画パス:
oss://test-bucket/video-demo/Shushan Commercial Building.flvトランスコーディング完了通知:MNS メッセージが MNS トピック「test-mns-topic」に送信されます。
サンプル呼び出しについては、「OpenAPI Portal」をご参照ください。この例のパラメーターは自動的に入力されます。コードをテストする前に、必要に応じてパラメーターを変更できます。
リクエストパラメーター
{
"ProjectName": "test-project",
"Notification": {
"MNS": {
"TopicName": "test-mns-topic"
}
},
"Sources": [
{
"Duration": 10,
"StartTime": 5,
"URI": "oss://test-bucket/video-demo/Shushan Commercial Building.mov"
}
],
"Targets": [
{
"Audio": {
"TranscodeAudio": {
"Bitrate": 96000,
"Channel": 2,
"Codec": "aac",
"SampleRate": 44100
}
},
"Container": "flv",
"URI": "oss://test-bucket/video-demo/Shushan Commercial Building.{autoext}",
"Video": {
"TranscodeVideo": {
"Bitrate": 1000000,
"Codec": "h264",
"PixelFormat": "yuv420p"
}
}
}
]
}動画のコンテナフォーマットの MP4 への変換
動画のコンテナフォーマットを MP4 に変換します。コンテナフォーマットの変換では、オーディオまたはビデオデータは再エンコードされませんが、再生の互換性の問題が発生する可能性があります。
トランスコーディング情報
動画フォーマット:MOV から MP4
出力ビデオパス:
oss://test-bucket/video-demo/Shushan Commercial Building.mp4トランスコーディング完了通知:MNS メッセージを MNS トピック「test-mns-topic」に送信します。
サンプル API 呼び出しについては、OpenAPI Portal をご参照ください。この例のパラメーターは自動的に入力されます。コードをテストする前に、必要に応じてパラメーターを変更できます。
リクエストパラメーター
{
"ProjectName": "test-project",
"Notification": {
"MNS": {
"TopicName": "test-mns-topic"
}
},
"Sources": [
{
"URI": "oss://test-bucket/video-demo/Shushan Commercial Building.mov"
}
],
"Targets": [
{
"Container": "mp4",
"URI": "oss://test-bucket/video-demo/Shushan Commercial Building.{autoext}"
}
]
}動画内 モザイク ウォーターマーク エリア
動画の左上隅のロゴウォーターマーク領域と右下隅のテキストウォーターマーク領域にモザイクをかけます。

トランスコーディング情報
入力ビデオパス:
oss://test-bucket/video-demo/Shushan Commercial Building.mp4ビデオ構成:H.264 エンコード形式で、CRF は 24 に設定されています。元の解像度とフレームレートは保持されます。左上隅のロゴ領域と右下隅のテキストウォーターマーク領域にモザイクが適用されます。
オーディオ構成:AAC フォーマット、96 kbit/s ビットレート、2 つのサウンドチャンネル、44.1 kHz サンプルレート。
出力動画パス:
oss://test-bucket/video-demo/Shushan Commercial Building-mosaic.mp4トランスコーディング完了通知:MNS メッセージが MNS トピック「test-mns-topic」に送信されます。
コードサンプルについては、OpenAPI Portal をご参照ください。この例のパラメーターは自動的に入力されます。コードをテストする前に、必要に応じてパラメーターを変更できます。
リクエストパラメーター
{
"ProjectName": "test-project",
"Notification": {
"MNS": {
"TopicName": "test-mns-topic"
}
},
"Sources": [
{
"URI": "oss://test-bucket/video-demo/Shushan Commercial Building.mp4"
}
],
"Targets": [
{
"Audio": {
"TranscodeAudio": {
"Bitrate": 96000,
"Channel": 2,
"Codec": "aac",
"SampleRate": 44100
}
},
"Container": "mp4",
"URI": "oss://test-bucket/video-demo/Shushan Commercial Building-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"
}
}
}
]
}