Gunakan fitur snapshot video untuk menangkap snapshot berukuran tertentu pada titik waktu tertentu dalam video. Snapshot ini dapat digunakan dalam skenario seperti thumbnail video, Sprite, dan thumbnail bilah kemajuan. Anda dapat menentukan waktu pengambilan snapshot, interval antara snapshot, jumlah snapshot yang dihasilkan, jenis snapshot, serta apakah akan menggabungkan beberapa snapshot menjadi satu Sprite gambar. Pekerjaan snapshot dapat dikirimkan melalui konsol ApsaraVideo Media Processing (MPS) atau dengan menggunakan API atau SDK. Topik ini menyediakan contoh kode untuk menggunakan MPS SDK untuk PHP dalam mengirimkan dan menanyakan pekerjaan snapshot.
Prasyarat
Pastikan MPS SDK untuk PHP telah diinstal dan dikonfigurasi. Untuk informasi lebih lanjut, lihat MPS SDK untuk PHP. Untuk detail tentang SDK dan contoh penggunaannya dalam memanggil Operasi API, kunjungi OpenAPI Explorer.
Kirim pekerjaan snapshot
Gunakan operasi SubmitSnapshotJob untuk mengirimkan pekerjaan snapshot. Informasi lebih lanjut tentang parameter permintaan dan tanggapan dapat ditemukan di SubmitSnapshotJob. Berikut adalah contoh kode:
<?php
namespace AlibabaCloud\SDK\Sample;
use AlibabaCloud\SDK\Mts\V20140618\Mts;
use AlibabaCloud\Darabonba\Env\Env;
use AlibabaCloud\Tea\Tea;
use AlibabaCloud\Tea\Utils\Utils;
use AlibabaCloud\Tea\Console\Console;
use Darabonba\OpenApi\Models\Config;
use AlibabaCloud\SDK\Mts\V20140618\Models\SubmitSnapshotJobRequest;
class Sample {
private $pipelineId = "<PipelineId>";
private $templateId = "S00000001-100020"; # ID template transkoding. Pilih template sesuai kebutuhan bisnis Anda.
private $ossLocation = "<OssLocation>";
private $bucket = "<nama bucket>";
private $oss_input_object = "input.mp4";
private $oss_output_object = "output_{Count}.jpg";
/**
* @param string $accessKeyId
* @param string $accessKeySecret
* @param string $regionId
* @return Mts
* Kami merekomendasikan Anda mengatur parameter protokol ke HTTPS dalam lingkungan produksi.
*/
public static function createClient($accessKeyId, $accessKeySecret, $regionId){
$config = new Config([]);
$config->accessKeyId = $accessKeyId;
$config->accessKeySecret = $accessKeySecret;
$config->regionId = $regionId;
$config->protocol = "HTTP";
return new Mts($config);
}
/**
* @return void
*/
public static function main(){
$sample = new Sample;
$client = self::createClient(Env::getEnv("ALIBABA_CLOUD_ACCESS_KEY_ID"), Env::getEnv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"), 'cn-shanghai');
$request = new SubmitSnapshotJobRequest([
"input" => json_encode(array(
'Location' => $sample->ossLocation,
'Bucket' => $sample->bucket,
'Object' => urlencode($sample->oss_input_object))
),
"snapshotConfig" => $sample->snapshotConfig(),
"pipelineId" => $sample->pipelineId,
]);
$response = $client->submitSnapshotJob($request);
Console::log(Utils::toJSONString(Tea::merge($response->body)));
}
function snapshotConfig() {
$outputfile = array(
'Location' => $this->ossLocation,
'Bucket' => $this->bucket,
'Object' => urlencode($this->oss_output_object));
$snapshotConfig['OutputFile'] = $outputfile;
$snapshotConfig['Time'] = 2;
$snapshotConfig['Num'] = 10;
$snapshotConfig['Interval'] = 20;
return json_encode($snapshotConfig);
}
}
$path = __DIR__ . \DIRECTORY_SEPARATOR . '..' . \DIRECTORY_SEPARATOR . 'vendor' . \DIRECTORY_SEPARATOR . 'autoload.php';
if (file_exists($path)) {
require_once $path;
}
Sample::main();
Menanyakan satu atau lebih pekerjaan snapshot
Gunakan operasi QuerySnapshotJobList untuk menanyakan satu atau lebih pekerjaan snapshot. Informasi lebih lanjut tentang parameter permintaan dan tanggapan dapat ditemukan di QuerySnapshotJobList. Berikut adalah contoh kode:
<?php
namespace AlibabaCloud\SDK\Sample;
use AlibabaCloud\SDK\Mts\V20140618\Mts;
use AlibabaCloud\Darabonba\Env\Env;
use AlibabaCloud\Tea\Tea;
use AlibabaCloud\Tea\Utils\Utils;
use AlibabaCloud\Tea\Console\Console;
use Darabonba\OpenApi\Models\Config;
use AlibabaCloud\SDK\Mts\V20140618\Models\QuerySnapshotJobListRequest;
class Sample {
/**
* @param string $accessKeyId
* @param string $accessKeySecret
* @param string $regionId
* @return Mts
* Kami merekomendasikan Anda mengatur parameter protokol ke HTTPS dalam lingkungan produksi.
*/
public static function createClient($accessKeyId, $accessKeySecret, $regionId){
$config = new Config([]);
$config->accessKeyId = $accessKeyId;
$config->accessKeySecret = $accessKeySecret;
$config->regionId = $regionId;
$config->protocol = "HTTP";
return new Mts($config);
}
/**
* @return void
*/
public static function main(){
$sample = new Sample;
$client = self::createClient(Env::getEnv("ALIBABA_CLOUD_ACCESS_KEY_ID"), Env::getEnv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"), 'cn-shanghai');
$request = new QuerySnapshotJobListRequest([
"snapshotJobIds" => "72dfa5e67974c736******"
]);
$response = $client->querySnapshotJobList($request);
Console::log(Utils::toJSONString(Tea::merge($response->body)));
}
}
$path = __DIR__ . \DIRECTORY_SEPARATOR . '..' . \DIRECTORY_SEPARATOR . 'vendor' . \DIRECTORY_SEPARATOR . 'autoload.php';
if (file_exists($path)) {
require_once $path;
}
Sample::main();