Ubuntu14.04下安装Gstreamer以测试UVC H264 Camera
来源:互联网 发布:淘宝懒人软件靠谱么 编辑:程序博客网 时间:2024/06/05 10:49
Ubuntu14.04下安装Gstreamer以测试UVC H264 Camera
最近调试 UVC H264 Camera,需要在Ubuntu下测试摄像头,所以借助gstreamer来实现。
gtreamer 是一个基于glib库(目前最新版本需要glib2.0)来构建流媒体应用的编程框架,其目标是要简化音/视频应用程序的开发,目前已经能够被用来处理 像 MP3、Ogg、MPEG1、MPEG2、AVI、Quicktime 等多种格式的多媒体数据。
一、安装依赖库:
sudo apt-get install bison flex zlib1g yasm
二、下载安装包:
1、gstreamer-1.3.1.tar.xz
http://gstreamer.freedesktop.org/src/gstreamer/2、gst-plugins-base-1.3.1.tar.xz
http://gstreamer.freedesktop.org/src/gst-plugins-base/3、gst-plugins-good-1.3.1.tar.xz
http://gstreamer.freedesktop.org/src/gst-plugins-good4、gst-plugins-ugly-1.3.1.tar.xz
http://gstreamer.freedesktop.org/src/gst-plugins-ugly/
5、gst-plugins-bad-1.3.1.tar.xz
https://gstreamer.freedesktop.org/src/gst-plugins-bad/gst-plugins-bad-1.3.1.tar.xz
使用插件avdec_h264需要安装gst-ffmpeg(gst-ffmpeg版本V1.0之后改名为gst-libav),安装gst-ffmpeg需要安装last_x264.tar.bz2
6、last_x264.tar.bz2
https://pan.baidu.com/share/link?shareid=2659340460&uk=4027341910&fid=588638103197893
7、gst-libav-1.3.1.tar.xz
http://gstreamer.freedesktop.org/data/src/gst-libav/
三、安装步骤
安装注意事项:
gst-plugins-good-1.3.1依赖于gst-plugins-base-1.3.1,所以先安装gst-plugins-good-1.3.1再安装gst-plugins-base-1.3.1。
1、安装gstreamer-1.3.1
xz -d gstreamer-1.3.1.tar.xz
tar xvf gstreamer-1.3.1.tar
cd gstreamer-1.3.1
./configure //默认安装到/usr/local目录下;如果自定义目录,使用 --prefix=绝对路径;
make
sudo make install
xz -d gst-plugins-base-1.3.1.tar.xz
tar xvf gst-plugins-base-1.3.1.tar
cd gst-plugins-base-1.3.1
./configure //同上一致
make
sudo make install
xz -d gst-plugins-good-1.3.1.tar.xz
tar xvf gst-plugins-good-1.3.1.tar
cd gst-plugins-good-1.3.1
./configure //同上一致
make
sudo make install
xz -d gst-plugins-ugly-1.3.1.tar.xz
tar xvf gst-plugins-ugly-1.3.1.tar
cd gst-plugins-ugly-1.3.1
./configure //同上一致
make
sudo make install
5、安装gst-plugins-bad-1.3.1
xz -d gst-plugins-bad-1.3.1.tar.xz
tar xvf gst-plugins-bad-1.3.1.tar
cd gst-plugins-bad-1.3.1
./configure //同上一致
make
sudo make install
6、安装last_x264
xz -d last_x264.tar.xz
tar xvf last_x264.tar
cd last_x264
./configure //同上一致
make
sudo make install
6、安装gst-libav-1.3.1
xz -d gst-libav-1.3.1.tar.xz
tar xvf gst-libav-1.3.1.tar
cd gst-libav-1.3.1
./configure //同上一致
make
sudo make install
四、运行测试
插件介绍:
1、v4l2src:视频采集
2、ximagesink和xvimagesink
两者都是用来显示视频图像的sink插件,但支持的格式不同。ximagesink支持rgb格式,不支持yuv格式;xvimagesink支持yuv等多种格式。
下面开始测试:
(1)、gst-launch-1.0 v4l2src ! xvimagesink
采集视屏并显示,一般情况下是不会出错的。(OK:执行命令后会弹出一个界面卡住)
(2)、gst-launch-1.0 --gst-debug-level=4 -vvv v4l2src device=/dev/video0 ! video/x-h264, width=1920, height=1080, framerate=30/1 ! h264parse ! filesink location="test.264"
从UVC摄像头接收H264码流, 将H264码流解析出来并保存到"test.264"文件中(H264格式)(OK:保存成功,可以播放)
--gst-debug-level=4:打印log,数字(4)代表级别
device=/dev/video0:指定设备节点,默认是/dev/video0
video/x-h264, width=1920, height=1080, framerate=30/1:指定采集的数据格式(数据格式、像素和帧率)。video/x-h264:格式过滤插件,限制pipeline中数据流的格式(如果不限制格式,则整个pipeline中的各个插件会自动协商出一个最合适的数据格式)。
h264parse:解析H264数据
filesink location="test.264": 保存为 test.264 文件
(3)、gst-launch-1.0 --gst-debug-level=4 -vvv v4l2src device=/dev/video0 ! video/x-h264, width=1920, height=1080, framerate=30/1 ! h264parse ! avdec_h264 ! filesink location="test.yuv"
从UVC摄像头接收H264码流, 将H264码流解析出来再进行解码,解码成YUV格式数据后保存到“test.yuv”文件中(YUV格式)(OK:保存成功,可以播放)
avdec_h264:解码H264数据,解码后为yuv格式。
(4)、gst-launch-1.0 --gst-debug-level=4 -vvv v4l2src device=/dev/video0 ! video/x-h264, width=1920, height=1080, framerate=30/1 ! h264parse ! avdec_h264 ! xvimagesink
从UVC摄像头接收H264码流, 将H264码流解析出来再进行解码,解码成YUV格式数据后输出显示(失败,加上颜色空间转换后就OK了,如下(5)所示)
(5)、gst-launch-1.0 --gst-debug-level=4 -vvv v4l2src device=/dev/video0 ! video/x-h264, width=1920, height=1080, framerate=30/1 ! h264parse ! avdec_h264 ! videoconvert ! xvimagesink
从UVC摄像头接收H264码流, 将H264码流解析出来再进行解码,解码成YUV格式数据后输出显示(OK:正常显示)
videoconvert:做颜色空间转换
五、运行错误及解决办法:
1、使用gstreamer-0.10 或 gstreamer-0.11 版本时出现如下问题:
$ gst-launch-0.10 v4l2src ! xvimagesink
Caught SIGSEGV accessing address 0x48
Spinning. Please run 'gdb gst-launch 13362' to continue debugging, Ctrl-C to quit, or Ctrl-\ to dump core.
解决办法:换成gstreamer-1.0版本就正常了。
2、缺少uvch264src插件
$ gst-launch-1.0 uvch264src ! xvimagesink
WARNING: erroneous pipeline: no element "uvch264src"
解决办法:
gst-plugins-bad-1.3.1/sys/uvch264目录下是uvch264src插件的代码(旧版本没有),进去发现没有编译。执行./configure后发现配置信息log里存在如下信息:
configure: *** checking feature: UVC H264 ***
configure: *** for plug-ins: uvch264 ***
checking linux/uvcvideo.h usability... yes
checking linux/uvcvideo.h presence... yes
checking for linux/uvcvideo.h... yes
checking for GST_VIDEO... yes
checking for G_UDEV... no
checking for LIBUSB... no
configure: *** These plugins will NOT be built: uvch264
no:说明缺少该库,导致h264插件无法安装,因此需要手动安装:sudo apt-get install libusb-dev libgudev-1.0-dev,然后重新编译gst-plugins-bad-1.3.1。
再次执行./configure后变成:
configure: *** checking feature: UVC H264 ***
configure: *** for plug-ins: uvch264 ***
checking linux/uvcvideo.h usability... yes
checking linux/uvcvideo.h presence... yes
checking for linux/uvcvideo.h... yes
checking for GST_VIDEO... yes
checking for G_UDEV... yes
checking for LIBUSB... yes
configure: *** These plugins will be built: uvch264
说明h264插件已正确安装
3、缺少avdec_h264插件
# gst-launch-1.0 v4l2src device=/dev/video0 ! video/x-h264, width=1920, height=1080, framerate=30/1 ! h264parse ! avdec_h264 ! filesink location="test.yuv"WARNING: erroneous pipeline: no element "uvch264src"
解决办法:
安装gst-libav-1.3.1.tar.xz。
阅读全文
0 0
- Ubuntu14.04下安装Gstreamer以测试UVC H264 Camera
- ubuntu14.04安装GStreamer插件
- ubuntu14安装gstreamer[转]
- GStreamer部署-Linux(ubuntu14.04)(已测试)
- SDL2.0在Ubuntu14.04下的安装及测试
- ubuntu14.04下安装rubinius测试原生线程
- win10测试版下vmware虚拟机安装ubuntu14.04
- Android Studio在Ubuntu14.04下的安装与测试
- Ubuntu14.04下maven3.3.9的安装与测试
- Ubuntu14下安装测试keepalived_20151110_莫小贝
- linux系统下从源码安装FFmpeg、h264 、libfaac 在power8平台,rhel7.0 或者ubuntu14.04
- gstreamer的安装与测试
- USB UVC Camera DEBUG
- i283识别uvc camera
- USB Camera UVC
- linux uvc camera driver
- Ubuntu14.04下安装JDK8
- Ubuntu14.04下JDK安装
- java面试算法之快速排序
- 502. IPO
- Android面试总结
- Android中bindService的使用及Service生命周期
- codevs 1078 最小生成树 解题报告
- Ubuntu14.04下安装Gstreamer以测试UVC H264 Camera
- 2017ssm整合pom.xml依赖
- 【51Nod1476】括号序列的最小代价
- HDU
- Laravel
- Mybatis-generatior插件自动生成mapper文件
- 自制的轨迹球(鼠标)按键异常问题
- Spring MVC--11.文件上传
- Ubuntu云服务器搭建J2EE环境