imageJpeg и FFMPEG в windows против linux - PullRequest
1 голос
/ 25 января 2020

У меня есть рабочий код для преобразования изображения в 5-секундное видео с использованием FFMPEG.

Проблема в том, что код работает только для загруженных изображений, FFMPEG не преобразует изображение в видео, когда изображение генерируется программным путем ТОЛЬКО В LINUX.

PHP код

<?php
    $downloadedF="folder/d.jpg";
    $downloadedV="folder/d.mp4";
    $renderedF="folder/r.jpg";
    $renderedV="folder/r.mp4";

    $op_d=shell_exec("ffmpeg -r 1/5 -i ".$downloadedF." -c:v libx264 -vf fps=25 -pix_fmt yuv420p ".$downloadedV);
    $op_r=shell_exec("ffmpeg -r 1/5 -i ".$renderedF." -c:v libx264 -vf fps=25 -pix_fmt yuv420p ".$renderedV);

    echo "Errors:<br>".$op_d."<br><br>".$op_r;
?>

d.mp4 (или вывод для загруженного изображения) генерируется для обоих Windows и Linux
r.mp4 (или вывод для визуализированного изображения) генерируется только в Windows, а в Linux

System: * 1014 создается пустой файл. *

XAMPP на Windows 10 (Разработка)
Хостинг плана Godaddy Starter - Linux (Возможно, redhat) (Производство)

Структура файла

root folder
    |-index.php
    |-ffmpeg (will be ffmpeg.exe in Windows)
    |-folder
        |-d.jpg (random downloaded image from google)
        |-d.mp4 (Will be created - video converted from downloaded image)
        |-r.jpg (rendered image using php imagejpg)
        |-r.mp4 (Will be created - video converted from rendered image)

Код отрендеренного изображения:

$imgFF = imagecreatetruecolor($videoWidth, $videoHeight);
//---adding many text using imagettftext();
imagejpeg($imgFF, $path."-000.jpg");  //for this example, I copied output to folder as r.jpg

Редактировать 1:

Возвращаемое значение shell_exec не имеет ошибка / вывод даже после добавления

error_reporting(E_ALL);
ini_set('display_errors', 1);

Редактировать 2:

Журнал для успешного преобразования можно найти в Здесь * 10 44 * Журнал неудачного преобразования отрендеренного изображения можно найти по адресу Здесь

Примечание:

• Сценарий здесь свернут и код отделен от длинного кода.
• В команде Linux я добавляю ./ для FFMPEG

...