使用Lighttpd和FlowPlayer(Debian Etch)构建您自己的视频社区
版本1.0
作者:Falko Timme
本文介绍如何使用lighttpd及其mod_flv_streaming
模块(用于流媒体.flv
视频,大多数主要视频社区(如YouTube )使用的格式)及其mod_secdownload
模块(用于防止视频的热链接)构建自己的视频社区。 我将使用FlowPlayer作为视频播放器,一个免费的Flash视频播放器,支持lighttpd的mod_flv_streaming
模块。 我还将展示如何将视频( .mp4 .mov .mpg .3gp .mpeg .wmv .avi
)编码为Adobe Flash支持的FLV格式。
本文档不附带任何形式的保证! 我想说,这不是设立这样一个制度的唯一办法。 实现这一目标有很多方法,但这是我所采取的方式。 我不会保证这将为您工作!
1初步说明
在本教程中,我使用IP地址为192.168.0.100
的hostname server1.example.com
。 这些设置可能会有所不同,因此您必须在适当的情况下更换它们。
我们需要一个带有PHP支持的lighttpd安装,如本教程所示: 在Debian Etch上安装带有PHP5和MySQL支持的Lighttpd 。 我不会在这里覆盖,所以请参考本教程,如果您还没有设置lighttpd与PHP支持。
2安装LAME
LAME是MPEG音频三层(MP3)编码器。 我们需要这样做,以便我们的视频在转换为FLV时不会失去声音。 不幸的是,LAME不能作为Debian的Debian Etch软件包使用,所以我们必须手动编译。 首先,我们安装我们编译所需的工具:
apt-get install build-essential
然后,我们转到/ tmp目录
并从SourceForge下载最新的LAME版本,例如:
cd /tmp
wget http://mesh.dl.sourceforge.net/sourceforge/lame/lame-3.97.tar.gz
然后我们解压缩并编译LAME:
tar xvfz lame-3.97.tar.gz
cd lame-3.97
./configure --enable-shared --prefix=/usr
make
make install
3安装ffmpeg
我们将使用ffmpeg将我们的视频文件转换为FLV格式。 首先,我们安装ffmpeg和一些这样的插件:
apt-get install ffmpeg libavcodec0d libavformat0d libavifile-0.7c2 libpostproc0d libasound2-plugins avifile-player avifile-utils avifile-mad-plugin avifile-mjpeg-plugin avifile-vorbis-plugin
Debian的ffmpeg包的问题是MP3编码不支持,这意味着我们的FLV视频在转换后会失去声音。 因此,我们将重新编译Debian的ffmpeg源码包与mp3lame支持(这就是为什么我们必须在前一章安装LAME)。
首先我们将ffmpeg源码包下载到/ usr / src中
:
cd /usr/src/
apt-get source ffmpeg
然后我们更改为ffmpeg源目录:
cd ffmpeg-0.cvs20060823
并编辑文件debian / rules
。 在该文件的开头,您将找到两个说明
文字。 将配置开关--enable-mp3lame添加
到其中一个并保存文件:
vi debian/rules
[...] confflags += --enable-gpl --enable-pp --enable-pthreads --enable-mp3lame confflags += --enable-vorbis --enable-libogg --enable-a52 --enable-dts --enable-libgsm [...] |
现在我们可以建立我们新的ffmpeg包:
dpkg-buildpackage
dpkg-buildpackage
很可能会抱怨构建新的ffmpeg .deb
包所需的缺少的包。
server1:/usr/src/ffmpeg-0.cvs20060823# dpkg-buildpackage
dpkg-buildpackage: source package is ffmpeg
dpkg-buildpackage: source version is 0.cvs20060823-8
dpkg-buildpackage: source changed by Sam Hocevar (Debian packages) <sam+deb@zoy.org>
dpkg-buildpackage: host architecture i386
dpkg-buildpackage: source version without epoch 0.cvs20060823-8
dpkg-checkbuilddeps: Unmet build dependencies: debhelper (>= 4.0) quilt libogg-dev libvorbis-dev liba52-dev libdts-dev zlib1g-dev libsdl1.2-dev libfreetype6-dev libimlib2-dev texi2html libraw1394-dev libdc1394-13-dev libtheora-dev (>> 0.0.0.alpha4) libgsm1-dev
dpkg-buildpackage: Build dependencies/conflicts unsatisfied; aborting.
dpkg-buildpackage: (Use -d flag to override.)
server1:/usr/src/ffmpeg-0.cvs20060823#
如果您看到这样的错误,请安装丢失的软件包,例如:
apt-get install debhelper quilt libogg-dev libvorbis-dev liba52-dev libdts-dev zlib1g-dev libsdl1.2-dev libfreetype6-dev libimlib2-dev texi2html libraw1394-dev libdc1394-13-dev libtheora-dev libgsm1-dev
之后
再运行dpkg-buildpackage
:
dpkg-buildpackage
dpkg-buildpackage
命令现在应该再次编译ffmpeg并在/ usr / src目录中
创建新的.deb
包(ffmpeg加一些插件)。 这可能需要一些时间,所以请耐心等待。 最后可能会收到关于签名的警告 - 您可以忽略它们。
之后,我们转到/ usr / src
目录并安装我们的新的.deb软件包:
cd ..
dpkg -i *.deb
这就是ffmpeg。
4安装flvtool2
当我们将视频转换为FLV格式时,我们需要添加一些元数据,例如视频的持续时间到FLV文件,以便FlowPlayer可以正确显示视频的长度。 我们可以使用flvtool2添加这个元数据。 flvtool2是用Ruby编写的,所以我们必须首先安装Ruby:
apt-get install ruby
然后我们将最新版本的flvtool2下载到/ tmp目录
,例如:
cd /tmp
wget http://rubyforge.org/frs/download.php/17497/flvtool2-1.0.6.tgz
之后,我们安装它:
tar xvfz flvtool2-1.0.6.tgz
cd flvtool2-1.0.6
ruby setup.rb config
ruby setup.rb setup
ruby setup.rb install