不同设备(例如智能手机、平板电脑、智能电视等)和播放器支持的视频格式存在差异。如果您希望将源视频文件转换为能够在目标设备或应用中正常播放的格式,确保视频内容可以在多平台上进行传播和分享,您可以使用视频转码功能。转码过程中可以调整视频的分辨率、帧率等参数,从而缩小视频文件体积,便于视频快速传输,同时节省存储空间。
前提条件
已绑定IMM。具体步骤,请参见绑定IMM。
注意事项
示例代码
以下代码用于使用异步方式进行视频转码。
<?php
if (is_file(__DIR__ . '/../autoload.php')) {
require_once __DIR__ . '/../autoload.php';
}
if (is_file(__DIR__ . '/../vendor/autoload.php')) {
require_once __DIR__ . '/../vendor/autoload.php';
}
use OSS\Credentials\EnvironmentVariableCredentialsProvider;
use OSS\OssClient;
use OSS\Core\OssException;
try {
// 从环境变量中获取访问凭证,并保存在provider中。运行本代码示例之前,请确保已设置环境变量OSS_ACCESS_KEY_ID和OSS_ACCESS_KEY_SECRET。
$provider = new EnvironmentVariableCredentialsProvider();
// 填写Bucket所在地域对应的Endpoint。以华东1(杭州)为例,Endpoint填写为https://oss-cn-hangzhou.aliyuncs.com。
$endpoint = "https://oss-cn-hangzhou.aliyuncs.com";
// 指定Bucket名称。
$bucket = "examplebucket";
$config = array(
"provider" => $provider,
"endpoint" => $endpoint,
"bucket" => $bucket
);
$ossClient = new OssClient($config);
// 指定原视频文件名称。
$source_object = 'src.mp4';
// 指定处理后的视频文件名称。
$target_object = 'dest.avi';
// 对原视频文件进行视频转码。转码输出媒体文件容器为avi,视频流格式为H.265,分辨率为1920x1080,帧率为30 fps,视频码率为2 Mbps;音频编码格式为aac,音频码率为100 Kbps,并禁用字幕流。
$process = 'video/convert,f_avi,vcodec_h265,s_1920x1080,vb_2000000,fps_30,acodec_aac,ab_100000,sn_1' .
'|sys/saveas' .
',o_' . base64url_encode($target_object) .
',b_' . base64url_encode($bucket);
$result = $ossClient->asyncProcessObject($bucket, $source_object, $process);
var_dump($result);
} catch (OssException $e) {
printf($e->getMessage() . "\n");
return;
}
function base64url_encode($data)
{
return rtrim(strtr(base64_encode($data), '+/', '-_'), '=');
}
文档内容是否对您有帮助?