Как запустить ffmpeg с php в debian 10 - PullRequest
0 голосов
/ 06 августа 2020

Я пытаюсь запустить команду ffmpeg с моим php в Debian 10, но она не работает, но команда отлично работает в windows. Команда заключается в добавлении водяного знака и текста внизу видео. Вот код php

<?php
    $new_file="new.mp4";
    $text="eloke";
    $video_name="video.mp4";
    echo file_exists($new_file)? "<video autoplay src='$new_file'></video>":"No file";
   
    $cmd="ffmpeg -i $video_name -i watermark.jpg -filter_complex overlay=W-w-5:H-h-15[video];[video]drawtext=\"text=$text:fontcolor=white:fontsize=12:x=(w-text_w)-5: y=(h-text_h)-5\" $new_file";
    exec("$cmd 2>&1", $output);
    var_dump($output);
?>

Я получаю это в браузере

array(1) { [0]=> string(103) "sh: 1: [video]drawtext=text=eloke:fontcolor=white:fontsize=12:x=(w-text_w)-5: y=(h-text_h)-5: not found" }

Пожалуйста, что я делаю не так

1 Ответ

0 голосов
/ 06 августа 2020

Попробуйте использовать следующий фрагмент и замените его исходным кодом:

$cmd = "ffmpeg -i ".$video_name." -i watermark.jpg -filter_complex overlay=W-w-5:H-h-15[video];[video]drawtext=\"text=".$text.":fontcolor=white:fontsize=12:x=(w-text_w)-5: y=(h-text_h)-5\" ".$new_file;
$cmd = escapeshellcmd($cmd);
exec($cmd." > /path/to/stdout_file 2>&1", $output);

Кроме того, остерегайтесь использования escapeshellcmd ()

...