wget http://www.live555.com/liveMedia/public/live555-latest.tar.gz
tar xzf live555-latest.tar.gz
cd live
打开live/testProgs/testOnDemandRTSPServer.cpp,找到“ // A H.264 video elementary stream:”
char const* streamName = "liv0";
char const* inputFileName = "~/test.264";
修改reuseFirstSource的值为True
./genMakefiles linux #注意后面这个参数是根据当前文件夹下config.<后缀>获取得到的make
.安装Yasm:x264需要使用yasm来针对CPU架构进行优化,提高性能。
code:
cd
wget http://www.tortall.net/projects/yasm/releases/yasm-1.2.0.tar.gz
tar xzvf yasm-1.2.0.tar.gz
cd yasm-1.2.0
./configure
make(aptitude checkinstall第一次选n第二次选y)
sudo checkinstall --pkgname=yasm --pkgversion="1.2.0" --backup=no --deldoc=yes --default3.安装x264:下载源代码、编译、安装
code:
cd
git clone git://git.videolan.org/x264
cd x264sudo ./configure --enable-sharedmake
make install
编译zlib
$wget http://www.zlib.net/zlib-1.2.8.tar.gz
$tar -xvzf zlib-1.2.8.tar.gz
$cd zlib-1.2.3.tar.gz
$./configure
$make
$sudo make install
编译ffmpegsudo wget http://ffmpeg.org/releases/ffmpeg-2.8.1.tar.bz2
sudo tar xvjf ffmpeg-2.8.1.tar.bz2
./configure --enable-gpl --enable-libx264 --enable-shared --prefix=/usr/local
make
make install
ffmpeg正常安装后执行ffmpeg时出现如下错误:
ffmpeg: error while loading shared libraries: libavdevice.so.53: cannot open shared object file: No such file or directory
解决办法:
vi /etc/ld.so.conf
加入:/usr/local/lib
执行ldconfig
v4l2-ctl
这是一个纯命令行的工具,因此适用性很强,可以被脚本甚至程序调用对摄像头进行参数的配置。 使用apt-get安装此命令:
sudo apt-get install v4l-utils该命令的完整使用大家可以自行查阅文档。这里例举常用的命令 查看目前所有v4l设备:
v4l2-ctl --list-devices将得到类似如下的输出:
linaro@linaro-alip:~$ v4l2-ctl --list-devices Altair USB2.0 Camera (usb-sw-ehci-1.1): /dev/video0列出摄像头的属性:
v4l2-ctl –a –d /dev/video0(如果摄像头不是/dev/video0这个设备,请更改上述命令) 将得到指定摄像头的各类信息,如下列输出:
linaro@linaro-alip:/usr/lib/vino$ v4l2-ctl --all -d /dev/video0 Driver Info (not using libv4l2): Driver name : uvcvideo Card type : Altair USB2.0 Camera Bus info : usb-sw-ehci-1.1 Driver version: 1.1.0 Capabilities : 0x04000001 Video Capture Streaming Format Video Capture: Width/Height : 640/480 Pixel Format : 'YUYV' Field : None Bytes per Line: 1280 Size Image : 614400 Colorspace : SRGB Crop Capability Video Capture: Bounds : Left 0, Top 0, Width 640, Height 480 Default : Left 0, Top 0, Width 640, Height 480 Pixel Aspect: 1/1 Video input : 0 (Camera 1: ok) Streaming Parameters Video Capture: Capabilities : timeperframe Frames per second: 30.000 (30/1) Read buffers : 0可以看到目前我使用的摄像头支持30fps,640x480 YUV2的输出格式。
列出对当前摄像头有效的配置选项:
v4l2-ctl –l -d /dev/video0(如果摄像头不是/dev/video0这个设备,请更改上述命令) 将得到类似如下的输出:
图:所有被当前摄像头所支持的配置选项
这个列表中的出现的项目都是可以设置的,比如上图所示,我目前的摄像头可以进行曝光率(exposure_absolute项目)的调节,在视觉处理里面,曝光率调节会比较多用。因为摄像头默认的自动曝光很多时候会干扰算法运行。
设置某一项摄像头参数 可以对上面提到的配置选项进行设置,这里以设置固定曝光值为-10为例:
v4l2-ctl -c exposure_auto=1 #关闭自动曝光 v4l2-ctl -c exposure_absolute=-10 #设置固定曝光为-10对于其他方面的设置,大家可以按照自身摄像头的情况进行尝试。