php переименовал ffmpeg удалил / уменьшил мои видео файлы до 20Kb - PullRequest
0 голосов
/ 29 октября 2018

Я не уверен, что я сделал, но каким-то образом, когда я запустил свой код, он удалил мои видеофайлы, то есть уменьшил каждый видеофайл до 20-40 КБ.

Я использую итератор дерева каталогов, чтобы пройти через выбранную папку и перебрать там все файлы и подпапки с командами для каждого. Я только делаю файлы на этом этапе, а код просто

  1. переименовывает видеофайл, чтобы в его имени не было пробелов
  2. извлекает миниатюру с помощью ffmpeg и помещает ее в каталог видео
  3. вставляет данные в базу данных для отображения на веб-сайте.

Теперь я смог использовать его один раз, и он работал, за исключением двух видеофайлов, которые я использовал для тестирования. По некоторым причинам эти файлы были удалены. Я попытался запустить его снова, и он удалил все видео.

В чем может быть проблема?

$mysqli = new mysqli("localhost", "refit_2_admin", "asd123", "refit_2");
if($mysqli->connect_error)
{
    exit('Error db');
}
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli->set_charset("utf8mb4");
$_SESSION['mysqli'] = $mysqli;

// DIRECTORY

$dir = 'videos';

$it = new RecursiveTreeIterator(new RecursiveDirectoryIterator($dir, RecursiveDirectoryIterator::SKIP_DOTS)); 
foreach($it as $path => $branch)
{
    if(is_dir($path)) // if is a directory
    {
        // echo something
    }
    if(is_file($path)) // if is a file
    {
        $schism = pathinfo($path);
        $string = str_replace(' ', '_', $schism['filename']);

        //$string = str_replace($replace, $with, $string);
        rename($path, $dir.'\\'.$string.'.mp4');

        $ffmpeg = 'ffmpeg.exe';

        $video = dirname(__FILE__) . '\\'.$dir.'\\'.$string.'.mp4';
        //echo ''.$video.'<br>';

        $image = dirname(__FILE__) . '\\'.$dir.'\\'.$string.'.jpg';
        //echo ''.$image.'<br>';

        $second = 1;

        /*$cmd = "$ffmpeg -i $video 2>&1";
        if (preg_match('/Duration: ((\d+):(\d+):(\d+))/s', `$cmd`, $time)) {
            $total = ($time[2] * 3600) + ($time[3] * 60) + $time[4];
            $second = rand(1, ($total - 1));
        }*/

        $cmd = "$ffmpeg -i $video -deinterlace -an -ss $second -t 00:00:01 -r 1 -y -vcodec mjpeg -f mjpeg $image 2>&1";
        $return = `$cmd`;

        $video_title = substr($schism['filename'], 0, -5);
        $video_filename = $schism['filename'].'.mp4';
        $video_thumbnail = $schism['filename'].'.jpg';
        $video_include = basename(__DIR__);
        // Insert
        $stmt = $mysqli->prepare("INSERT INTO videos (video_title, video_filename, video_include, video_tags, video_thumbnail) VALUES (?, ?, ?, ?, ?)");
        $stmt->bind_param("sssss", $video_title, $video_filename, $dir, $video_title, $video_thumbnail);
        $stmt->execute();
        $stmt->close();
    }

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...