コード例 #1
0
function doIt($clientObj, $mixFileName, $aviDemuxScp)
{
    kLog::Log($mixFileName);
    $xml = simplexml_load_file(realpath($mixFileName));
    //		print_r($xml);
    $jnDataArr = array();
    foreach ($xml->VideoAssets->vidAsset as $vidAsset) {
        $jnData = new JoinEntityData();
        $attr = $vidAsset->attributes();
        $jnData->_entryId = (string) $attr[k_id];
        //			$entryId = $eId[0];
        //			print_r($entryId);
        //			$attr = $vidAsset->StreamInfo->attributes();
        //			$jnData->_fileName = (string)$attr[file_name];
        $assets = $clientObj->flavorAsset->getByEntryId($jnData->_entryId);
        $jnData->_assetId = null;
        foreach ($assets as $asset) {
            if ($asset->isOriginal == 1) {
                $jnData->_assetId = $asset->id;
                break;
            }
        }
        $jnData->_fileName = dofileSync($clientObj, $jnData->_assetId);
        if (!isset($jnData->_fileName)) {
            return null;
        }
        $filter = new KalturaMediaInfoFilter();
        $filter->flavorAssetIdEqual = $asset->id;
        $mediaInfos = $clientObj->mediaInfo->listAction($filter, null);
        $jnData->_fps = $mediaInfos->objects[0]->videoFrameRate;
        $jnData->_dur = $mediaInfos->objects[0]->videoDuration;
        $jnDataArr[] = $jnData;
        print_r($jnData);
        //			print_r($asset);
        //			echo "\nEntryId ($entryId), FileName($fileName), Asset($assetId)\n";
        //print_r($mediaInfos);
    }
    $fHd = fopen($aviDemuxScp, "w");
    fwrite($fHd, "var app = new Avidemux();\n");
    $totalDur = 0;
    $str1 = null;
    $str2 = null;
    $idx = 0;
    foreach ($jnDataArr as $jnData) {
        if ($str1 == null) {
            $str1 = 'app.load("' . $jnData->_fileName . '");' . "\n";
        } else {
            $str1 .= 'app.append("' . $jnData->_fileName . '");' . "\n";
        }
        $str2 .= "app.addSegment({$idx},0," . (int) ($jnData->_dur * $jnData->_fps / 1000) . ");\n";
        //."\n";			"
        //			$str2.='app.addSegment(0,0,'.$jnData->_dur.');';//."\n";			"
        $totalDur += $jnData->_dur;
        $idx++;
    }
    fwrite($fHd, $str1);
    fwrite($fHd, $str2);
    fwrite($fHd, "app.markerA=0;\n");
    $totalDur = (int) ($totalDur * $jnData->_fps / 1000) - 1;
    fwrite($fHd, "app.markerB={$totalDur};\n");
    fwrite($fHd, "app.video.setPostProc(3,3,0);\n");
    fwrite($fHd, "app.video.fps1000 = " . $jnData->_fps * 1000.0 . ";\n");
    fwrite($fHd, 'app.video.codec("Copy", "CQ=4", "0 ");' . "\n");
    //** Audio **
    fwrite($fHd, 'app.audio.reset();
app.audio.codec("copy",0,0,"");
app.audio.normalizeMode=0
app.audio.normalizeValue=0;
app.audio.delay=0;
app.audio.mixer="NONE";
app.setContainer("MP4");
setSuccess(1);');
    fclose($fHd);
}