【ARM-Linux开发】Gstreamer+QT+摄像头 编程总结
来源:互联网 发布:阿里云服务器https解析 编辑:程序博客网 时间:2024/06/03 19:49
1,gstreamer开发手册,gstreamer官网(这些都不用说了吧)
2,gst-launch的用法,这也不用说了吧。(白菜,鸡蛋,西红柿,砖头,鼠标……..)
3,http://blog.chinaunix.net/u/6646/showart_164960.html
lqplayer--基于gstreamer和qt的Linux下的简单播放器。
实现了基于QT+GST的一个播放器。我下载源码后编译出现了几个BUG,如下:
(1),源码编译不通过,media.cpp下有个地方大概是第54行,g_free(tag_list);,把这个地方注释掉,资源没有申请到还free,当然出错了。(此BUG花了我几十分钟的时间)
(2),界面上的按钮都不能使用,pthread_create(&tid,NULL, cb_run_loop, this);这句要注释掉,我们的主循环使用的是QT的主循环,这个就不必了吧,要不就进GST的死循环了。(这个小BUG花了我某个星期六的一个清晨)
在这里还要说一下快放和慢放的问题:
gint64 value = m_frontend->sliderTiming->value();
m_speed = m_speed+1;
gst_element_seek (m_pipeline, m_speed, GST_FORMAT_TIME,GST_SEEK_FLAG_FLUSH,
GST_SEEK_TYPE_SET,value * GST_MSECOND*1000 ,
GST_SEEK_TYPE_SET,GST_CLOCK_TIME_NONE);
当m_speed为负值时可实现倒放,但是不稳定,仅几秒钟就会出现GST_MESSAGE_EOS。
当m_speed为负值时,我这样实现
gst_element_seek (m_pipeline, m_speed,GST_FORMAT_TIME, GST_SEEK_FLAG_FLUSH,
GST_SEEK_TYPE_SET,GST_CLOCK_TIME_NONE ,
GST_SEEK_TYPE_SET, value* GST_MSECOND*1000);
无非就是调了个位置,效果好了许多,不妨试一下。(为啥呢,我也不知道,此BUG花了我三四天的时间)
4,http://www.pierrox.net/dvr/releases/dvr-3.99.4.tar.bz2
基于QT3的,实现了GST的采集编码,并保存为avi文件。总感觉这东西写的有些地方让人不爽,又说不出是哪里来。
5,http://blog.chinaunix.net/u3/94516/showart_2269637.html
GStreamer发送视频/音频流至服务器端并播放、保存。
Client实现了gstreamer视频文件的RTP发送,写个vlc的配置文件,使用vlc打开可以在网络上进行观看(vlc的使用和配置文件使用可以从网上搜一下,还是比较多的),效果还不错.源码实现时稍显繁琐。Decodebin的连接要注意一下。还有就是gstrtpbin的连接要仔细看一下,刚开始感觉有些麻烦,错误了好几次。后来才明了了。(此功能的源码实现花了我一整天的时间,早9-晚11)
Server端,试了,没成功,后来就没仔细看。
6,http://www.since1985i.com/tag/gstreamer
Gstreamer实现摄像头采集并显示。不过是命令行下的,相对上面RTP网络的例子来说,这个用源码实现可就是小case了吧。同样结合上面RTP传输的例子,也同样使用vlc来播放,就可以实现网络摄像头。(哇塞,网络摄像头耶!远程监控耶!摄像头采集花了我两个月的时间吧,当时还年轻,后来发现是摄像头的问题,当然,这个也算是BUG,总结经验就是十几块的摄像头是靠不住的)
总结:上面有了摄像头采集保存的例子,有利用QT+GST实现播放器的例子,有RTP传输的例子,这样就可以实现用QT做界面,Gstreamer做后台的集采集编码保存,还有本地视频回放,网络视频监控于一体的DVR软件了。嗯,功能还挺全的。有意思吧~~
结束语:向以上几位哥们儿致敬。刚开始做民工,有你们的分享我很庆幸。
from: http://blog.csdn.net/lg1259156776/article/details/53413877
- 【ARM-Linux开发】Gstreamer+QT+摄像头 编程总结
- 【ARM-Linux开发】Gstreamer+QT+摄像头 编程总结
- Gstreamer+QT+摄像头 编程总结
- 【ARM-Linux开发】TI 关于Gstreamer使用的几个参考
- QT编程ARM下摄像头无法使用怎么办
- qt creator开发arm linux
- 【miscellaneous】【ARM-Linux开发】ARM平台基于嵌入式Linux Gstreamer 使用
- 转:arm linux QT 程序开发流程
- LINUX下QT For ARM开发环境
- 配置arm linux Qt开发环境
- arm linux QT 程序开发流程
- 详解 Arm linux QT 程序开发流程
- 在arm linux QT开发流程
- 【Linux开发】【Qt开发】ARM QT移植详细步骤教程
- ARM平台基于嵌入式Linux Gstreamer 使用
- 【ARM-Linux开发】gstreamer教程及在DM3730上的应用
- 【ARM-Linux开发】ARM板卡上QT显示中文
- GStreamer 简化 Linux 多媒体开发
- iOS中的单例模式
- MainFragment
- 高速缓存简析
- spring 全部jar包解释与用途
- LeetCode-243:Shortest Word Distance (单词最短距离)
- 【ARM-Linux开发】Gstreamer+QT+摄像头 编程总结
- 剑指offer 41 数组中只出现一次的数字
- java实现多文件上传至本地服务器
- 工作中遇到的技术问题
- C++内存动态管理
- 一点忧虑
- shp文件数据导入数据库
- oderby排序
- jsp获取页面集合值