Я использую uBuntu 12.04.3, 32-разрядную ОС на 8-процессорной, 8-ГБ оперативной памяти, 64-разрядную машину Intel Xeon. Я также установил все бэкпорты.
У меня есть проблема, которая съедает мою голову в течение последних 3 дней. Я создал файл play.sh со следующим кодом ...
Код:
#! /bin/sh
vlc -vvv sasural.ts
Где sasural.ts - это видеофайл, который находится под домом и на том же уровне, что и Apache. Я вызываю файл .sh, используя следующий код PHP ...
Код:
shell_exec('play.sh');
Я также пытался использовать оба метода exec () / system () для вызова файла .sh.
Всякий раз, когда я делаю это, я получаю следующее сообщение ...
VLC media player 2.2.0-git Weatherwax Command Line Interface initialized. Type `help' for help. > Shutting down.
play.sh работает, если я выполняю его из командной строки терминала за пределами кода PHP. Я думаю, что я делаю что-то не так, когда я вызываю это изнутри PHP.
Я выполнил следующие задачи ...
Господа,
Я смог решить эту проблему при помощи следующих шагов...
В файле PHP: повторите shell_exec ("sh/var/www/play1.sh");
В play1.sh файле: #!/bin/sh vlc-Idummy/var/www/media.ts - sout '#standard {access=http, mux=ts, dst =:1935/}'
Вызовите файл PHP через браузер, и VLC начнет передавать потоком для портирования 1935
Получить доступ к файлу от клиентского конца...
1) Укажите на VLC или любой медиаплеер к URL + Порт.напр. http://www.something.com:1935 2) клиентский плеер начнет получать файл и воспроизводить его.
Теперь следующий шаг должен включить этот файл по требованию. Отправит, как я сделал это также, так останьтесь настроенными!!
Поблагодарите Вас все, кто помог мне в решении этой проблемы. Я добавил +reps везде, где это было возможно.
В вашем скрипте перед запуском vlc есть строка: export DISPLAY=:0
Это должно запустить его в вашем основном сеансе X, предполагая, что веб-сервер работает в том же окне, что и ваш сеанс X. 112]
Вам также нужно будет что-то делать со звуком, если вам это нужно. Как удаленный сервер ALSA или Pulseaudio.
Сделанный это :)
Это было забавой :D
предпосылки: vlc должен уже работать первым прибыл, первым обслужен, файл должен существовать ниже, настроит это:
mkfifo /tmp/vlcfifo
chmod a+rw /tmp/vlcfifo
tail -f /tmp/vlcfifo | nohup vlc --intf rc &
в php файле:
<?php
passthru('echo "add /path/to/video.avi" | tee /tmp/vlcfifo');
?>
Дайте этому попытку :)