Облако Alibaba — потоковое видео

Я хочу использовать видео по запросу облачного сервиса Alibaba для потокового видео.
видео по запросу создает видео с разным разрешением из загруженных видео для потоковой передачи данных.
Для этого я использую https://github.com/aliyun/aliyun-openapi-php-sdk.
Теперь проблема в том, что я не знаю, как загрузить видео в панель видео по запросу через код Я проверил в https://github.com/aliyun/aliyun-openapi-php-sdk/blob/master/aliyun-php-sdk-vod/vod/Request/V20170321/CreateUploadVideoRequest.php но не нашли поле или параметр, который используется для загрузки видео. Если есть какой-либо другой SDK или код, пожалуйста, дайте мне знать. Даже любой документ кода или фрагмента также приветствуется.

2

Решение

Пример фрагмента кода можно найти здесь (хотя на упрощенном китайском): https://help.aliyun.com/document_detail/61069.html

<?php
include_once './aliyun-php-sdk/aliyun-php-sdk-core/Config.php'; //source php and aliyun-php-sdk in same directory
use vod\Request\V20170321 as vod;
function init_vod_client($accessKeyId, $accessKeySecret) {
$regionId = 'cn-shanghai';
$profile = DefaultProfile::getProfile($regionId, $accessKeyId, $accessKeySecret);
return new DefaultAcsClient($profile);
}
function create_upload_video($client) {
$request = new vod\CreateUploadVideoRequest();
$request->setTitle("VideoTitle");               // Video Title (Mandatory)
$request->setFileName("filename.mov");          // Source document file name with file extension (Mandatory)
$request->setDescription("Video Description");  // Video Description (Optional)
$request->setCoverURL("http://img.alicdn.com/tps/XXXXXXXXXXXXXXXXXXXXXXXXXXX-700-700.png"); // Custom video coverpage (Optional)
$request->setTags("Tag1,Tag2");                 // Video tags, separated by commas (Optional)
$request->setAcceptFormat('JSON');
return $client->getAcsResponse($request);
}
try {
$client = init_vod_client('<AccessKeyId>', '<AccessKeySecret>');
$uploadInfo = create_upload_video($client);
var_dump($uploadInfo);
} catch (Exception $e) {
print $e->getMessage()."\n";
}
?>

Существует также демонстрационная версия использования OSS SDK для загрузки видео, доступная в https://help.aliyun.com/document_detail/61388.html (также на упрощенном китайском)

Надеюсь это поможет.

2

Другие решения

Пожалуйста, найдите фрагмент кода.

<?php
require_once './aliyun-php-sdk/aliyun-php-sdk-core/Config.php';
require_once './aliyun-php-sdk/aliyun-oss-php-sdk-2.2.4/autoload.php';

use vod\Request\V20170321 as vod;
use OSS\OssClient;
use OSS\Core\OssException;


function init_vod_client($accessKeyId, $accessKeySecret) {
$regionId = 'cn-shanghai';
$profile = DefaultProfile::getProfile($regionId, $accessKeyId, $accessKeySecret);
return new DefaultAcsClient($profile);
}


function create_upload_video($vodClient) {
$request = new vod\CreateUploadVideoRequest();

$request->setTitle("Movie");
$request->setFileName("elephant.mov");

$request->setDescription("It is about elephant");
$request->setCoverURL("http://img.alicdn.com/tps/TB1qnJ1PVXXXXXCXXXXXXXXXXXX-700-700.png");
$request->setTags("forest,elephant");

return $vodClient->getAcsResponse($request);
}

function refresh_upload_video($vodClient, $videoId) {
$request = new vod\RefreshUploadVideoRequest();
$request->setVideoId($videoId);
return $vodClient->getAcsResponse($request);
}

function init_oss_client($uploadAuth, $uploadAddress) {
$ossClient = new OssClient($uploadAuth['AccessKeyId'], $uploadAuth['AccessKeySecret'], $uploadAddress['Endpoint'],
false, $uploadAuth['SecurityToken']);
$ossClient->setTimeout(86400*7);
$ossClient->setConnectTimeout(10);
return $ossClient;
}


function upload_local_file($ossClient, $uploadAddress, $localFile) {
return $ossClient->uploadFile($uploadAddress['Bucket'], $uploadAddress['FileName'], $localFile);
}


function multipart_upload_file($ossClient, $uploadAddress, $localFile) {
return $ossClient->multiuploadFile($uploadAddress['Bucket'], $uploadAddress['FileName'], $localFile);
}

$accessKeyId = '<AccessKeyId>';
$accessKeySecret = '<AccessKeySecret>';
$localFile = '/Users/yours/Video/testVideo.flv';

try {

$vodClient = init_vod_client($accessKeyId, $accessKeySecret);
$createRes = create_upload_video($vodClient);

$videoId = $createRes->VideoId;
$uploadAddress = json_decode(base64_decode($createRes->UploadAddress), true);
$uploadAuth = json_decode(base64_decode($createRes->UploadAuth), true);


$ossClient = init_oss_client($uploadAuth, $uploadAddress);


//$result = upload_local_file($ossClient, $uploadAddress, $localFile);
$result = multipart_upload_file($ossClient, $uploadAddress, $localFile);
printf("Succeed, VideoId: %s", $videoId);

} catch (Exception $e) {
// var_dump($e);
printf("Failed, ErrorMessage: %s", $e->getMessage());
}

Для более подробной информации, пожалуйста, посмотрите на официальная документация

2

По вопросам рекламы [email protected]