Feb
22
Once upon a time… Захотелось на один из проектов прикрутить возможность для посетителей (visitors) просматривать видео файлы не отходя от кассы. My own Youtube. Пацан сказал - пацан сделал.
Что понадобится:
- Flash player,
- Converter,
- Some code,
- Video content,
- немного прямых рук, чтобы правильно несколько раз нажать ctrl+C и ctrl+V.
1. Flash Player. Cобственно, та штуковина, которая и осуществляет проигрывание FLV файлов. Можно написать свой, можно взять готовый. Я использовал этот - Flash Video Player (download).
2. Converter. Тоже есть несколько вариантов, либо использовать десктопные решения (desktop solutions), либо серверные (server side). На мой взгляд удобнее кодировать контент прямо на сервере, следовательно смотрим в сторону:
Теперь когда, все из вышеперечисленного софта стоит на сервере, надо все собрать в кучу и использовать.
#!/usr/bin/perl
# converter.pl
my $dir = $ARGV[0];
my $EXT = $ARGV[1];
my $newdir = time().”/”;
mkdir($newdir) || die;
opendir (DOORDIR, “$dir”);
my @fls = grep { /\.$EXT/ } readdir DOORDIR;
close DOORDIR;
foreach (@fls){
my $f = $_;
my @x = split(/\./, $f);
system (”mencoder $f -o $newdir$x[0]r.flv -of lavf -vf scale=200:150 -oac mp3lame -lameopts abr:br=56 -ovc lavc -lavcopts vcodec=flv:vbitrate=400:mbd=2:mv0:trell:v4mv:cbp:last_pred=3 -lavfopts i_certify_that_my_video_stream_does_not_use_b_frames -srate 22050″);
system (”flvtool2 -Uv $newdir$x[0]r.flv $newdir$x[0].flv”);
system (”ffmpeg -i $newdir$x[0].flv -an -itsoffset 00:00:06 -ss 00:00:01 -t 00:00:01 -r 1 -y $newdir$x[0].%d.jpg”);
system (”rm $newdir$x[0]r.flv”);
}
Работает это следующим образом:
user@server$ perl converter.pl ./ avi
Скрипт перекодирует все AVI файлы из текущей директории и поместит их в сабдиректорию, к примеру из video.avi получится video.flv и video.1.jpg (скриншот 6-й секунды видео файла). Если надо перекодировать mpg, wmv и другие форматы файлов, нужно просто заменить второй аргумент в командной строке.
Теперь все готово, и осталось скомпоновать это и показывать пользователям. Из всех вариантов вставки флеша на страницу я использовал вот этот javascript, который был написан товарищем Bobby van der Sluis (Unobtrusive Flash Objects), одна из его фич, что при таком спобобе эмбеддинга (to embed) в страницу не надо делать лишний клик, для того, чтобы убрать “Click to activate and use this control”.
На словах долго объяснять проще посмотреть исходники этой страницы:
FLV player sample. (Осторожно! Ненормативная лексика.)
Также будет не лишним ознакомиться с readme для флеш плеера его можно найти в архиве, так как там подробно описаны такие полезные фичи:
- проигрывание playlist’ов
- ссылки с роликов
Это все очень (extremely) полезные вещи, при отсутствии которых, вполне можно было бы не писать этот пост, а тихо использовать Youtube и не париться, но в ситуации, когда вебмастер работает с видео контентом для взрослых, не плохо иметь возможность при клике на плеер отсылать юзера в нужное место, к примеру на один из сайтов, принадлежащих Platinum Bucks. В таком случает использование playlist’ов катастрофически необходимо, так как к каждому видео ролику можно назначить свой out link!



о великий гуру
я зделал все точно также
и !!!
о чудо!!!
работаед!!!!
риспект
аллилуйя ) я рад!
заебись, спасибо!