Lighttpd + mod_flv_streaming + mod_secdownload = свой youtube
В данной статье будет рассказано как создать свой сервер потокового видео на основе FLV(Flash Video) и антилич системы (для пользователя будет генерироватся уникальная ссылка причем средствами веб сервера) + как и чем кодировать видео. Описание софта необходимого для реализации.
- Lighttpd - быстрый и легковесный сервер
- mencoder - универсальный кодировщик видео(входит в состав плеера mplayer)
- FLVScrubber - флеш плеер для встраивания в веб страницы
- FLVtool2 - программа для занесения мета-данных в видеофайл
- Php - не нуждается в представлении ;)
Приступим. Устанавливаем софт.
apt-get install mplayer mencoder lighttpd ruby
Для начала настроим веб сервер.
nano /etc/lighttpd/lighttpd.conf
Раскоментируем модуль mod_flv_streaming и mod_secdownload Добавляем строчки
flv-streaming.extensions = ( ".flv" )
Теперь перейдем к настройке антилич системы (mod_secdownload) Секретное слово которое будет использоватся при генерации уникальных ссылок.
secdownload.secret = "very-secret-word"
место где будут хранится файлы(!!Эта директория не должна быть доступна для веб сервера!!)
secdownload.document-root = "/home/smit/videos/"
Префикс который будет использоватся в ссылке (Например: http://site.ru/videos/)
secdownload.uri-prefix = "/videos/"
Время (в секундах) в течении которого ссылка будет действительна.
secdownload.timeout = 120
На этом настройка завершена. переходим в веб директорию. если вы ничего не меняли то это будет
cd /var/www/
В нее скачиваем FLVScrubber
wget http://topfstedt.de/FLVScrubber3/FLVScrubber.swf
теперь нам нужно написать скрипт который бедт генерировать ссылку на закачку файла и выдавать эту ссылку в поток. Файл лежит в аттаче. Закидываем файл в директорию видимую веб-сервером. Теперь нам осталось только перекодировать файл и положить его в директорию указанную в конфиге mod_secdownload. Установим Flvtool2. Для этого нам понадобится интерпретатор руби. скачиваем в любую директорию. и распаковываем.
wget http://rubyforge.org/frs/download.php/17497/flvtool2-1.0.6.tgz
ruby setup.rb config
ruby setup.rb make
ruby setup.rb install
Теперь можно использовать мой небольшой скрипт на перле. Который будет перекодировать с помошью mencoder все файлы в директории в flv формат а исходные файлы удалять.
#!/usr/bin/perl
my $scandir = "/home/smit/Desktop/vid/";
my $ok = opendir $scanned_dir, $scandir;
while (my $filename = readdir $scanned_dir){
if($filename ne '.' && $filename ne '..' && $filename ne 'scan.pl' && $filename ne 'scan.pl~'){
push @res, $filename;
}
};
while ($filename2 = shift @res){
system (`mencoder $filename2 -o $filename2.flv -of lavf -oac mp3lame -aid 1 -lameopts abr:br=56 -srate 22050 -ovc lavc -lavfopts i_certify_that_my_video_stream_does_not_use_b_frames -lavcopts vcodec=flv:vbitrate=650:mbd=2:mv0:trell:v4mv:cbp:last_pred=3 -vf scale=320:240`);
system (`rm $filename2`);
system (`flvtool2 -UP $filename2.flv`);
}
Теперь Вам останется для теста положить в директорию secdownload.document-root файл с название video.flv и открыть в своем браузере index.php . использованые материалы:
- http://ww.google.ru и множество сайтов
(С) Smit easylinux.ru при перепечатке материала ссылка на данный блог обязательна ;) Возможны изменения или дополнения в статье.
Комментарии:
-
руководство хорошее, только файла про кттрый говорится нет: "теперь нам нужно написать скрипт который бедт генерировать ссылку на закачку файла и выдавать эту ссылку в поток. Файл лежит в аттаче."
Пожалуйста войдите или зарегистрируйтесь чтобы оставлять комментарии.