Консультация № 158388
21.01.2009, 21:46
0.00 руб.
0 2 2
Здравствуйте, уважаемые эксперты.
У меня задача - дать возможность администратору сайта добавлять на сайт видео-ролики, а пользователям их, соответственно, просматривать.
С просмотром понятно, с собственно закачкой тоже, но... На сайте видео должно храниться в формате flv, у админа оно может быть в других форматах. Существует ли возможность программно, на сервере обрабатывать видео, конвертируя его в нужный формат? Может быть, есть готовые скрипты или какие-то.. библиотеки?
Заранее спасибо.

Обсуждение

Неизвестный
21.01.2009, 23:06
общий
это ответ
Здравствуйте, Irisro!
Я очень сомневаюсь, что эта задача подходит для PHP. Ради интереса сходил на сайт PHP - среди стандартных модулей PHP таких модулей нет, среди модулей PECL тоже. Единственная возможность как-то заставить PHP работать с видео - это лезть непосредственно в двоичный код и парсить его практически вручную. Но задача это не то, что не из легких - из сложнейших!

Существует какой-то другой способ обработки. Просмотр можно организовать с помощью FLASH - я не специалист по FLASH, поэтому подсказать вряд ли смогу, а конвертер надо искать в зависимости от того, какая система установлена на сервере, на котором Ваш сайт базируется. Соответственно, при загрузке видео на сервер, надо запускать конвертер и конвертировать видяшку Вашу. То есть, вывод о том, как конвертировать, так и выплыл - надо установить на сервере такой конвертер и запускать его, как системную программу. Но это тоже непросто все... Хотя и проще, чем лазить по байт-кодуВсе упирается в наличие самой программы под конкретную ОС.

С уважением, Товарищ Бородин
Неизвестный
22.01.2009, 11:20
общий
это ответ
Здравствуйте, Irisro!

Для этого лучше всего воспользоваться сторонними утилитами. Наиболее простой вариант - выполнение их в командной строке (например, через exec).
Пример команды:

mencoder 1.mpg -o 1.flv -of lavf -oac mp3lame -lameopts abr:br=56 -ovc lavc -lavcopts vcodec=flv:vbitrate=768:mbd=2:mv0:trell:v4mv:cbp:last_pred=3 -srate 22050 -vf scale=512:384:1 -ofps 24
или
/usr/local/bin/ffmpeg -i $1 -qmax 5 -s 320x240 -b 240kb -ab 56kb -ar 22050 -ac 1 -g 240 -y $2.flv >/dev/null 2>&1

В общем, тут используются утилиты mencoder (дополнительный пакет в системах *NIX) и ffmpeg. Параметры надо уточнять в зависимости от утилиты, качества видео и т.д. Чтобы данный способ работал, необходим доступ к функции exec() или подобной ей (может быть закрыто на сервере). Наличие утилит лучше уточнить у хостера.

Еще вариант - использование сторонних сервисов. Это может быть сервис на другом сайте (платный/бесплатный, как повезет), либо приложение, устанавливаемое на Вашем сервере (тут может возникнуть вопрос в производительности и загрузке сервера вообще). В интернете нашел полезную статью с информацией по этому поводу.
Форма ответа