Jika Anda ingin memproduksi video dengan beberapa laju bit, trek audio, subtitle, dan format, atau ingin menjalankan beberapa pekerjaan berdasarkan urutan atau kondisi tertentu, Anda dapat membuat alur kerja. Dalam alur kerja, Anda dapat mengonfigurasi node untuk menjalankan tugas seperti transkoding, analisis, snapshot, pengemasan atau enkapsulasi, tinjauan, ekstraksi sidik jari media, serta konfigurasi gambar mini cerdas. Topik ini memberikan contoh cara menggunakan ApsaraVideo Media Processing (MPS) SDK untuk PHP V2.0 dalam membuat alur kerja media.
Contoh kode
<?php
namespace AlibabaCloud\SDK\Sample;
use AlibabaCloud\SDK\Mts\V20140618\Mts;
use \Exception;
use AlibabaCloud\Tea\Exception\TeaError;
use AlibabaCloud\Tea\Utils\Utils;
use Darabonba\OpenApi\Models\Config;
use AlibabaCloud\SDK\Mts\V20140618\Models\AddMediaWorkflowRequest;
use AlibabaCloud\Tea\Utils\Utils\RuntimeOptions;
class Sample {
/**
* Gunakan ID AccessKey dan Rahasia AccessKey Anda untuk menginisialisasi klien.
* @return Mts Client
*/
public static function createClient(){
$config = new Config([
// Diperlukan. Pastikan variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_ID dikonfigurasi.
"accessKeyId" => getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"),
// Diperlukan. Pastikan variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_SECRET dikonfigurasi.
"accessKeySecret" => getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET")
]);
$config->endpoint = "mts.cn-hangzhou.aliyuncs.com";
return new Mts($config);
}
/**
* @param string[] $args
* @return void
*/
public static function main($args){
$client = self::createClient();
$addMediaWorkflowRequest = new AddMediaWorkflowRequest([
// Nama alur kerja media.
"name" => "mediaworkflow-example",
// Topologi alur kerja media.
"topology" => "{\"Activities\": {\"mediaworkflow-example\": {\"Parameters\": {\"Outputs\": \"[{\"OutputObject\":\"examplebucket/output/{RunId}/TRANSCODE_165941222****/{FileName}\",\"TemplateId\":\"S00000001-200010\",\"TemplateName\":\"MP4-Low definition\"}]\",\"OutputBucket\": \"examplebucket\",\"OutputLocation\": \"oss-cn-shanghai\"},\"Type\": \"Transcode\"},\"Act-Start\": {\"Parameters\": {\"PipelineId\": \"a7d481f07d8c45da88c71853ce7d****\",\"InputFile\": \"{\"Bucket\":\"example-input\",\"Location\":\"oss-cn-shanghai\",\"ObjectPrefix\":\"mps-test/input/\"}\"},\"Type\": \"Start\"},\"Act-Report\": {\"Parameters\": {\"PublishType\": \"Manual\"},\"Type\": \"Report\"}},\"Dependencies\": {\"mediaworkflow-example\": [\"Act-Report\"],\"Act-Start\": [\"mediaworkflow-example\"],\"Act-Report\": []}}",
// Mode pemicu.
"triggerMode" => "OssAutoTrigger"
]);
$runtime = new RuntimeOptions([]);
try {
// Tulis kode Anda sendiri untuk menampilkan respons dari Operasi API jika diperlukan.
$client->addMediaWorkflowWithOptions($addMediaWorkflowRequest, $runtime);
}
catch (Exception $error) {
if (!($error instanceof TeaError)) {
$error = new TeaError([], $error->getMessage(), $error->getCode(), $error);
}
// Tangani pengecualian dengan hati-hati dalam skenario bisnis nyata dan jangan pernah abaikan pengecualian dalam proyek Anda. Dalam contoh ini, pesan kesalahan ditampilkan hanya untuk referensi.
// Pesan kesalahan.
var_dump($error->message);
// URL halaman diagnostik kesalahan terkait.
var_dump($error->data["Recommend"]);
Utils::assertAsString($error->message);
}
}
}
$path = __DIR__ . \DIRECTORY_SEPARATOR . '..' . \DIRECTORY_SEPARATOR . 'vendor' . \DIRECTORY_SEPARATOR . 'autoload.php';
if (file_exists($path)) {
require_once $path;
}
Sample::main(array_slice($argv, 1));