You need to enable JavaScript to run this app.
导航

视频截帧(PHP SDK)

最近更新时间2024.04.02 15:04:19

首次发布时间2023.10.31 11:35:40

视频截帧功能可以从视频流中截取指定时刻的单帧画面,并按指定大小缩放成图片。本文介绍如何通过 TOS PHP SDK 进行视频截帧。

示例代码

以下代码展示如何截取第 30000ms 的视频帧,并将截取后的图片下载到本地。

<?php

// 假设使用源码安装且需要集成 SDK 的脚本与 TOS PHP SDK 的源码在同一个父目录下。
require_once __DIR__  .  '/autoload.php';

use Tos\TosClient;
use Tos\Exception\TosClientException;
use Tos\Exception\TosServerException;
use Tos\Model\HeadObjectInput;
use Tos\Model\GetObjectInput;

$output = null;
try {
    $client = new TosClient([
        'region' => 'your region',
        'endpoint' => 'your endpoint',
        // 从环境变量中获取访问密钥
        'ak' => getenv('TOS_ACCESS_KEY'),
        'sk' => getenv('TOS_SECRET_KEY'),
    ]);
    
    $input = new GetObjectInput('bucket-test',  'key-test');
    
    // 执行视频截祯操作。
    $input->setProcess('video/snapshot,t_30000');
    
    // 执行视频截祯操作后,将获取到的图片保存至指定的存储桶。执行图片保存操作的账号必须拥有图片转存的目标桶的写权限。
    // $input->setSaveBucket(base64_encode('bucket-test2'));
    // $input->setSaveObject(base64_encode('key-test2'));
    
    // 执行获取视频元信息操作。
    // $input->setProcess('video/info');
    
    $output = $client->getObject($input);
    echo $output->getRequestId() . PHP_EOL;
   
    // 获取图片处理后的数据。
    echo $output->getContent()->getContents() . PHP_EOL;
    $output->getContent()->close();
    
    
} catch (TosClientException $ex) {
    echo $ex->getMessage() . PHP_EOL;
} catch (TosServerException $ex) {
    echo $ex->getRequestId() . PHP_EOL;
    echo $ex->getStatusCode() . PHP_EOL;
    echo $ex->getErrorCode() . PHP_EOL;
} finally {
    if($output){
        $output->getContent()->close();
    }
}

相关文档

关于视频截帧的详细介绍,请参见视频截帧