php - Azure media services sdk returns error on encoding to Adaptive Bitrate MP4 Set -
im new on azure media services , trying through php. able upload file on remote using multiple bitrate shows not supported. generate url access shows mpe_feature_usage_forbidden, have enabled public access azure dashboard still dont know why shows that. tried adaptive bitrate shown in code not allowing me encode , shows error. in multiple bitrate, im guessing case of encoder error.
function encodetoadaptivebitratemp4set($restproxy, $asset) { // 2.1 retrieve 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 job; automatically schedules , runs $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 id: {$job->getid()}\r\n"; // 2.3 check see if 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 wrong status: {$jobstatusmap[$result]}\r\n"; exit(-1); } print "job finished!\r\n"; // 2.4 output asset $outputassets = $restproxy->getjoboutputmediaassets($job); $encodedasset = $outputassets[0]; print "asset encoded: name={$encodedasset->getname()} id={$encodedasset->getid()}\r\n"; return $encodedasset;
}
any appreciated. thanks!
you using wrong preset given media processor. job encoding failing like:
"an error has occurred. stage: parsepreset. code: microsoft.cloud.media.encoding.presetexception. microsoft.cloud.media.encoding.presetexception: invalid preset string: h264 adaptive bitrate mp4 set 1080p"
try using encoder "media encoder standard" preset "h264 multiple bitrate 1080p". gary mentioned can find full list of supported preset names @ https://msdn.microsoft.com/library/azure/mt269960.aspx?f=255&mspperror=-2147217396
Comments
Post a Comment