コード例 #1
0
 public static function simulateFlavor($fmt, $vcodec, $w = 0, $h, $br, $acodec = "", $ab = 96, $ar = 22050, $clipStart = 0, $clipDur = 0, $engines = "2,3,99,(6#2#7)")
 {
     $fl = new KDLFlavor();
     $fl->_audio = new KDLAudioData();
     $fl->_video = new KDLVideoData();
     $fl->_container = new KDLContainerData();
     $fl->_clipDur = $clipDur;
     $fl->_clipStart = $clipStart;
     //		$fl = $source;
     $fl->_container->_id = $fmt;
     $fl->_video->_id = $vcodec;
     $fl->_video->_bitRate = $br;
     $fl->_video->_width = $w;
     $fl->_video->_height = $h;
     $fl->_video->_gop = 0;
     //		$fl->_video->_frameRate = 0;
     //		$fl->_flags = KDLFlavor::ForceCommandLineFlagBit;
     $fl->_audio->_id = $acodec;
     //		$fl->_audio->_channels = 2;
     $fl->_audio->_sampleRate = $ar;
     $fl->_audio->_bitRate = $ab;
     //		$fl->_audio->_resolution=16;
     ///		$fl->_transcoders[] = new KDLOperationParams("cli_encode");
     $fl->_transcoders = KDLUtils::parseTranscoderList($engines, "", KDLWrap::$TranscodersCdl2Kdl);
     /*
     		$fl->_transcoders[] = new KDLOperationParams("encoding.com");
     		$fl->_transcoders[] = new KDLOperationParams("ffmpeg");
     		$fl->_transcoders[] = new KDLOperationParams("ffmpeg-aux");
     		$fl->_transcoders[] = new KDLOperationParams("mencoder");
     		//$fl->_transcoders["encoding.com"] = true; 
     		//$fl->_transcoders["cli_encode"] = true; 
     */
     KDLUtils::RecursiveScan($fl->_transcoders, "transcoderSetFuncTest", null, null);
     //KalturaLog::log(__METHOD__."==>\n".print_r($fl->_transcoders,true));
     return $fl;
 }
コード例 #2
0
 public static function ConvertFlavorCdl2Kdl($cdlFlavor)
 {
     $kdlFlavor = new KDLFlavor();
     $kdlFlavor->_name = $cdlFlavor->getName();
     $kdlFlavor->_id = $cdlFlavor->getId();
     $kdlFlavor->_type = $cdlFlavor->getType();
     $kdlFlavor->_tags = $cdlFlavor->getTags();
     if ($cdlFlavor instanceof flavorParams || $cdlFlavor instanceof flavorParamsOutput) {
         $kdlFlavor->_clipStart = $cdlFlavor->getClipOffset();
         $kdlFlavor->_clipDur = $cdlFlavor->getClipDuration();
     }
     $kdlFlavor->_cdlObject = $cdlFlavor;
     $kdlFlavor->_container = new KDLContainerData();
     $kdlFlavor->_container->_id = $cdlFlavor->getFormat();
     //		$kdlFlavor->_container->_duration=$api->getContainerDuration();
     //		$kdlFlavor->_container->_bitRate=$api->getContainerBitRate();
     //		$kdlFlavor->_container->_fileSize=$api->getFileSize();
     if ($kdlFlavor->_container->IsDataSet() == false) {
         $kdlFlavor->_container = null;
     }
     $kdlFlavor->_video = new KDLVideoData();
     $kdlFlavor->_video->_id = $cdlFlavor->getVideoCodec();
     //		$kdlFlavor->_video->_format = $api->getVideoFormat();
     //		$kdlFlavor->_video->_duration = $api->getVideoDuration();
     $kdlFlavor->_video->_bitRate = $cdlFlavor->getVideoBitRate();
     $kdlFlavor->_video->_width = $cdlFlavor->getWidth();
     $kdlFlavor->_video->_height = $cdlFlavor->getHeight();
     $kdlFlavor->_video->_frameRate = $cdlFlavor->getFrameRate();
     $kdlFlavor->_video->_gop = $cdlFlavor->getGopSize();
     $kdlFlavor->_isTwoPass = $cdlFlavor->getTwoPass();
     $kdlFlavor->_video->_arProcessingMode = $cdlFlavor->getAspectRatioProcessingMode();
     $kdlFlavor->_video->_forceMult16 = $cdlFlavor->getForceFrameToMultiplication16();
     if ($cdlFlavor instanceof flavorParams) {
         $kdlFlavor->_video->_cbr = $cdlFlavor->getVideoConstantBitrate();
         $kdlFlavor->_video->_bt = $cdlFlavor->getVideoBitrateTolerance();
         $kdlFlavor->_video->_isGopInSec = $cdlFlavor->getIsGopInSec();
         $kdlFlavor->_video->_isShrinkFramesizeToSource = !$cdlFlavor->getIsAvoidVideoShrinkFramesizeToSource();
         $kdlFlavor->_video->_isShrinkBitrateToSource = !$cdlFlavor->getIsAvoidVideoShrinkBitrateToSource();
         $kdlFlavor->_video->_isFrameRateForLowBrAppleHls = $cdlFlavor->getIsVideoFrameRateForLowBrAppleHls();
     }
     //		$flavor->_video->_dar = $api->getVideoDar();
     if ($kdlFlavor->_video->IsDataSet() == false) {
         $kdlFlavor->_video = null;
     }
     $kdlFlavor->_audio = new KDLAudioData();
     $kdlFlavor->_audio->_id = $cdlFlavor->getAudioCodec();
     //		$flavor->_audio->_format = $cdlFlavor->getAudioFormat();
     //		$flavor->_audio->_duration = $cdlFlavor->getAudioDuration();
     $kdlFlavor->_audio->_bitRate = $cdlFlavor->getAudioBitRate();
     $kdlFlavor->_audio->_channels = $cdlFlavor->getAudioChannels();
     $kdlFlavor->_audio->_sampleRate = $cdlFlavor->getAudioSampleRate();
     $kdlFlavor->_audio->_resolution = $cdlFlavor->getAudioResolution();
     if ($kdlFlavor->_audio->IsDataSet() == false) {
         $kdlFlavor->_audio = null;
     }
     $operators = $cdlFlavor->getOperators();
     $transObjArr = array();
     //KalturaLog::log(__METHOD__."\nCDL Flavor==>\n".print_r($cdlFlavor,true));
     if (!empty($operators) || $cdlFlavor->getEngineVersion() == 1) {
         $transObjArr = KDLWrap::convertOperatorsCdl2Kdl($operators);
         $kdlFlavor->_engineVersion = 1;
     } else {
         $kdlFlavor->_engineVersion = 0;
         $trnsStr = $cdlFlavor->getConversionEngines();
         $extraStr = $cdlFlavor->getConversionEnginesExtraParams();
         $transObjArr = KDLUtils::parseTranscoderList($trnsStr, $extraStr);
         if ($cdlFlavor instanceof flavorParamsOutputWrap || $cdlFlavor instanceof flavorParamsOutput) {
             $cmdLines = $cdlFlavor->getCommandLines();
             foreach ($transObjArr as $transObj) {
                 $transObj->_cmd = $cmdLines[$transObj->_id];
             }
         }
         KalturaLog::log("\ntranscoders==>\n" . print_r($transObjArr, true));
     }
     KDLUtils::RecursiveScan($transObjArr, "transcoderSetFuncWrap", self::$TranscodersCdl2Kdl, "");
     $kdlFlavor->_transcoders = $transObjArr;
     if ($cdlFlavor instanceof flavorParamsOutputWrap) {
         if ($cdlFlavor->_isRedundant) {
             $kdlFlavor->_flags = $kdlFlavor->_flags | KDLFlavor::RedundantFlagBit;
         }
         if ($cdlFlavor->_isNonComply) {
             $kdlFlavor->_flags = $kdlFlavor->_flags | KDLFlavor::BitrateNonComplyFlagBit;
         }
         $kdlFlavor->_errors = $kdlFlavor->_errors + $cdlFlavor->_errors;
         $kdlFlavor->_warnings = $kdlFlavor->_warnings + $cdlFlavor->_warnings;
     }
     if ($cdlFlavor instanceof SwfFlavorParams || $cdlFlavor instanceof SwfFlavorParamsOutput) {
         $kdlFlavor->_swf = new KDLSWFData();
         $kdlFlavor->_swf->_flashVersion = $cdlFlavor->getFlashVersion();
         $kdlFlavor->_swf->_zoom = $cdlFlavor->getZoom();
         $kdlFlavor->_swf->_zlib = $cdlFlavor->getZlib();
         $kdlFlavor->_swf->_jpegQuality = $cdlFlavor->getJpegQuality();
         $kdlFlavor->_swf->_sameWindow = $cdlFlavor->getSameWindow();
         $kdlFlavor->_swf->_insertStop = $cdlFlavor->getInsertStop();
         $kdlFlavor->_swf->_useShapes = $cdlFlavor->getUseShapes();
         $kdlFlavor->_swf->_storeFonts = $cdlFlavor->getStoreFonts();
         $kdlFlavor->_swf->_flatten = $cdlFlavor->getFlatten();
     }
     if ($cdlFlavor instanceof PdfFlavorParams || $cdlFlavor instanceof PdfFlavorParamsOutput) {
         $kdlFlavor->_pdf = new KDLPDFData();
         $kdlFlavor->_pdf->_resolution = $cdlFlavor->getResolution();
         $kdlFlavor->_pdf->_paperHeight = $cdlFlavor->getPaperHeight();
         $kdlFlavor->_pdf->_paperWidth = $cdlFlavor->getPaperWidth();
         $kdlFlavor->_pdf->_readonly = $cdlFlavor->getReadonly();
     }
     if ($cdlFlavor instanceof ImageFlavorParams || $cdlFlavor instanceof ImageFlavorParamsOutput) {
         $kdlFlavor->_image = new KDLImageData();
         $kdlFlavor->_image->_densityWidth = $cdlFlavor->getDensityWidth();
         $kdlFlavor->_image->_densityHeight = $cdlFlavor->getDensityHeight();
         $kdlFlavor->_image->_sizeWidth = $cdlFlavor->getSizeWidth();
         $kdlFlavor->_image->_sizeHeight = $cdlFlavor->getSizeHeight();
         $kdlFlavor->_image->_depth = $cdlFlavor->getDepth();
         $kdlFlavor->_image->_format = $cdlFlavor->getFormat();
     }
     //KalturaLog::log(__METHOD__."\nKDL Flavor==>\n".print_r($kdlFlavor,true));
     return $kdlFlavor;
 }
コード例 #3
0
ファイル: KDLWrap.php プロジェクト: kubrickfr/server
 public static function ConvertFlavorCdl2Kdl($cdlFlavor)
 {
     $kdlFlavor = new KDLFlavor();
     $kdlFlavor->_name = $cdlFlavor->getName();
     $kdlFlavor->_id = $cdlFlavor->getId();
     $kdlFlavor->_type = $cdlFlavor->getType();
     $kdlFlavor->_tags = $cdlFlavor->getTags();
     if ($cdlFlavor instanceof flavorParams) {
         $kdlFlavor->_clipStart = $cdlFlavor->getClipOffset();
         $kdlFlavor->_clipDur = $cdlFlavor->getClipDuration();
         /**/
         $multiStream = $cdlFlavor->getMultiStream();
         if (isset($multiStream)) {
             //Sample json string: {"detect":"auto","audio":{"mapping":[1,2]}}
             $fromJson = json_decode($multiStream);
             $kdlFlavor->_multiStream = isset($fromJson) ? $fromJson : null;
         }
         $kdlFlavor->_optimizationPolicy = $cdlFlavor->getOptimizationPolicy();
     } else {
         if ($cdlFlavor instanceof flavorParamsOutput) {
             $kdlFlavor->_clipStart = $cdlFlavor->getClipOffset();
             $kdlFlavor->_clipDur = $cdlFlavor->getClipDuration();
         }
     }
     $kdlFlavor->_cdlObject = $cdlFlavor;
     $kdlFlavor->_container = new KDLContainerData();
     $kdlFlavor->_container->_id = $cdlFlavor->getFormat();
     //		$kdlFlavor->_container->_duration=$api->getContainerDuration();
     //		$kdlFlavor->_container->_bitRate=$api->getContainerBitRate();
     //		$kdlFlavor->_container->_fileSize=$api->getFileSize();
     if ($kdlFlavor->_container->IsDataSet() == false) {
         $kdlFlavor->_container = null;
     }
     $kdlFlavor->_video = new KDLVideoData();
     $kdlFlavor->_video->_id = $cdlFlavor->getVideoCodec();
     //		$kdlFlavor->_video->_format = $api->getVideoFormat();
     //		$kdlFlavor->_video->_duration = $api->getVideoDuration();
     $kdlFlavor->_video->_bitRate = $cdlFlavor->getVideoBitRate();
     $kdlFlavor->_video->_width = $cdlFlavor->getWidth();
     $kdlFlavor->_video->_height = $cdlFlavor->getHeight();
     $kdlFlavor->_video->_frameRate = $cdlFlavor->getFrameRate();
     $kdlFlavor->_video->_gop = $cdlFlavor->getGopSize();
     $kdlFlavor->_isTwoPass = $cdlFlavor->getTwoPass();
     $kdlFlavor->_video->_arProcessingMode = $cdlFlavor->getAspectRatioProcessingMode();
     $kdlFlavor->_video->_forceMult16 = $cdlFlavor->getForceFrameToMultiplication16();
     if ($cdlFlavor instanceof flavorParams) {
         $kdlFlavor->_video->_cbr = $cdlFlavor->getVideoConstantBitrate();
         $kdlFlavor->_video->_bt = $cdlFlavor->getVideoBitrateTolerance();
         $kdlFlavor->_video->_isGopInSec = $cdlFlavor->getIsGopInSec();
         $kdlFlavor->_video->_isShrinkFramesizeToSource = !$cdlFlavor->getIsAvoidVideoShrinkFramesizeToSource();
         $kdlFlavor->_video->_isShrinkBitrateToSource = !$cdlFlavor->getIsAvoidVideoShrinkBitrateToSource();
         $kdlFlavor->_video->_isFrameRateForLowBrAppleHls = $cdlFlavor->getIsVideoFrameRateForLowBrAppleHls();
         $kdlFlavor->_video->_anamorphic = $cdlFlavor->getAnamorphicPixels();
         $kdlFlavor->_video->_maxFrameRate = $cdlFlavor->getMaxFrameRate();
         $kdlFlavor->_video->_isForcedKeyFrames = !$cdlFlavor->getIsAvoidForcedKeyFrames();
         $kdlFlavor->_video->_isCropIMX = $cdlFlavor->getIsCropIMX();
         $watermarkData = $cdlFlavor->getWatermarkData();
         if (isset($watermarkData)) {
             $fromJson = json_decode($watermarkData);
             $kdlFlavor->_video->_watermarkData = isset($fromJson) ? $fromJson : null;
         }
     }
     //		$flavor->_video->_dar = $api->getVideoDar();
     if ($kdlFlavor->_video->IsDataSet() == false) {
         $kdlFlavor->_video = null;
     }
     $kdlFlavor->_audio = new KDLAudioData();
     $kdlFlavor->_audio->_id = $cdlFlavor->getAudioCodec();
     //		$flavor->_audio->_format = $cdlFlavor->getAudioFormat();
     //		$flavor->_audio->_duration = $cdlFlavor->getAudioDuration();
     $kdlFlavor->_audio->_bitRate = $cdlFlavor->getAudioBitRate();
     $kdlFlavor->_audio->_channels = $cdlFlavor->getAudioChannels();
     $kdlFlavor->_audio->_sampleRate = $cdlFlavor->getAudioSampleRate();
     $kdlFlavor->_audio->_resolution = $cdlFlavor->getAudioResolution();
     if ($kdlFlavor->_audio->IsDataSet() == false) {
         $kdlFlavor->_audio = null;
     }
     $operators = $cdlFlavor->getOperators();
     $transObjArr = array();
     //KalturaLog::log(__METHOD__."\nCDL Flavor==>\n".print_r($cdlFlavor,true));
     if (!empty($operators) || $cdlFlavor->getEngineVersion() == 1) {
         $transObjArr = KDLWrap::convertOperatorsCdl2Kdl($operators);
         $kdlFlavor->_engineVersion = 1;
     } else {
         $kdlFlavor->_engineVersion = 0;
         $trnsStr = $cdlFlavor->getConversionEngines();
         $extraStr = $cdlFlavor->getConversionEnginesExtraParams();
         $transObjArr = KDLUtils::parseTranscoderList($trnsStr, $extraStr);
         if ($cdlFlavor instanceof flavorParamsOutputWrap || $cdlFlavor instanceof flavorParamsOutput) {
             $cmdLines = $cdlFlavor->getCommandLines();
             foreach ($transObjArr as $transObj) {
                 $transObj->_cmd = $cmdLines[$transObj->_id];
             }
         }
         KalturaLog::log("\ntranscoders==>\n" . print_r($transObjArr, true));
     }
     KDLUtils::RecursiveScan($transObjArr, "transcoderSetFuncWrap", self::$TranscodersCdl2Kdl, "");
     $kdlFlavor->_transcoders = $transObjArr;
     if ($cdlFlavor instanceof flavorParamsOutputWrap) {
         if ($cdlFlavor->_isRedundant) {
             $kdlFlavor->_flags = $kdlFlavor->_flags | KDLFlavor::RedundantFlagBit;
         }
         if ($cdlFlavor->_isNonComply) {
             $kdlFlavor->_flags = $kdlFlavor->_flags | KDLFlavor::BitrateNonComplyFlagBit;
         }
         $kdlFlavor->_errors = $kdlFlavor->_errors + $cdlFlavor->_errors;
         $kdlFlavor->_warnings = $kdlFlavor->_warnings + $cdlFlavor->_warnings;
     }
     if ($cdlFlavor instanceof SwfFlavorParams || $cdlFlavor instanceof SwfFlavorParamsOutput) {
         $kdlFlavor->_swf = new KDLSwfData();
         $kdlFlavor->_swf->_flashVersion = $cdlFlavor->getFlashVersion();
         $kdlFlavor->_swf->_zoom = $cdlFlavor->getZoom();
         $kdlFlavor->_swf->_zlib = $cdlFlavor->getZlib();
         $kdlFlavor->_swf->_jpegQuality = $cdlFlavor->getJpegQuality();
         $kdlFlavor->_swf->_sameWindow = $cdlFlavor->getSameWindow();
         $kdlFlavor->_swf->_insertStop = $cdlFlavor->getInsertStop();
         $kdlFlavor->_swf->_useShapes = $cdlFlavor->getUseShapes();
         $kdlFlavor->_swf->_storeFonts = $cdlFlavor->getStoreFonts();
         $kdlFlavor->_swf->_flatten = $cdlFlavor->getFlatten();
         $kdlFlavor->_swf->_poly2Bitmap = $cdlFlavor->getPoly2bitmap();
     }
     if ($cdlFlavor instanceof PdfFlavorParams || $cdlFlavor instanceof PdfFlavorParamsOutput) {
         $kdlFlavor->_pdf = new KDLPdfData();
         $kdlFlavor->_pdf->_resolution = $cdlFlavor->getResolution();
         $kdlFlavor->_pdf->_paperHeight = $cdlFlavor->getPaperHeight();
         $kdlFlavor->_pdf->_paperWidth = $cdlFlavor->getPaperWidth();
         $kdlFlavor->_pdf->_readonly = $cdlFlavor->getReadonly();
     }
     if ($cdlFlavor instanceof ImageFlavorParams || $cdlFlavor instanceof ImageFlavorParamsOutput) {
         $kdlFlavor->_image = new KDLImageData();
         $kdlFlavor->_image->_densityWidth = $cdlFlavor->getDensityWidth();
         $kdlFlavor->_image->_densityHeight = $cdlFlavor->getDensityHeight();
         $kdlFlavor->_image->_sizeWidth = $cdlFlavor->getSizeWidth();
         $kdlFlavor->_image->_sizeHeight = $cdlFlavor->getSizeHeight();
         $kdlFlavor->_image->_depth = $cdlFlavor->getDepth();
         $kdlFlavor->_image->_format = $cdlFlavor->getFormat();
     }
     //KalturaLog::log(__METHOD__."\nKDL Flavor==>\n".print_r($kdlFlavor,true));
     if (is_null($kdlFlavor->_container)) {
         KalturaLog::log("No Container Found On Flavor Convert Will Fail");
         $kdlFlavor->_errors[KDLConstants::ContainerIndex][] = KDLErrors::ToString(KDLErrors::InvalidFlavorParamConfiguration);
     }
     return $kdlFlavor;
 }