このページでは、Transcoder API リソースでラベルを追加して表示する方法について説明します。ラベルは、リソースの整理に使用できる Key-Value ペアです。 個々のリソースにララベルを設定し、そのラベルに基づいてリソースをフィルタリングできます。ラベルに関する情報は課金システムに転送されるため、ラベルを基準に請求料金を分析することもできます。
ラベルは、Transcoder API のジョブとジョブ テンプレートを作成するときに追加できます。ラベルを含むジョブ テンプレートに基づいてジョブを作成すると、ジョブにはジョブ テンプレートと同じラベルが含まれます。ジョブ テンプレートからのラベルをオーバーライドするには、ジョブ自体にラベルを直接指定できます。
ラベルは REST API または RPC API によって使用できます。ラベルは Google Cloud CLI またはコンソールでは使用できません。 Google Cloud
ラベルの要件
リソースに適用するラベルは、次の要件を満たす必要があります。
- 1 つのリソースには、最大 64 個のラベルを適用できます。
- ラベルは、Key-Value ペアでなければなりません。
- キーは 1 文字以上、63 文字までにする必要があります。空にすることはできません。値は 63 文字以下にします。空にすることもできます。
- キーと値には、小文字、数字、アンダースコア、ダッシュのみを使用できます。すべての文字は UTF-8 でエンコードする必要があります。国際文字も使用できます。
- ラベルのキーは単一のリソース内で一意であることが必要ですが、同じキーを複数のリソースで使用できます。
- キーは、小文字または国際文字で始める必要があります。
ジョブへのラベルの追加
次のサンプルは、新しいジョブを作成するときにラベルを追加する方法を示しています。
たとえば、ラベルを使用して、ジョブがテスト環境で使用されることを示すことができます。ラベルのキーは environment で、値は test です。
ジョブを作成するには、projects.locations.jobs.create メソッドを使用します。
リクエストのデータを使用する前に、次のように置き換えます。
PROJECT_ID: IAM 設定に記載されている Google Cloud プロジェクト ID。LOCATION: ジョブを実行するロケーション。サポートされているリージョンのいずれかを使用します。ロケーションを表示us-central1us-west1us-west2us-east1us-east4southamerica-east1northamerica-northeast1asia-east1asia-northeast1asia-northeast3asia-south1asia-southeast1australia-southeast1europe-west1europe-west2europe-west4me-west1me-central1me-central2
STORAGE_BUCKET_NAME: 作成した Cloud Storage バケットの名前。STORAGE_INPUT_VIDEO: コード変換する Cloud Storage バケット内の動画の名前(my-vid.mp4など)。このフィールドでは、バケットで作成したフォルダ(input/my-vid.mp4など)を考慮する必要があります。STORAGE_OUTPUT_FOLDER: エンコードされた動画出力を保存する Cloud Storage フォルダ名。
リクエストを送信するには、次のいずれかのオプションを展開します。
次のような JSON レスポンスが返されます。
{
"name": "projects/PROJECT_NUMBER/locations/LOCATION/jobs/JOB_ID",
"config": {
"inputs": [
{
"key": "input0",
"uri": "gs://STORAGE_BUCKET_NAME/STORAGE_INPUT_VIDEO"
}
],
"editList": [
{
"key": "atom0",
"inputs": [
"input0"
],
"startTimeOffset": "0s"
}
],
"elementaryStreams": [
{
"videoStream": {
"h264": {
"widthPixels": 640,
"heightPixels": 360,
"frameRate": 30,
"bitrateBps": 550000,
"pixelFormat": "yuv420p",
"rateControlMode": "vbr",
"crfLevel": 21,
"gopDuration": "3s",
"vbvSizeBits": 550000,
"vbvFullnessBits": 495000,
"entropyCoder": "cabac",
"bFrameCount": 3,
"aqStrength": 1,
"profile": "high",
"preset": "veryfast"
}
},
"key": "video-stream0"
},
{
"videoStream": {
"h264": {
"widthPixels": 1280,
"heightPixels": 720,
"frameRate": 30,
"bitrateBps": 2500000,
"pixelFormat": "yuv420p",
"rateControlMode": "vbr",
"crfLevel": 21,
"gopDuration": "3s",
"vbvSizeBits": 2500000,
"vbvFullnessBits": 2250000,
"entropyCoder": "cabac",
"bFrameCount": 3,
"aqStrength": 1,
"profile": "high",
"preset": "veryfast"
}
},
"key": "video-stream1"
},
{
"audioStream": {
"codec": "aac",
"bitrateBps": 64000,
"channelCount": 2,
"channelLayout": [
"fl",
"fr"
],
"sampleRateHertz": 48000
},
"key": "audio-stream0"
}
],
"muxStreams": [
{
"key": "sd",
"fileName": "sd.mp4",
"container": "mp4",
"elementaryStreams": [
"video-stream0",
"audio-stream0"
]
},
{
"key": "hd",
"fileName": "hd.mp4",
"container": "mp4",
"elementaryStreams": [
"video-stream1",
"audio-stream0"
]
},
{
"key": "media-sd",
"fileName": "media-sd.ts",
"container": "ts",
"elementaryStreams": [
"video-stream0",
"audio-stream0"
]
},
{
"key": "media-hd",
"fileName": "media-hd.ts",
"container": "ts",
"elementaryStreams": [
"video-stream1",
"audio-stream0"
]
},
{
"key": "video-only-sd",
"fileName": "video-only-sd.m4s",
"container": "fmp4",
"elementaryStreams": [
"video-stream0"
]
},
{
"key": "video-only-hd",
"fileName": "video-only-hd.m4s",
"container": "fmp4",
"elementaryStreams": [
"video-stream1"
]
},
{
"key": "audio-only",
"fileName": "audio-only.m4s",
"container": "fmp4",
"elementaryStreams": [
"audio-stream0"
]
}
],
"manifests": [
{
"fileName": "manifest.m3u8",
"type": "HLS",
"muxStreams": [
"media-sd",
"media-hd"
]
},
{
"fileName": "manifest.mpd",
"type": "DASH",
"muxStreams": [
"video-only-sd",
"video-only-hd",
"audio-only"
]
}
],
"output": {
"uri": "gs://STORAGE_BUCKET_NAME/STORAGE_OUTPUT_FOLDER/"
}
},
"state": "PENDING",
"createTime": CREATE_TIME,
"ttlAfterCompletionDays": 30,
"labels": {
"environment": "test"
}
}
複数のラベルを追加する場合は、各ラベルをカンマで区切ります。
ラベルによる一覧表示とフィルタリング
リソースを一覧表示し、ラベルでフィルタできます。たとえば、ジョブにラベルを追加すると、特定のロケーションのジョブを一覧表示し、追加したラベルでフィルタリングできます。次のサンプルでは、ジョブを一覧表示し、ラベル "environment": "test" を含まないジョブを除外します。
ジョブを一覧表示するには、projects.locations.jobs.list メソッドを使用します。次のフィルタが URL に追加されます。
?filter=labels.environment:test。
リクエストのデータを使用する前に、次のように置き換えます。
PROJECT_ID: 実際の Google Cloud プロジェクト ID。LOCATION: ジョブのロケーション。サポートされているリージョンのいずれかを使用します。
us-central1us-west1us-west2us-east1us-east4southamerica-east1northamerica-northeast1asia-east1asia-northeast1asia-northeast3asia-south1asia-southeast1australia-southeast1europe-west1europe-west2europe-west4me-west1me-central1me-central2
リクエストを送信するには、次のいずれかのオプションを開きます。
次のような JSON レスポンスが返されます。
{
"jobs": [
{
"name": "projects/PROJECT_NUMBER/locations/LOCATION/jobs/MY_JOB",
"config": {
....
},
"state": "PENDING",
"createTime": CREATE_TIME,
"ttlAfterCompletionDays": 30,
"labels": {
"environment": "test"
}
},
{
"name": "projects/PROJECT_NUMBER/locations/LOCATION/jobs/MY_OTHER_JOB",
"config": {
....
},
"state": "SUCCEEDED",
"createTime": CREATE_TIME,
"startTime": START_TIME,
"endTime": END_TIME,
"ttlAfterCompletionDays": 30,
"labels": {
"environment": "test"
}
}
]
}