private function generateTargetFlavors(mediaInfo $cdlMediaInfo = null, $cdlFlavorList) { $mediaSet = new KDLMediaDataSet(); if ($cdlMediaInfo != null) { self::ConvertMediainfoCdl2Mediadataset($cdlMediaInfo, $mediaSet); } KalturaLog::log("...S-->" . $mediaSet->ToString()); $profile = new KDLProfile(); foreach ($cdlFlavorList as $cdlFlavor) { $kdlFlavor = self::ConvertFlavorCdl2Kdl($cdlFlavor); $profile->_flavors[] = $kdlFlavor; KalturaLog::log("...F-->" . $kdlFlavor->ToString()); } $trgList = array(); $dlPrc = new KDLProcessor(); $dlPrc->Generate($mediaSet, $profile, $trgList); $this->_errors = $this->_errors + $dlPrc->get_errors(); $this->_warnings = $this->_warnings + $dlPrc->get_warnings(); if (count($this->_errors) > 0) { $this->_rv = false; } else { $this->_rv = true; } foreach ($trgList as $trg) { KalturaLog::log("...T-->" . $trg->ToString()); $this->_targetList[] = self::ConvertFlavorKdl2Cdl($trg); } return $this; }
private function generateTargetFlavors(mediaInfo $cdlMediaInfo = null, $cdlFlavorList) { $mediaSet = new KDLMediaDataSet(); if ($cdlMediaInfo != null) { self::ConvertMediainfoCdl2Mediadataset($cdlMediaInfo, $mediaSet); } KalturaLog::log("...S-->" . $mediaSet->ToString()); $profile = new KDLProfile(); /* * TEMPORARY - Look for WV cases in order to disable duplicate GOP generation. After a while this will be the default behaviour */ $isForWideVine = false; foreach ($cdlFlavorList as $cdlFlavor) { $kdlFlavor = self::ConvertFlavorCdl2Kdl($cdlFlavor); if ($kdlFlavor->_errors) { $this->_rv = false; return $this; } if (isset($kdlFlavor->_video) && preg_match('/widevine/', strtolower($kdlFlavor->_tags), $matches)) { $isForWideVine = true; } $profile->_flavors[] = $kdlFlavor; KalturaLog::log("...F-->" . $kdlFlavor->ToString()); } if ($isForWideVine == true) { foreach ($profile->_flavors as $k => $kdlFlavor) { $profile->_flavors[$k]->_video->_forWideVine = true; } } $trgList = array(); $dlPrc = new KDLProcessor(); $dlPrc->Generate($mediaSet, $profile, $trgList); $this->_errors = $this->_errors + $dlPrc->get_errors(); $this->_warnings = $this->_warnings + $dlPrc->get_warnings(); if (count($this->_errors) > 0) { $this->_rv = false; } else { $this->_rv = true; } /* * For 'passthrough' quick&dirty if(isset($mediaSet->_container) && $mediaSet->_container->_id=="arf") $isArf = true; else $isArf = false; */ foreach ($trgList as $trg) { KalturaLog::log("...T-->" . $trg->ToString()); $cdlFlvrOut = self::ConvertFlavorKdl2Cdl($trg); /* * 'passthrough' temporal, quick&dirty implementation to support imitation of * 'auto-inter-src' for webex/arf. if($isArf==false && isset($trg->_transcoders) && $trg->_transcoders[0]->_id=="webexNbrplayer.WebexNbrplayer"){ $cdlFlvrOut->_passthrough=true; }*/ $this->_targetList[] = $cdlFlvrOut; } return $this; }
public static function runMediasetTest(KDLMediaDataSet $mediaSet, &$dlPrc, $profile = null) { $inFile = realpath($mediaSet->_container->_fileName); //$mediaSet = 100; //new KDLMediaDataSet(); KalturaLog::log("....S-->" . $mediaSet->ToString()); // unset($targetList); // Remarked by Tan-Tan $targetList doesn't exist $targetList = array(); $errors = array(); $warnings = array(); $dlPrc = new KDLProcessor(); $dlPrc->Generate($mediaSet, $profile, $targetList); $dlPrc->_targets = $targetList; $errors = $errors + $dlPrc->get_errors(); $warnings = $warnings + $dlPrc->get_warnings(); if (count($errors) > 0) { $rv = false; } else { $rv = true; } if ($rv == false) { KalturaLog::log("....E==>"); print_r($errors); KalturaLog::log("\n"); } KalturaLog::log("....W==>"); print_r($warnings); KalturaLog::log("\n"); if ($profile == null) { return; } $xmlStr = KDLProcessor::ProceessFlavorsForCollection($targetList); KalturaLog::log(__METHOD__ . "-->XML-->\n" . print_r($xmlStr, true) . "\n<--"); foreach ($targetList as $target) { $output = array(); $rv = 0; KalturaLog::log("...T-->" . $target->ToString()); $outFile = "aaa1.mp4"; if (file_exists($outFile)) { unlink($outFile); } $cmdLineGenerator = $target->SetTranscoderCmdLineGenerator($inFile, $outFile); $cmdLineGenerator->_clipDur = 10000; $exeStr = "FFMpeg " . $cmdLineGenerator->FFMpeg(null); // KalturaLog::log( ".CMD-->".$exeStr); $exeStr = "cli_encode " . $cmdLineGenerator->Generate(new KDLOperationParams(KDLTranscoders::ON2), 1000); kLog::log(".CMD-->" . $exeStr); $exeStr = "mencoder " . $cmdLineGenerator->Generate(new KDLOperationParams(KDLTranscoders::MENCODER), 1000); kLog::log(".CMD-->" . $exeStr); $exeStr = "ffmpeg " . $cmdLineGenerator->Generate(new KDLOperationParams(KDLTranscoders::FFMPEG), 1000); kLog::log(".CMD-->" . $exeStr); exec($exeStr, $output, $rv); kLog::log("..RV-->In" . $inFile . "==>"); if (!file_exists($outFile) || kFile::fileSize($outFile) == 0) { kLog::log("Failed"); } else { kLog::log("Succeeded, Filesize:" . kFile::fileSize($outFile)); $mediaInfoStr = shell_exec(MediaInfoProgram . " " . realpath($outFile)); $medLoader = new KDLMediaInfoLoader($mediaInfoStr); $product = new KDLFlavor(); $medLoader->Load($product); $target->ValidateProduct($mediaSet, $product); kLog::log("\n" . $mediaInfoStr); // kLog::log( ".PRD-->".$product->ToString()); // unlink($outFile); } } }