В Сети развелось довольно много видеохостингов типа youtube. Вот и одному провинциальному провайдеру захотелось у себя сделать такую вещь. С какой-то стороны — правильно, ибо почти у всех провайдеров в небольших городах толстые внутренние каналы (10-100-1000 мегабит) и тонкие внешние (5-10-20 мегабит), так что надо стремиться к тому, чтобы внутри было как можно больше популярных ресурсов — хотя бы для оптимизации загрузки внешнего канала, если не для привлечения клиентов.
Задача поставлена, сумма оговорена — надо делать. Вариант «писать свое» отметается сразу — долго, нудно, да и программистом я себя не считаю. Хотя, если хочется, то никто не мешает: проигрывание клипов — JW Player, загрузка файлов — на любимом языке реализуется без вопросов, перекодирование видео — зависит от выбранной платформы (mencoder есть где угодно). Но я не люблю изобретать велосипеды, а предпочитаю использовать готовые решения, так что пошел в гугл. Поиск принес несколько вариантов, как бесплатных, так и платных (от 10 евро и выше), но для начала решил попробовать самый популярный из бесплатных вариантов — phpmotion.
Машинку под сам сервер пока поставил не особо мощную, но решил что на первое время хватит (Core 2 Quad Q9400, 4GB RAM, 250GB в RAID1 под систему и 4*1TB под данные). Поскольку скрипт предпочитает работать под линуксом, был поставлен линукс (вопрос установки windows рассматривался, но в силу предпочтений скрипта был оставлен линукс).
Системные требования к ПО сервера:
— PHP 4.3 and above (including support of CLI)
— MySQL database server
— LAME MP3 Encoder
— Libogg + Libvorbis
— Mencoder and also Mplayer
— FFMpeg-PHP
— GD Library 2 or higher
— CGI-BIN
— Be able to run background processes
Настройки PHP:
— open_basedir = (no value)
— upload_max_filesize = 100M
— post_max_size = 100M
— max_execution_time = 1500
— session.gc_maxlifetime = 14000
— safe_mode = off
— Thread saftery = disabled
— enable_dl = On
В принципе, может работать на некоторых хостингах, но для полного счастья лучше отдельный сервер заиметь, меньше проблем будет.
Все требуемые программы есть почти в любом дистрибутиве линукса. Если нету, можно скачать и поставить. В моем случае линуксом являлся Debian 5.0, для некоторых вещей (lame, еще что-то) пришлось подключать дополнительный репозиторий debian-multimedia.
На текущий момент существует две версии phpmotion, v2 и v3 (недавно присвоен статус «stable»). Сперва я поставил v2 (на тот момент v3 еще была бетой), потом v3. Остался на v3 — несколько более глючная, но функциональность окупает. Баги фиксятся, есть форум поддержки, багтрекер. Новые билды выходят где-то раз в 10 дней. С последней версией довели до ума поддержку нелатинских символов (русских, по крайней мере, с иероглифами, говорят, до сих пор некоторые проблемы).
Скачать можно тут: phpmotion.com/content/view/1/180 (пройти по ссылка download, требуется регистрация на форуме). Ну или если лень регистрироваться, то тыц ;)
Изредка они на своем форуме банят российские IP (хотя саппорт при этом кричит «Ваш IP не находится в банлистах»), потому приходится ходить туда через anonymouse.org
Апдейты живут здесь: wiki.phpmotion.com/Updates. Имеет смысл туда заглядывать почаще — обновления не всегда отмечаются на форуме.
Установка несложная: wiki.phpmotion.com/InstallingV3
1) Завести БД, юзера и пароль
2) Скачать скрипт и закинуть его на сервер. Поределенные папки надо загружать как binary, но я предпочел распаковать архив прямо на сервере.
3) 755 на /cgi-bin с подпапками
4) Зайти на www.yourdomain.com/setup и следовать инструкциям. Предложат выставить права еще на несколько папок, проверят наличие нужных программ и т.п.
5) По окончании установки удалить папку /setup
Возможная проблема: скрипт не опенсорсный, он закодирован, запускается через лоадер, который работает как PHP extension. Если не будет запускаться, то надо его подсунуть в папку с расширениями php на сервер. Взять в /phpshield нужный бинарник и положить его в extension_dir, указанный в php.ini. В том же дебиане умолчальный extension_dir = "./", из-за чего я пару часов игрался с разными версиями лоадера.
Возможная проблема 2: ошибка скрипта при аплоаде файлов. Обычно — проблемы с переносами строки в перловых скриптах. dos2unix /cgi-bin/*.pl
Настройки: большая часть живет по адресу www.yourdomain.com/siteadmin, но часть (максимальный размер файла, допустимые типы файлов) — в pm-файлах в папке /cgi-bin — отдельно для видео и для аудио.
Русской версии (да и прочих национальных) официально пока нету, так что каждый переводит сам для себя. Поддержки языковых файлов пока нет, так что приходится менять /lang/english.php
На текущий момент у меня сайт находится в статусе публичного тестирования, потихоньку перевожу интерфейс на русский. В целом, юзеров устраивает. Бывают какие-то непонятные проблемы с некоторыми файлами, из 160 файлов 4 штуки не перекодировались вообще, пара-тройка — после второй загрузки.
По моему сайту походить не дам, он во внутренней сети провайдера. Но возможности и (умолчальный) внешний вид можно глянуть тут: v3beta.phpmotion.net
Будут вопросы — задавайте.
Задача поставлена, сумма оговорена — надо делать. Вариант «писать свое» отметается сразу — долго, нудно, да и программистом я себя не считаю. Хотя, если хочется, то никто не мешает: проигрывание клипов — JW Player, загрузка файлов — на любимом языке реализуется без вопросов, перекодирование видео — зависит от выбранной платформы (mencoder есть где угодно). Но я не люблю изобретать велосипеды, а предпочитаю использовать готовые решения, так что пошел в гугл. Поиск принес несколько вариантов, как бесплатных, так и платных (от 10 евро и выше), но для начала решил попробовать самый популярный из бесплатных вариантов — phpmotion.
Машинку под сам сервер пока поставил не особо мощную, но решил что на первое время хватит (Core 2 Quad Q9400, 4GB RAM, 250GB в RAID1 под систему и 4*1TB под данные). Поскольку скрипт предпочитает работать под линуксом, был поставлен линукс (вопрос установки windows рассматривался, но в силу предпочтений скрипта был оставлен линукс).
Системные требования к ПО сервера:
— PHP 4.3 and above (including support of CLI)
— MySQL database server
— LAME MP3 Encoder
— Libogg + Libvorbis
— Mencoder and also Mplayer
— FFMpeg-PHP
— GD Library 2 or higher
— CGI-BIN
— Be able to run background processes
Настройки PHP:
— open_basedir = (no value)
— upload_max_filesize = 100M
— post_max_size = 100M
— max_execution_time = 1500
— session.gc_maxlifetime = 14000
— safe_mode = off
— Thread saftery = disabled
— enable_dl = On
В принципе, может работать на некоторых хостингах, но для полного счастья лучше отдельный сервер заиметь, меньше проблем будет.
Все требуемые программы есть почти в любом дистрибутиве линукса. Если нету, можно скачать и поставить. В моем случае линуксом являлся Debian 5.0, для некоторых вещей (lame, еще что-то) пришлось подключать дополнительный репозиторий debian-multimedia.
На текущий момент существует две версии phpmotion, v2 и v3 (недавно присвоен статус «stable»). Сперва я поставил v2 (на тот момент v3 еще была бетой), потом v3. Остался на v3 — несколько более глючная, но функциональность окупает. Баги фиксятся, есть форум поддержки, багтрекер. Новые билды выходят где-то раз в 10 дней. С последней версией довели до ума поддержку нелатинских символов (русских, по крайней мере, с иероглифами, говорят, до сих пор некоторые проблемы).
Скачать можно тут: phpmotion.com/content/view/1/180 (пройти по ссылка download, требуется регистрация на форуме). Ну или если лень регистрироваться, то тыц ;)
Изредка они на своем форуме банят российские IP (хотя саппорт при этом кричит «Ваш IP не находится в банлистах»), потому приходится ходить туда через anonymouse.org
Апдейты живут здесь: wiki.phpmotion.com/Updates. Имеет смысл туда заглядывать почаще — обновления не всегда отмечаются на форуме.
Установка несложная: wiki.phpmotion.com/InstallingV3
1) Завести БД, юзера и пароль
2) Скачать скрипт и закинуть его на сервер. Поределенные папки надо загружать как binary, но я предпочел распаковать архив прямо на сервере.
3) 755 на /cgi-bin с подпапками
4) Зайти на www.yourdomain.com/setup и следовать инструкциям. Предложат выставить права еще на несколько папок, проверят наличие нужных программ и т.п.
5) По окончании установки удалить папку /setup
Возможная проблема: скрипт не опенсорсный, он закодирован, запускается через лоадер, который работает как PHP extension. Если не будет запускаться, то надо его подсунуть в папку с расширениями php на сервер. Взять в /phpshield нужный бинарник и положить его в extension_dir, указанный в php.ini. В том же дебиане умолчальный extension_dir = "./", из-за чего я пару часов игрался с разными версиями лоадера.
Возможная проблема 2: ошибка скрипта при аплоаде файлов. Обычно — проблемы с переносами строки в перловых скриптах. dos2unix /cgi-bin/*.pl
Настройки: большая часть живет по адресу www.yourdomain.com/siteadmin, но часть (максимальный размер файла, допустимые типы файлов) — в pm-файлах в папке /cgi-bin — отдельно для видео и для аудио.
Русской версии (да и прочих национальных) официально пока нету, так что каждый переводит сам для себя. Поддержки языковых файлов пока нет, так что приходится менять /lang/english.php
На текущий момент у меня сайт находится в статусе публичного тестирования, потихоньку перевожу интерфейс на русский. В целом, юзеров устраивает. Бывают какие-то непонятные проблемы с некоторыми файлами, из 160 файлов 4 штуки не перекодировались вообще, пара-тройка — после второй загрузки.
По моему сайту походить не дам, он во внутренней сети провайдера. Но возможности и (умолчальный) внешний вид можно глянуть тут: v3beta.phpmotion.net
Будут вопросы — задавайте.