@@ -7,7 +7,7 @@ discard block |
||
7 | 7 | * We use ffprobe, ffmpeg and convert to analyse, transcode and manipulate videos and images (watermark) |
8 | 8 | */ |
9 | 9 | |
10 | -require_once __DIR__ . '/BasicTranscoder.php'; |
|
10 | +require_once __DIR__.'/BasicTranscoder.php'; |
|
11 | 11 | |
12 | 12 | use SA\CpeSdk; |
13 | 13 | |
@@ -105,7 +105,7 @@ discard block |
||
105 | 105 | $this->cpeLogger->log_out( |
106 | 106 | "INFO", |
107 | 107 | basename(__FILE__), |
108 | - "Input Video metadata: " . print_r($metadata, true), |
|
108 | + "Input Video metadata: ".print_r($metadata, true), |
|
109 | 109 | $this->activityLogKey |
110 | 110 | ); |
111 | 111 | |
@@ -142,7 +142,7 @@ discard block |
||
142 | 142 | $this->cpeLogger->log_out( |
143 | 143 | "ERROR", |
144 | 144 | basename(__FILE__), |
145 | - "Execution of command '".$ffmpegCmd."' failed: " . print_r($metadata, true). ". ".$e->getMessage(), |
|
145 | + "Execution of command '".$ffmpegCmd."' failed: ".print_r($metadata, true).". ".$e->getMessage(), |
|
146 | 146 | $this->activityLogKey |
147 | 147 | ); |
148 | 148 | return false; |
@@ -185,7 +185,7 @@ discard block |
||
185 | 185 | } |
186 | 186 | |
187 | 187 | // Append output filename to path |
188 | - $pathToOutputFiles .= "/" . $outputWanted->{'output_file_info'}['basename']; |
|
188 | + $pathToOutputFiles .= "/".$outputWanted->{'output_file_info'}['basename']; |
|
189 | 189 | // Replace ${output_file} by output filename and path to local disk |
190 | 190 | $ffmpegCmd = preg_replace('/\$\{output_file\}/', $pathToOutputFiles, $ffmpegCmd); |
191 | 191 | |
@@ -245,7 +245,7 @@ discard block |
||
245 | 245 | } |
246 | 246 | |
247 | 247 | // Create FFMpeg arguments |
248 | - $ffmpegArgs = " -i $pathToInputFile -y -threads 0"; |
|
248 | + $ffmpegArgs = " -i $pathToInputFile -y -threads 0"; |
|
249 | 249 | $ffmpegArgs .= " -s $size"; |
250 | 250 | $ffmpegArgs .= " -vcodec $videoCodec"; |
251 | 251 | $ffmpegArgs .= " -acodec $audioCodec"; |
@@ -256,9 +256,9 @@ discard block |
||
256 | 256 | $ffmpegArgs .= " $watermarkOptions"; |
257 | 257 | |
258 | 258 | // Append output filename to path |
259 | - $pathToOutputFiles .= "/" . $outputWanted->{'output_file_info'}['basename']; |
|
259 | + $pathToOutputFiles .= "/".$outputWanted->{'output_file_info'}['basename']; |
|
260 | 260 | // Final command |
261 | - $ffmpegCmd = "ffmpeg $ffmpegArgs $pathToOutputFiles"; |
|
261 | + $ffmpegCmd = "ffmpeg $ffmpegArgs $pathToOutputFiles"; |
|
262 | 262 | |
263 | 263 | return ($ffmpegCmd); |
264 | 264 | } |
@@ -285,8 +285,8 @@ discard block |
||
285 | 285 | $snapshot_sec = $outputWanted->{'snapshot_sec'}; |
286 | 286 | } |
287 | 287 | |
288 | - $time = gmdate("H:i:s", $snapshot_sec) . ".000"; |
|
289 | - $pathToOutputFiles .= "/" . $outputFileInfo['basename']; |
|
288 | + $time = gmdate("H:i:s", $snapshot_sec).".000"; |
|
289 | + $pathToOutputFiles .= "/".$outputFileInfo['basename']; |
|
290 | 290 | $frameOptions = " -ss $time -vframes 1"; |
291 | 291 | } |
292 | 292 | else if ($outputWanted->{'mode'} == 'intervals') |
@@ -297,14 +297,14 @@ discard block |
||
297 | 297 | $intervals = $outputWanted->{'intervals'}; |
298 | 298 | } |
299 | 299 | |
300 | - $pathToOutputFiles .= "/" . $outputFileInfo['filename'] . "%06d." |
|
300 | + $pathToOutputFiles .= "/".$outputFileInfo['filename']."%06d." |
|
301 | 301 | . $outputFileInfo['extension']; |
302 | 302 | $frameOptions = " -vf fps=fps=1/$intervals"; |
303 | 303 | } |
304 | 304 | |
305 | 305 | // Create FFMpeg arguments |
306 | - $ffmpegArgs = " -i $pathToInputFile -y -threads 0"; |
|
307 | - $ffmpegArgs .= " -vf scale=" . $outputWanted->{'size'}; |
|
306 | + $ffmpegArgs = " -i $pathToInputFile -y -threads 0"; |
|
307 | + $ffmpegArgs .= " -vf scale=".$outputWanted->{'size'}; |
|
308 | 308 | $ffmpegArgs .= " $frameOptions -f image2 -q:v 8"; |
309 | 309 | |
310 | 310 | // Final command |
@@ -335,7 +335,7 @@ discard block |
||
335 | 335 | $this->activityLogKey); |
336 | 336 | |
337 | 337 | // Transform watermark for opacity |
338 | - $convertCmd = "convert $watermarkPath -alpha on -channel A -evaluate Multiply " . $watermarkOptions->{'opacity'} . " +channel $newWatermarkPath"; |
|
338 | + $convertCmd = "convert $watermarkPath -alpha on -channel A -evaluate Multiply ".$watermarkOptions->{'opacity'}." +channel $newWatermarkPath"; |
|
339 | 339 | |
340 | 340 | try { |
341 | 341 | $out = $this->executer->execute($convertCmd, 1, |
@@ -364,7 +364,7 @@ discard block |
||
364 | 364 | // Format options for FFMpeg |
365 | 365 | $size = $watermarkOptions->{'size'}; |
366 | 366 | $positions = $this->get_watermark_position($watermarkOptions); |
367 | - $formattedOptions = "-vf \"movie=$newWatermarkPath, scale=$size [wm]; [in][wm] overlay=" . $positions['x'] . ':' . $positions['y'] . " [out]\""; |
|
367 | + $formattedOptions = "-vf \"movie=$newWatermarkPath, scale=$size [wm]; [in][wm] overlay=".$positions['x'].':'.$positions['y']." [out]\""; |
|
368 | 368 | |
369 | 369 | return ($formattedOptions); |
370 | 370 | } |
@@ -381,10 +381,10 @@ discard block |
||
381 | 381 | $positions['y'] = $watermarkOptions->{'y'}; |
382 | 382 | } |
383 | 383 | if ($watermarkOptions->{'x'} < 0) { |
384 | - $positions['x'] = 'main_w-overlay_w' . $watermarkOptions->{'x'}; |
|
384 | + $positions['x'] = 'main_w-overlay_w'.$watermarkOptions->{'x'}; |
|
385 | 385 | } |
386 | 386 | if ($watermarkOptions->{'y'} < 0) { |
387 | - $positions['y'] = 'main_h-overlay_h' . $watermarkOptions->{'y'}; |
|
387 | + $positions['y'] = 'main_h-overlay_h'.$watermarkOptions->{'y'}; |
|
388 | 388 | } |
389 | 389 | |
390 | 390 | return ($positions); |
@@ -493,7 +493,7 @@ discard block |
||
493 | 493 | // # finally, progress is easy |
494 | 494 | $progress = 0; |
495 | 495 | if ($done) { |
496 | - $progress = round(($done/$duration)*100); |
|
496 | + $progress = round(($done / $duration) * 100); |
|
497 | 497 | } |
498 | 498 | |
499 | 499 | $this->cpeLogger->log_out( |
@@ -528,7 +528,7 @@ discard block |
||
528 | 528 | } |
529 | 529 | |
530 | 530 | $preset = $output_wanted->{"preset"}; |
531 | - $presetPath = __DIR__ . '/../../../presets/'; |
|
531 | + $presetPath = __DIR__.'/../../../presets/'; |
|
532 | 532 | |
533 | 533 | if (!($presetContent = file_get_contents($presetPath.$preset.".json"))) { |
534 | 534 | throw new CpeSdk\CpeException("Can't open preset file !", |
@@ -552,7 +552,7 @@ discard block |
||
552 | 552 | } |
553 | 553 | |
554 | 554 | $preset = $output->{"preset"}; |
555 | - $presetPath = __DIR__ . '/../../../presets/'; |
|
555 | + $presetPath = __DIR__.'/../../../presets/'; |
|
556 | 556 | |
557 | 557 | if (!($files = scandir($presetPath))) { |
558 | 558 | throw new CpeSdk\CpeException("Unable to open preset directory '$presetPath' !", |
@@ -608,22 +608,22 @@ discard block |
||
608 | 608 | } |
609 | 609 | |
610 | 610 | $analyse = [ |
611 | - 'duration' => isset($metadata->format->duration) ? (float)$metadata->format->duration : 0, |
|
611 | + 'duration' => isset($metadata->format->duration) ? (float) $metadata->format->duration : 0, |
|
612 | 612 | 'video' => empty($videoStreams) ? null : [ |
613 | 613 | 'codec' => $videoStreams->codec_name, |
614 | 614 | 'color' => $videoStreams->color_space, |
615 | - 'resolution' => $videoStreams->width . 'x' . $videoStreams->height, |
|
615 | + 'resolution' => $videoStreams->width.'x'.$videoStreams->height, |
|
616 | 616 | 'sar' => $videoStreams->sample_aspect_ratio, |
617 | 617 | 'dar' => $videoStreams->display_aspect_ratio, |
618 | 618 | 'framerate' => $videoStreams->r_frame_rate, |
619 | - 'bitrate' => isset($videoStreams->bit_rate) ? (int)$videoStreams->bit_rate : null |
|
619 | + 'bitrate' => isset($videoStreams->bit_rate) ? (int) $videoStreams->bit_rate : null |
|
620 | 620 | ], |
621 | 621 | 'audio' => empty($audioStreams) ? null : [ |
622 | 622 | 'codec' => $audioStreams->codec_name, |
623 | 623 | 'frequency' => $audioStreams->sample_rate, |
624 | - 'channels' => (int)$audioStreams->channels, |
|
624 | + 'channels' => (int) $audioStreams->channels, |
|
625 | 625 | 'depth' => $audioStreams->bits_per_sample, |
626 | - 'bitrate' => (int)$audioStreams->bit_rate |
|
626 | + 'bitrate' => (int) $audioStreams->bit_rate |
|
627 | 627 | ] |
628 | 628 | ]; |
629 | 629 |
@@ -49,11 +49,12 @@ discard block |
||
49 | 49 | $metadata = null, |
50 | 50 | $outputWanted) |
51 | 51 | { |
52 | - if (!$metadata) |
|
53 | - throw new CpeSdk\CpeException( |
|
52 | + if (!$metadata) { |
|
53 | + throw new CpeSdk\CpeException( |
|
54 | 54 | "NO Input Video metadata! We can't transcode an asset without probing it first. Use ValidateAsset activity to probe it and pass a 'metadata' field containing the input metadata to this TranscodeAsset activity.", |
55 | 55 | self::TRANSCODE_FAIL |
56 | 56 | ); |
57 | + } |
|
57 | 58 | // Extract an sanitize metadata |
58 | 59 | $metadata = $this->_extractFileInfo($metadata); |
59 | 60 | |
@@ -101,13 +102,14 @@ discard block |
||
101 | 102 | $this->activityLogKey |
102 | 103 | ); |
103 | 104 | |
104 | - if ($metadata) |
|
105 | - $this->cpeLogger->log_out( |
|
105 | + if ($metadata) { |
|
106 | + $this->cpeLogger->log_out( |
|
106 | 107 | "INFO", |
107 | 108 | basename(__FILE__), |
108 | 109 | "Input Video metadata: " . print_r($metadata, true), |
109 | 110 | $this->activityLogKey |
110 | 111 | ); |
112 | + } |
|
111 | 113 | |
112 | 114 | try { |
113 | 115 | // Use executer to start FFMpeg command |
@@ -137,8 +139,7 @@ discard block |
||
137 | 139 | // FFProbe the output file and return its information |
138 | 140 | $output_info = |
139 | 141 | $this->get_asset_info($pathToOutputFiles."/".$outputWanted->{'output_file_info'}['basename']); |
140 | - } |
|
141 | - catch (\Exception $e) { |
|
142 | + } catch (\Exception $e) { |
|
142 | 143 | $this->cpeLogger->log_out( |
143 | 144 | "ERROR", |
144 | 145 | basename(__FILE__), |
@@ -288,8 +289,7 @@ discard block |
||
288 | 289 | $time = gmdate("H:i:s", $snapshot_sec) . ".000"; |
289 | 290 | $pathToOutputFiles .= "/" . $outputFileInfo['basename']; |
290 | 291 | $frameOptions = " -ss $time -vframes 1"; |
291 | - } |
|
292 | - else if ($outputWanted->{'mode'} == 'intervals') |
|
292 | + } else if ($outputWanted->{'mode'} == 'intervals') |
|
293 | 293 | { |
294 | 294 | $intervals = self::INTERVALS_DEFAULT; |
295 | 295 | if (isset($outputWanted->{'intervals'}) && |
@@ -342,8 +342,7 @@ discard block |
||
342 | 342 | array(1 => array("pipe", "w"), 2 => array("pipe", "w")), |
343 | 343 | false, false, |
344 | 344 | false, 1); |
345 | - } |
|
346 | - catch (\Exception $e) { |
|
345 | + } catch (\Exception $e) { |
|
347 | 346 | $this->cpeLogger->log_out( |
348 | 347 | "ERROR", |
349 | 348 | basename(__FILE__), |
@@ -601,8 +600,7 @@ discard block |
||
601 | 600 | foreach ($metadata->streams as $key => $value) { |
602 | 601 | if ($value->codec_type === 'video') { |
603 | 602 | $videoStreams = $value; |
604 | - } |
|
605 | - else if ($value->codec_type === 'audio') { |
|
603 | + } else if ($value->codec_type === 'audio') { |
|
606 | 604 | $audioStreams = $value; |
607 | 605 | } |
608 | 606 | } |
@@ -653,8 +651,7 @@ discard block |
||
653 | 651 | false, false, |
654 | 652 | false, 1 |
655 | 653 | ); |
656 | - } |
|
657 | - catch (\Exception $e) { |
|
654 | + } catch (\Exception $e) { |
|
658 | 655 | $this->cpeLogger->log_out( |
659 | 656 | "ERROR", |
660 | 657 | basename(__FILE__), |