2012-01-12 5 views
0

ОС: Ubuntu 11,10 вебсервер: Apache код: PHP Я пытаюсь отобразить вывод команды «FFmpeg -i» на веб-странице с помощью PHP. Обязательно: на веб-странице должна отображаться информация о видео (текст). Что происходит: на веб-странице нет текстового вывода при запуске php-кода. Если я все же выполнял систему («ls»), код работает нормально и выводит список файлов. Вот мой кодНевозможно выполнить команды CLI через PHP

<?php 
echo "Details of video file:"; 
system('ffmpeg -i /home/atish/Videos/T2V0040006_Angled_ride_720x576i_FLDCMB.avi'); 
?> 

Та же команда отлично работает на моей оболочки, и моя система установила FFmpeg. Вот снимок выполнения этой команды непосредственно на оболочке:

ThinkPad-T420:~/Videos$ ffmpeg -i /home/xx/Videos/T2V0040006_Angled_ride_720x576i_FLDCMB.avi 
ffmpeg version git-2012-01-10-7e2ba2d Copyright (c) 2000-2012 the FFmpeg developers 
built on Jan 10 2012 12:01:19 with gcc 4.6.1 
configuration: --enable-gpl --enable-libfaac --enable-libmp3lame --enable-libopencore- amrnb --enable-libopencore-amrwb --enable-libtheora --enable-libvorbis --enable-libx264 --enable-nonfree --enable-postproc --enable-version3 --enable-x11grab 
    libavutil  51. 34.100/51. 34.100 
    libavcodec  53. 54.100/53. 54.100 
    libavformat 53. 29.100/53. 29.100 
    libavdevice 53. 4.100/53. 4.100 
    libavfilter  2. 58.100/2. 58.100 
    libswscale  2. 1.100/2. 1.100 
    libswresample 0. 6.100/0. 6.100 
    libpostproc 51. 2.100/51. 2.100 
    Input #0, avi, from '/home/atish/Videos/T2V0040006_Angled_ride_720x576i_FLDCMB.avi': 
    Metadata: 
    encoder   : Lavf52.23.1 
    Duration: 00:00:29.00, start: 0.000000, bitrate: 124422 kb/s 
    Stream #0:0: Video: rawvideo (I420/0x30323449), yuv420p, 720x576, 25 tbr, 25 tbn, 25 tbc 
    At least one output file must be specified 

Я попытался добавления «DISPLAY =: 0» в моей команде, а также сделать «Xhost +» перед запуском кода PHP, но ничего не помогает мне.

Спасибо.

+1

Что конкретно не работает? Что происходит при выполнении кода PHP? – Amadan

+0

И какая именно проблема? – rkosegi

+0

попробуйте в консоли «su www-data» и посмотрите, все ли в порядке снова работает cmd. если не проблема безопасности. – Teson

ответ

1

Этот link объясняет, как и почему. Спасибо за ответы.

Это способ, чтобы получить желаемый результат:

echo exec('/usr/local/bin/ffmpeg -i input.mp4 2>&1', $output); 
var_dump($output); 
0

Вы должны использовать exec вместо этого, и передать выходной параметр как так

$op = array(); 
exec('ffmpeg -i /home/atish/Videos/T2V0040006_Angled_ride_720x576i_FLDCMB.avi', $op) 

REF: http://php.net/manual/en/function.exec.php

+0

, а затем I echo $ op? Я пробовал это, но все, что я вижу в качестве вывода, это на веб-странице: «Array» – user940154

+0

Нет, вам придется делать что-то вроде ... 'print_r (implode ('\ n', $ op));' $ op '- массив. – Bangline

0

Вы пробовали Exec() вместо системы()? См. here для обсуждения проблем с PHP и ffmpeg, а также метода, использующего proc_open().

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