Azure 미디어 서비스에서 새로운 기능을 사용하고 php로 시도합니다. 다중 비트 전송률을 사용하여 원격에서 파일을 업로드 할 수 있지만 지원되지 않는 것으로 나타납니다. 그것에 액세스 할 수있는 URL을 생성하지만 MPE_FEATURE_USAGE_FORBIDDEN을 보여줍니다, 나는 Azure 대시 보드에서 공용 액세스를 가능하게했지만 여전히 그 이유를 알지 못합니다. 그런 다음 Adaptive bitrate를 코드에 표시된대로 시도했지만 현재 인코딩하지 않고 오류를 표시합니다. 여러 비트 전송률에서 인코더 오류 일 수도 있습니다.Azure 미디어 서비스 sdk가 Adaptive Bitrate MP4 세트로 인코딩시 오류를 반환합니다.
function encodeToAdaptiveBitrateMP4Set($restProxy, $asset) {
// 2.1 retrieve the latest 'Media Encoder Standard' processor version
$mediaProcessor = $restProxy->getLatestMediaProcessor('Media Encoder Standard');
print "Using Media Processor: {$mediaProcessor->getName()} version {$mediaProcessor->getVersion()}\r\n";
// 2.2 Create the Job; this automatically schedules and runs it
$outputAssetName = "Encoded " . $asset->getName();
$outputAssetCreationOption = Asset::OPTIONS_NONE;
$taskBody = '<?xml version="1.0" encoding="utf-8"?><taskBody><inputAsset>JobInputAsset(0)</inputAsset><outputAsset assetCreationOptions="' . $outputAssetCreationOption . '" assetName="' . $outputAssetName . '">JobOutputAsset(0)</outputAsset></taskBody>';
$task = new Task($taskBody, $mediaProcessor->getId(), TaskOptions::NONE);
$task->setConfiguration('H264 Adaptive Bitrate MP4 Set 1080p');
$job = new Job();
$job->setName('Encoding Job');
$job = $restProxy->createJob($job, array($asset), array($task));
print "Created Job with Id: {$job->getId()}\r\n";
// 2.3 Check to see if the Job has completed
$result = $restProxy->getJobStatus($job);
$jobStatusMap = array('Queued', 'Scheduled', 'Processing', 'Finished', 'Error', 'Canceled', 'Canceling');
while($result != Job::STATE_FINISHED && $result != Job::STATE_ERROR && $result != Job::STATE_CANCELED) {
print "Job status: {$jobStatusMap[$result]}\r\n";
sleep(5);
$result = $restProxy->getJobStatus($job);
}
if ($result != Job::STATE_FINISHED) {
print "The job has finished with a wrong status: {$jobStatusMap[$result]}\r\n";
exit(-1);
}
print "Job Finished!\r\n";
// 2.4 Get output asset
$outputAssets = $restProxy->getJobOutputMediaAssets($job);
$encodedAsset = $outputAssets[0];
print "Asset encoded: name={$encodedAsset->getName()} id={$encodedAsset->getId()}\r\n";
return $encodedAsset;
}
어떤 도움을 이해할 수있을 것이다. 감사합니다.
입니다. https://msdn.microsoft.com/library/azure/mt269960.aspx?f=255&MSPPError=-2147217396에서 사용 된 사전 설정은 목록에없는 것 같습니다. –