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 при перепечатке материала ссылка на данный блог обязательна ;) Возможны изменения или дополнения в статье.

Размещено: 26.02.2008 14:19 Всего комментариев: 1
Автор: Smit Блог: Smit's blog
Тэги: lighttpd , mod_flv_streaming , mod_secdownload , сервер

Комментарии:

  • Автор: c4corpsys Размещено: 28.08.2011 18:07
    руководство хорошее, только файла про кттрый говорится нет: "теперь нам нужно написать скрипт который бедт генерировать ссылку на закачку файла и выдавать эту ссылку в поток. Файл лежит в аттаче."

Пожалуйста войдите или зарегистрируйтесь чтобы оставлять комментарии.