Преобразование видео с помощью FFMPEG и PHP отлично работает в localhost и в терминале Linux, но не на веб-сайте

#php #linux #ffmpeg #video-conversion

Вопрос:

Название в значительной степени рассказывает всю историю. Вот весь мой код:

 lt;?php  $uploads_dir = 'original/'; $file_name = basename($_FILES['file']['name']); $db_file_name = date("DMjGisY")."".rand(100000,999999); $uploaded_file = $uploads_dir . $file_name; $convert_status = ['mp4' =gt; 0];  if(isset($_POST['submit'])) {  if(move_uploaded_file($_FILES['file']['tmp_name'], $uploaded_file)) {  $ffmpeg = '/usr/local/bin/ffmpeg';    // MP4  $video_mp4 = $db_file_name . '.mp4';  exec($ffmpeg . ' -i "' . $uploaded_file . '" -c:v libx264 "./converted/' . $video_mp4 . '" -y 1gt;convert.txt 2gt;amp;1', $output, $convert_status['mp4']);    $vidmp4 = 'converted/'.$video_mp4.'';    echo 'lt;stylegt;#video-upload-form{display: none;}lt;/stylegt;';  echo 'lt;div style="text-align: center;"gt;';  echo 'lt;video style="max-width: 50%; height: auto;" controlsgt;';  echo 'lt;source src="'.$vidmp4.'" type="video/mp4"gt;';  echo 'lt;/videogt;';  echo 'lt;/divgt;';  } } ?gt;  lt;form id="video-upload-form" action="" method="post" enctype="multipart/form-data"gt;  lt;input type="file" name="file"gt;  lt;input type="submit" name="submit" value="Upload"gt; lt;/formgt;  lt;!-- THIS FIXES 'CONFIRM FORM RESUBMISSION' --gt; lt;scriptgt;  if ( window.history.replaceState ) {  window.history.replaceState( null, null, window.location.href );  } lt;/scriptgt;  

Когда я разместил это на своем веб — сайте, единственным изменением была 9-я строка — «$ffmpeg = «/usr/bin/ffmpeg»;». Вот что я получил, когда выполнил команду «which ffmpeg». Я забил себя до смерти, пытаясь понять это. Должно быть что-то в PHP или FFMPEG, чего не хватает на моем сервере. Пожалуйста, кто-нибудь может мне помочь?

Комментарии:

1. Выдержка из журнала помогла бы.

2. в чем заключается $output ценность? в основном это происходит потому, что разные САПИ по-разному работают с ffmpeg

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