このトピックでは、Intelligent Media Management (IMM) の CreateMediaConvertTask オペレーションを使用してビデオをトランスコードする方法について説明します。
機能の説明
ビデオトランスコードとは、ビデオストリームをある圧縮およびエンコード形式から別の形式に変換するプロセスです。 これには、ビデオフォーマット、コンテナ、解像度、ビットレートなどのパラメータを調整して、さまざまなデバイスやプラットフォームとのビデオの互換性を確保し、ファイルサイズを縮小して伝送を高速化することが含まれます。

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

ステップ 2:IMM を使用してビデオをトランスコードする
CreateMediaConvertTask オペレーションを呼び出して、メディアトランスコードタスクを作成します。
パラメータの説明
次の例では、test-project という名前の IMM プロジェクトが使用され、ファイル名が oss://test-bucket/video-demo/Shushan Commercial Building.mov であるビデオがトランスコードされます。
メディア処理機能と使用方法の詳細については、「メディアトランスコード」をご参照ください。
CreateMediaConvertTask オペレーションを呼び出し、OpenAPI Explorer の SDK コードを参照することで、ビデオファイルを処理できます。
最適な再生互換性を実現するために、ビデオを MP4 または HTTP ライブストリーミングプロトコル (HLS) フォーマットにトランスコードし、ビデオの Codec パラメータを h264、PixelFormat パラメータを yuv420p、オーディオの Codec パラメータを aac、Channel パラメータを 2 に設定することをお勧めします。
トランスコードプロセスはビデオの画質を低下させます。 Bitrate パラメータと CRF パラメータを使用して、トランスコードされたビデオの画質を調整できます。 一般的に、画質が高いほどファイルサイズが大きくなります。
H.265 は H.264 よりも高い圧縮効率を提供します。 同じビデオ画質で、H.265 は通常、H.264 と比較して 30% 以上のストレージスペースと帯域幅コストを節約します。 H.265 の欠点は、互換性のあるプレーヤーで使用する必要があることです。
Codec パラメータを空のままにすると、デフォルト値「copy」が使用されます。 この値は、処理されるビデオストリームが出力ファイルに直接コピーされることを指定します。 Codec パラメータを「copy」に設定すると、TranscodeVideo の残りのパラメータは無効になります。 ビデオトランスコードでは「copy」を使用できません。 通常、コンテナフォーマット変換で使用されます。
Targets の URI パラメータの値に出力ファイルパスを設定するには、変数を使用することをお勧めします。 詳細については、「TargetURI テンプレート」をご参照ください。
ビデオを MP4 フォーマットにトランスコードする
次のセクションでは、解像度やフレームレートなどの特定の入力ビデオパラメータを変更せずに、ビデオを MP4 フォーマットに変換する方法の例を示します。

トランスコード情報
ビデオフォーマット:MOV から MP4。
ビデオ構成:24 定レート係数 (CRF) 値、および解像度やフレームレートなどの特定の入力ビデオパラメータが保持されます。
オーディオ構成:Advanced Audio Coding (AAC) フォーマット、96 Kbit/s ビットレート、44.1 kHz サンプリングレート、およびバイノーラルサウンドチャンネル。
ビデオ出力パス:
oss://test-bucket/video-demo/Shushan Commercial Building.mp4。トランスコード完了通知:「test-mns-topic」という名前の MNS トピックに送信される Simple Message Queue (SMQ) メッセージ。
サンプル SDK の詳細については、OpenAPI Explorer の SDK サンプルコードタブ にアクセスしてください。 例のパラメータは、OpenAPI Explorer で自動的に設定されます。 コードをデバッグする前に、必要に応じてパラメータを変更してください。
リクエストパラメータ
{
"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"
}
}
}
]
}ビデオを 1920 × 1080 の解像度、30 FPS で HLS フォーマットにトランスコードする
このセクションでは、ビデオを 1920 × 1080 の解像度、30 フレーム/秒 (FPS) の H.265 ビデオにトランスコードし、HLS を使用して入力ビデオをセグメントに分割する方法の例を示します。 入力ビデオの解像度とフレームレートが不十分な場合は、関連する入力ビデオパラメータが使用されます。

トランスコード情報
ビデオフォーマット:MOV から M3U8。
セグメンテーション:HLS セグメント。各セグメントの期間は 10 秒です。
ビデオ構成:H.265 エンコード形式、24 CRF 値、1920 × 1080 解像度、および 30 FPS。
オーディオ構成:AAC フォーマット、128 Kbit/s ビットレート、44.1 kHz サンプリングレート、およびバイノーラルサウンドチャンネル。
ビデオ出力パス:
oss://test-bucket/video-demo/Shushan Commercial Building.m3u8およびoss://test-bucket/video-demo/Shushan Commercial Building-%d.ts。トランスコード完了通知:「test-mns-topic」という名前の MNS トピックに送信される SMQ メッセージ。
サンプル SDK の詳細については、OpenAPI Explorer の SDK サンプルコードタブ にアクセスしてください。 例のパラメータは、OpenAPI Explorer で自動的に設定されます。 コードをデバッグする前に、必要に応じてパラメータを変更してください。
リクエストパラメータ
{
"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 の解像度の 3 つの HLS ビデオにトランスコードする
このセクションでは、入力ビデオを 1080p、720p、または 480p の解像度の 3 つの出力ビデオに個別にトランスコードし、HLS を使用して入力ビデオをセグメントに分割する方法の例を示します。

トランスコード情報
トランスコード前
フォーマット:MOV。
ビデオエンコード形式:H.264。
解像度:3840 × 2160。
注意: インストールする前に、プラグインの互換性と信頼性を確認してください。
ヒント: カスタム投稿タイプにアクセスするには、/wp-json/wp/v2/<post_type> エンドポイントを使用します。たとえば、movie というカスタム投稿タイプにアクセスするには、/wp-json/wp/v2/movie エンドポイントを使用します。
トランスコーディング完了通知: 「test-mns-topic」という名前の MNS トピックに送信される SMQ メッセージ。
トランスコード後
ビデオ形式: M3U8。
セグメンテーション: HLS セグメント。各セグメントの長さは 10 秒です。
ビデオ構成: H.264 エンコード形式、25 CRF 値、1920 × 1080 解像度、30 FPS。
オーディオ構成: AAC フォーマット、256 Kbit/s ビットレート、44.1 kHz サンプリングレート、バイノーラルサウンドチャンネル。
ビデオ出力パス:
oss://test-bucket/video-demo/Shushan Commercial Building-x1080.m3u8およびoss://test-bucket/video-demo/Shushan Commercial Building-x1080-%d.ts。
ビデオ 1
ビデオフォーマット:M3U8。
セグメンテーション:HLS セグメント。各セグメントの期間は 10 秒です。
ビデオ構成:H.264 エンコード形式、25 CRF 値、1920 × 1080 解像度、および 30 FPS。
オーディオ構成:AAC フォーマット、256 Kbit/s ビットレート、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 エンコード形式、28 CRF 値、854 × 480 解像度、および 25 FPS。
オーディオ構成: AAC フォーマット、96 Kbit/s ビットレート、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 Explorer の SDK サンプルコード タブを参照してください。OpenAPI Explorer では、サンプルのパラメーターが自動的に設定されます。コードをデバッグする前に、必要に応じてパラメーターを変更してください。
リクエストパラメーター
{
"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 エンコード形式、25 CRF 値、および解像度やフレームレートなど、保持される特定の入力動画パラメーター。動画の左上隅に Alibaba Cloud をウォーターマーク ロゴとして追加し、動画の右下隅に IMM をウォーターマーク テキストとして追加します。
オーディオ構成: AAC フォーマット、256 Kbit/s ビットレート、44.1 kHz サンプリングレート、およびバイノーラル サウンドチャンネル。
動画出力パス:
oss://test-bucket/video-demo/Shushan Commercial Building.mp4。トランスコード完了通知: 「test-mns-topic」という名前の MNS トピックに送信される SMQ メッセージ。
サンプル SDK の詳細については、OpenAPI Explorer のSDK サンプルコード タブにアクセスしてください。この例の パラメーター は OpenAPI Explorer で自動的に構成されます。コードをデバッグする前に、必要に応じて パラメーター を変更してください。
リクエストパラメーター
{
"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": "mp4",
"URI": "oss://test-bucket/video-demo/Shushan Commercial Building.{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": "IMM",
"Dx": 0.05,
"Dy": 0.1,
"FontColor": "#FFFFFF",
"FontSize": 100,
"ReferPos": "bottomright",
"Type": "text"
}
]
},
"TranscodeVideo": {
"CRF": 25,
"Codec": "h264",
"PixelFormat": "yuv420p"
}
}
}
]
}ビデオからクリップをキャプチャし、FLV 形式にトランスコードする
このセクションでは、ビデオからクリップをキャプチャし、Flash Video(FLV)形式にトランスコードし、ビットレートを 1 Mbit/s に調整する例を示します。

トランスコード情報
ビデオ形式: MOV から FLV。
クリップ開始時刻: 入力ビデオの 5 秒目。
クリップの長さ: 10 秒。
ビデオ構成: 1 Mbit/s ビットレート、および解像度やフレームレートなど、特定の入力ビデオ パラメーターが保持されます。
オーディオ構成: AAC 形式、96 Kbit/s ビットレート、44.1 kHz サンプリングレート、およびバイノーラル サウンドチャンネル。
ビデオ出力パス:
oss://test-bucket/video-demo/Shushan Commercial Building.flv。トランスコード完了通知: 「test-mns-topic」という名前の MNS トピックに送信される SMQ メッセージ。
サンプル SDK の詳細については、OpenAPI Explorer のSDK サンプルコード タブを参照してください。OpenAPI Explorer では、この例の パラメーター が自動的に構成されます。コードをデバッグする前に、必要に応じて パラメーター を変更してください。
リクエスト パラメーター
{
"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。トランスコーディング完了通知: 「test-mns-topic」という名前の MNS トピックに送信される SMQ メッセージ。
サンプル SDK の詳細については、OpenAPI Explorer のSDK サンプルコード タブにアクセスしてください。 OpenAPI Explorer では、例の パラメーター が自動的に構成されます。 コードをデバッグする前に、必要に応じて パラメーター を変更してください。
リクエストパラメーター
{
"ProjectName": "test-project", // プロジェクト名
"Notification": { // 通知設定
"MNS": { // MNS 通知設定
"TopicName": "test-mns-topic" // MNS トピック名
}
},
"Sources": [ // 入力ソース
{
"URI": "oss://test-bucket/video-demo/Shushan Commercial Building.mov" // 入力ビデオの URI
}
],
"Targets": [ // 出力ターゲット
{
"Container": "mp4", // コンテナフォーマット
"URI": "oss://test-bucket/video-demo/Shushan Commercial Building.{autoext}" // 出力ビデオの URI
}
]
}動画のモザイクウォーターマーク
このセクションでは、動画の左上隅と右下隅に別々にモザイクウォーターマークを挿入する方法の例を示します。

トランスコード情報
動画出力パス:
oss://test-bucket/video-demo/Shushan Commercial Building.mp4.動画構成: H.264 エンコード形式、24 CRF 値、および解像度やフレームレートなど、特定の入力動画パラメーターが保持されます。動画の左上隅にあるウォーターマーク ロゴと右下隅にあるウォーターマーク テキストをモザイク処理します。
音声構成: AAC フォーマット、96 Kbit/s ビットレート、44.1 kHz サンプリングレート、およびバイノーラル サウンドチャンネル。
動画出力パス:
oss://test-bucket/video-demo/Shushan Commercial Building-mosaic.mp4.トランスコード完了通知: 「test-mns-topic」という名前の MNS トピックに送信される SMQ メッセージ。
サンプル SDK の詳細については、OpenAPI Explorer のSDK サンプルコード タブ」をご参照ください。OpenAPI Explorer では、この例の パラメーター が自動的に構成されます。コードをデバッグする前に、必要に応じて パラメーター を変更してください。
リクエストパラメーター
{
"ProjectName": "test-project", // プロジェクト名
"Notification": { // 通知設定
"MNS": { // MNS 通知設定
"TopicName": "test-mns-topic" // MNS トピック名
}
},
"Sources": [ // 入力ソース
{
"URI": "oss://test-bucket/video-demo/Shushan Commercial Building.mp4" // 入力動画の URI
}
],
"Targets": [ // 出力ターゲット
{
"Audio": { // 音声設定
"TranscodeAudio": { // 音声トランスコード設定
"Bitrate": 96000, // ビットレート
"Channel": 2, // チャンネル数
"Codec": "aac", // コーデック
"SampleRate": 44100 // サンプリングレート
}
},
"Container": "mp4", // コンテナフォーマット
"URI": "oss://test-bucket/video-demo/Shushan Commercial Building-mosaic.{autoext}", // 出力動画の URI
"Video": { // 動画設定
"FilterVideo": { // 動画フィルター設定
"Delogos": [ // ロゴ除去設定(モザイク処理に使用)
{
"Dx": 0.05, // 左上隅の X 座標(幅に対する比率)
"Dy": 0.1, // 左上隅の Y 座標(高さに対する比率)
"Height": 0.1, // 高さ(高さに対する比率)
"ReferPos": "topleft", // 基準位置(左上隅)
"Width": 0.1 // 幅(幅に対する比率)
},
{
"Dx": 0.05, // 右下隅の X 座標(幅に対する比率)
"Dy": 0.1, // 右下隅の Y 座標(高さに対する比率)
"Height": 100, // 高さ(ピクセル)
"ReferPos": "bottomright", // 基準位置(右下隅)
"Width": 600 // 幅(ピクセル)
}
],
},
"TranscodeVideo": { // 動画トランスコード設定
"CRF": 24, // CRF 値
"Codec": "h264", // コーデック
"PixelFormat": "yuv420p" // ピクセルフォーマット
}
}
}
]
}