Файл: adultscript-2.0.3-pro/files/modules/video/helpers/conv.php
Строк: 114
<?php
class VHelper_video_conv
{
public static function process($video_id, $src, $conv, $watermark = false)
{
$flv_proc = false;
$mp4_proc = false;
$mp4_hd_proc = false;
$mobile_proc = false;
$server_id = 0;
$s3 = 0;
$format = $conv->identify();
$mp4_convert = (VCfg::get('video.flv_copy') && $format == 'flv') ? false : true;
$mp4_copy = (VCfg::get('video.mp4_reconvert') == '0' && $format == 'mp4') ? true : false;
$mp4_hd_convert = false;
if (VCfg::get('video.mp4_hd_convert') &&
$conv->data['width'] >= VCfg::get('video.mp4_hd_min_width') &&
$conv->data['height'] >= VCfg::get('video.mp4_hd_min_height') &&
$conv->data['bitrate'] >= VCfg::get('video.mp4_hd_min_bitrate')) {
$mp4_hd_convert = true;
$mp4_copy = false;
}
$mp4_hd_copy = ($mp4_hd_convert && $format == 'mp4' && VCfg::get('video.mp4_hd_reconvert') == '0') ? true : false;
$mobile_convert = (VCfg::get('video.mobile_convert') == '1') ? true : false;
$conv->log('Video identified as '.$format.'/'.$conv->data['width'].'x'.$conv->data['height'].'/'.$conv->data['bitrate'].'...preparing!');
if ($mp4_convert) {
$dst_mp4 = MEDIA_DIR.'/videos/mp4/'.$video_id.'.mp4';
if ($mp4_copy) {
$dst_mp4_nomoov = MEDIA_DIR.'/videos/mp4/'.$video_id.'.nomoov.mp4';
$conv->log('Copying MP4 video to '.$dst_mp4_nomoov.' ...');
if (copy($src, $dst_mp4_nomoov)) {
@chmod($dst_mp4_nomoov, 0777);
$mp4_proc = true;
if (!$conv->fix_moov_atom($dst_mp4_nomoov, $dst_mp4)) {
$conv->log('Failed to relocate moov atom...copying original mp4 file!');
rename($dst_mp4_nomoov, $dst_mp4);
VFile::delete($dst_mp4_nomoov);
}
} else {
$conv->log('Failed to copy MP4 video!');
}
} elseif ($conv->convert_to_mp4($src, $dst_mp4, false, $watermark)) {
$conv->log('Video converted to MP4.');
$mp4_proc = true;
} else {
$conv->log('Failed to copy or convert video to MP4!');
}
} else {
$conv->log('Copying FLV video...');
$dst_flv_nometa = MEDIA_DIR.'/videos/flv/'.$video_id.'.nometa.flv';
if (copy($src, $dst_flv_nometa)) {
$flv_proc = true;
@chmod($dst_flv_nometa, 0777);
$conv->log('FLV Processed! Updating meta tags ...');
$dst_flv = MEDIA_DIR.'/videos/flv/'.$video_id.'.flv';
if (!$conv->update_meta($dst_flv_nometa, $dst_flv)) {
$conv->log('Failed to update meta tags...copying file without meta tags!');
rename($dst_flv_nometa, $dst_flv);
VFile::delete($dst_flv_nometa);
}
} else {
$conv->log('Failed to copy FLV video!');
}
}
if ($mp4_proc) {
@chmod($dst_mp4, 0777);
}
if ($flv_proc) {
@chmod($dst_flv, 0777);
}
if ($mp4_hd_convert) {
$dst_mp4_hd = MEDIA_DIR.'/videos/mp4/'.$video_id.'_hd.mp4';
if ($mp4_hd_copy) {
$conv->log('Copying MP4 HD file...');
$dst_mp4_hd_nomoov = MEDIA_DIR.'/videos/mp4/'.$video_id.'_hd.nomoov.mp4';
if (copy($src, $dst_mp4_hd_nomoov)) {
$mp4_hd_proc = true;
@chmod($dst_mp4_hd_nomoov, 0777);
if (!$conv->fix_moov_atom($dst_mp4_hd_nomoov, $dst_mp4_hd)) {
$conv->log('Failed to relocate moov atom...copying original mp4 file!');
rename($dst_mp4_hd_nomoov, $dst_mp4_hd);
VFile::delete($dst_mp4_hd_nomoov);
}
} else {
$conv->log('Failed to copy MP4 HD video!');
}
} elseif ($conv->convert_to_mp4_hd($src, $dst_mp4_hd, false, $watermark)) {
$conv->log('Video converted to MP4 HD.');
$mp4_hd_proc = true;
} else {
$conv->log('Failed to copy or convert video to MP4 HD!');
}
} else {
$conv->log('Not converting to MP4 HD!');
}
if ($mp4_hd_proc) {
@chmod($dst_mp4_hd, 0777);
}
if ($mobile_convert) {
$dst_mobile = MEDIA_DIR.'/videos/mobile/'.$video_id.'.mp4';
if ($conv->convert_to_mobile($src, $dst_mobile, false, $watermark)) {
$conv->log('Video converted to Mobile.');
$mobile_proc = true;
@chmod($dst_mobile, 0777);
} else {
$conv->log('Failed to convert video to Mobile!');
}
} else {
$conv->log('Not converting to Mobile!');
}
if ($flv_proc) {
$size = filesize($dst_flv);
}
if ($mp4_proc) {
$size = filesize($dst_mp4);
}
if (VCfg::get('video.multi_server') == '1') {
$conv->log('Initializing multi-server ...');
VHelper::load('module.video.server');
$server = VHelper_video_server::get(FALSE, 1);
if ($server &&
VHelper_video_server::process_upload($server, $video_id, $flv_proc, $mp4_proc, $mp4_hd_proc, $mobile_proc, $conv)) {
$server_id = (int) $server['server_id'];
}
}
if (VCfg::get('video.amazon_s3') == '1') {
$conv->log('Initializaing Amazon S3 storage ...');
VHelper::load('module.video.s3');
if (VHelper_video_s3::process_upload($video_id, $flv_proc, $mp4_proc, $mp4_hd_proc, $mobile_proc, $conv)) {
$s3 = 1;
}
}
return array(
'flv' => $flv_proc,
'mp4' => $mp4_proc,
'mp4_hd' => $mp4_hd_proc,
'mobile' => $mobile_proc,
'server_id' => $server_id,
's3' => $s3,
'size' => (isset($size)) ? $size : 0
);
}
}