php
  • video
  • ffmpeg
  • exec
  • 2015-01-16 6 views 0 likes 
    0

    Я пытаюсь преобразовать видео с расширением .mov в формат .mp4. Ниже приводится команда, которую я пытаюсь использоватьПроблема при конвертации .mov в .mp4 php

    $file_name = "abc.mov"; 
    
    $mp4_file = "abc.mp4"; 
    
    $cmd = 'sudo /usr/bin/ffmpeg -i /path_to_file' . $file_name . ' -strict experimental -vcodec libx264 -pix_fmt yuv420p -profile:v baseline -preset slower -crf 18 -vf "scale=trunc(in_w/2)*2:trunc(in_h/2)*2" /destination_path/' . $mp4_file; 
    exec($cmd, $out, $res); 
    

    Однако нужный файл (с .mp4) не получает создан. Когда я копирую команду и вставляю ее в терминал, создается файл с нужным форматом. Однако то же самое не работает с командой exec в моем PHP-коде.

    Я не могу понять фактическую причину проблемы, так как кажется странным. Любая помощь должна быть оценена. Заранее спасибо

    +0

    Вы проверили возвращаемое значение exec() для сообщений об ошибках? – Sirko

    +0

    «Пользователь», пытающийся выполнить команду 'exec', вероятно, не имеет привилегий для использования команды' sudo'. –

    +0

    Даже если я делаю это без команды sudo, все равно это не сработает. Также команда exec ничего не возвращает. – Inventillect

    ответ

    -1

    Используйте этот код это работы для меня :)

    ffmpeg -i input.mov -vcodec libx264 -pix_fmt yuv420p -profile:v baseline -preset slow -crf 22 -movflags +faststart output.mp4 
    

    Надеется, что это поможет вам.

    +0

    Здесь нет кода, это всего лишь вызов командной строки ffmpeg, который, как сказал OP, работает на него. Это вызов exec из PHP, который не дает желаемого результата. – SirDarius

    +0

    Вы можете попробовать с системой() вместо exec(). –

    +0

    система выполняет внешнюю программу и выводит результат ... Это не эквивалентно exec. Отображение вывода ffmpeg пользователю более чем часто не является чем-то желательным. – SirDarius

    0

    Попробуйте поставить «2 &> 1» в конце exec?

    Смежные вопросы