Correct conversion at the time of uploading
This commit is contained in:
parent
a4de98e937
commit
cd6d83fc63
1 changed files with 76 additions and 33 deletions
|
@ -111,26 +111,7 @@ class FFMpeg{
|
||||||
}
|
}
|
||||||
|
|
||||||
private function convertToLowResolutionVideo($videoDetails = false){
|
private function convertToLowResolutionVideo($videoDetails = false){
|
||||||
if($videoDetails){
|
|
||||||
$this->log->writeLine("Generating low resolution video", "Starting");
|
|
||||||
$this->sdFile = "{$this->outputFile}-sd.{$this->options['format']}";
|
|
||||||
$fullCommand = $this->ffMpegPath . " -i {$this->inputFile}" . $this->generateCommand($videoDetails, false) . " {$this->sdFile}";
|
|
||||||
|
|
||||||
$this->log->writeLine("command", $fullCommand);
|
|
||||||
|
|
||||||
$conversionOutput = $this->executeCommand($fullCommand);
|
|
||||||
$this->log->writeLine("ffmpeg output", $conversionOutput);
|
|
||||||
|
|
||||||
$this->log->writeLine("MP4Box Conversion for SD", "Starting");
|
|
||||||
$fullCommand = $this->mp4BoxPath . " -inter 0.5 {$this->outputFile}-sd.{$this->options['format']}";
|
|
||||||
$this->log->writeLine("command", $fullCommand);
|
|
||||||
$output = $this->executeCommand($fullCommand);
|
|
||||||
$this->log->writeLine("output", $output);
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private function convertToHightResolutionVideo($videoDetails = false){
|
|
||||||
if($videoDetails && ((int)$videoDetails['video_height'] >= "720")){
|
if($videoDetails && ((int)$videoDetails['video_height'] >= "720")){
|
||||||
$this->log->writeLine("Generating high resolution video", "Starting");
|
$this->log->writeLine("Generating high resolution video", "Starting");
|
||||||
$this->hdFile = "{$this->outputFile}-hd.{$this->options['format']}";
|
$this->hdFile = "{$this->outputFile}-hd.{$this->options['format']}";
|
||||||
|
@ -139,11 +120,35 @@ class FFMpeg{
|
||||||
$conversionOutput = $this->executeCommand($fullCommand);
|
$conversionOutput = $this->executeCommand($fullCommand);
|
||||||
$this->log->writeLine("ffmpeg output", $conversionOutput);
|
$this->log->writeLine("ffmpeg output", $conversionOutput);
|
||||||
$this->log->writeLine("MP4Box Conversion for HD", "Starting");
|
$this->log->writeLine("MP4Box Conversion for HD", "Starting");
|
||||||
$fullCommand = $this->mp4BoxPath . " -inter 0.5 {$this->outputFile}-hd.{$this->options['format']}";
|
$fullCommand = $this->mp4BoxPath . " -inter 0.5 {$this->hdFile} -tmp /";
|
||||||
$this->log->writeLine("command", $fullCommand);
|
$this->log->writeLine("command", $fullCommand);
|
||||||
$output = $this->executeCommand($fullCommand);
|
$output = $this->executeCommand($fullCommand);
|
||||||
$this->log->writeLine("output", $output);
|
$this->log->writeLine("output", $output);
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
|
||||||
|
$this->log->writeLine("Generating low resolution video", "Starting");
|
||||||
|
$this->sdFile = "{$this->outputFile}-sd.{$this->options['format']}";
|
||||||
|
$fullCommand = $this->ffMpegPath . " -i {$this->inputFile}" . $this->generateCommand($videoDetails, false) . " {$this->sdFile}";
|
||||||
|
sleep(15);
|
||||||
|
|
||||||
|
$this->log->writeLine("command", $fullCommand);
|
||||||
|
|
||||||
|
$conversionOutput = $this->executeCommand($fullCommand);
|
||||||
|
$this->log->writeLine("ffmpeg output", $conversionOutput);
|
||||||
|
|
||||||
|
$this->log->writeLine("MP4Box Conversion for SD", "Starting");
|
||||||
|
$fullCommand = $this->mp4BoxPath . " -inter 0.5 {$this->sdFile} -tmp /";
|
||||||
|
$this->log->writeLine("command", $fullCommand);
|
||||||
|
$output = $this->executeCommand($fullCommand);
|
||||||
|
$this->log->writeLine("output", $output);
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private function convertToHightResolutionVideo($videoDetails = false){
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -175,6 +180,12 @@ class FFMpeg{
|
||||||
|
|
||||||
private function generateCommand($videoDetails = false, $isHd = false){
|
private function generateCommand($videoDetails = false, $isHd = false){
|
||||||
if($videoDetails){
|
if($videoDetails){
|
||||||
|
$result = shell_output("ffmpeg -version");
|
||||||
|
preg_match("/(?:ffmpeg\\s)(?:version\\s)?(\\d\\.\\d\\.(?:\\d|[\\w]+))/i", strtolower($result), $matches);
|
||||||
|
if(count($matches) > 0)
|
||||||
|
{
|
||||||
|
$version = array_pop($matches);
|
||||||
|
}
|
||||||
$commandSwitches = "";
|
$commandSwitches = "";
|
||||||
$videoRatio = substr($videoDetails['video_wh_ratio'], 0, 3);
|
$videoRatio = substr($videoDetails['video_wh_ratio'], 0, 3);
|
||||||
/*
|
/*
|
||||||
|
@ -188,7 +199,7 @@ class FFMpeg{
|
||||||
}else{
|
}else{
|
||||||
$ratio = $this->resolution4_3;
|
$ratio = $this->resolution4_3;
|
||||||
}
|
}
|
||||||
$commandSwitches .= " -aspect {$aspectRatio}";
|
$commandSwitches .= "";
|
||||||
|
|
||||||
if(isset($this->options['video_codec'])){
|
if(isset($this->options['video_codec'])){
|
||||||
$commandSwitches .= " -vcodec " .$this->options['video_codec'];
|
$commandSwitches .= " -vcodec " .$this->options['video_codec'];
|
||||||
|
@ -201,18 +212,36 @@ class FFMpeg{
|
||||||
/*
|
/*
|
||||||
Setting Size Of output video
|
Setting Size Of output video
|
||||||
*/
|
*/
|
||||||
if($isHd){
|
if ($version == "0.9")
|
||||||
$defaultVideoHeight = $this->options['high_res'];
|
{
|
||||||
$size = "{$ratio[$defaultVideoHeight][0]}x{$ratio[$defaultVideoHeight][1]}";
|
if($isHd){
|
||||||
$vpre = "hq";
|
$defaultVideoHeight = $this->options['high_res'];
|
||||||
}else{
|
$size = "{$ratio[$defaultVideoHeight][0]}x{$ratio[$defaultVideoHeight][1]}";
|
||||||
$defaultVideoHeight = $this->options['normal_res'];
|
$vpre = "hq";
|
||||||
$size = "{$ratio[$defaultVideoHeight][0]}x{$ratio[$defaultVideoHeight][1]}";
|
}else{
|
||||||
$vpre = "normal";
|
$defaultVideoHeight = $this->options['normal_res'];
|
||||||
|
$size = "{$ratio[$defaultVideoHeight][0]}x{$ratio[$defaultVideoHeight][1]}";
|
||||||
|
$vpre = "normal";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
else
|
||||||
$commandSwitches .= " -s {$size} -vpre {$vpre}";
|
if($isHd){
|
||||||
|
$defaultVideoHeight = $this->options['high_res'];
|
||||||
|
$size = "{$ratio[$defaultVideoHeight][0]}x{$ratio[$defaultVideoHeight][1]}";
|
||||||
|
$vpre = "veryslow";
|
||||||
|
}else{
|
||||||
|
$defaultVideoHeight = $this->options['normal_res'];
|
||||||
|
$size = "{$ratio[$defaultVideoHeight][0]}x{$ratio[$defaultVideoHeight][1]}";
|
||||||
|
$vpre = "medium";
|
||||||
|
}
|
||||||
|
if ($version == "0.9")
|
||||||
|
{
|
||||||
|
$commandSwitches .= " -s {$size} -vpre {$vpre}";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$commandSwitches .= " -s {$size} -preset {$vpre}";
|
||||||
|
}
|
||||||
/*$videoHeight = $videoDetails['video_height'];
|
/*$videoHeight = $videoDetails['video_height'];
|
||||||
if(array_key_exists($videoHeight, $ratio)){
|
if(array_key_exists($videoHeight, $ratio)){
|
||||||
//logData($ratio[$videoHeight]);
|
//logData($ratio[$videoHeight]);
|
||||||
|
@ -300,7 +329,21 @@ class FFMpeg{
|
||||||
$ffmpegOutput = $this->executeCommand( $this->ffMpegPath . " -i {$videoPath} -acodec copy -vcodec copy -y -f null /dev/null 2>&1" );
|
$ffmpegOutput = $this->executeCommand( $this->ffMpegPath . " -i {$videoPath} -acodec copy -vcodec copy -y -f null /dev/null 2>&1" );
|
||||||
$info = $this->parseVideoInfo($ffmpegOutput);
|
$info = $this->parseVideoInfo($ffmpegOutput);
|
||||||
$info['size'] = (integer)$stats['size'];
|
$info['size'] = (integer)$stats['size'];
|
||||||
return $info;
|
$info['bitrate'] = (integer)$stats['bitrate'];
|
||||||
|
$info['format'] = (integer)$stats['format'];
|
||||||
|
$info['duration'] = (integer)$stats['duration'];
|
||||||
|
$info['video_width'] = (integer)$stats['video_width'];
|
||||||
|
$info['video_height'] = (integer)$stats['video_height'];
|
||||||
|
$info['video_wh_ratio'] = (integer)$stats['video_wh_ratio'];
|
||||||
|
$info['video_codec'] = (integer)$stats['video_codec'];
|
||||||
|
$info['video_rate'] = (integer)$stats['video_rate'];
|
||||||
|
$info['video_bitrate'] = (integer)$stats['video_bitrate'];
|
||||||
|
$info['video_color'] = (integer)$stats['video_color'];
|
||||||
|
$info['audio_codec'] = (integer)$stats['audio_codec'];
|
||||||
|
$info['audio_bitrate'] = (integer)$stats['audio_bitrate'];
|
||||||
|
$info['audio_rate'] = (integer)$stats['audio_rate'];
|
||||||
|
$info['audio_channels'] = (integer)$stats['audio_channels'];
|
||||||
|
return $info;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
|
|
Loading…
Add table
Reference in a new issue