GStreamer 从摄像头获取图像 转264
1、这里有个简单的例子,可以看看GStreamer如何编程的。
2、GStreamer GstAppSink的官方Document,翻译了一下它的描述部分,点击这里。
3、GStreamer GstAppSrc的官方Document,翻译了以下它的描述部分,点击这里。
4、GStreamer中的Padscapabilities
Pads 允许信息进入或者离开一个element,这个Capabilities(简称Caps)就是指定哪些信息可以通过Pad来传输。例如:“RGB视频,尺寸为320*200并且每秒30帧”或者“16位的音频采样,5.1声道,每秒采样44.1k” 甚至可以是类似于mp3/h264之类的压缩格式。
Pads支持多重Capabilities(比如,一个视频的sink可以支持RGB输出或者YUV输出),Capabilites可以指定一个范围而不必须是一个特定值(比如,一个音频sink可以支持从1~48000的采样率)。然而,数据从一个pad流向另一个pad的时候,必须是一个双方都能支持的格式。某一种数据形式是两个pad都能支持的,这样pads的Capabilities就固定下来,这个过程就被称为协商。
作为一个应用开发者,我们通常都是用连接一个个element的方法来建立pipeline的,在这里,你需要了解使用的element的Pad的Caps。
5、Pad模板
Pad是由Pad模板创建的,模板里面会列出一个Pad所有可能的Capabilities。模板对于创建几个相似的Pad是很有帮助的,但也会比较早的判断出两个element是否可以连接:如果两个Pad的模板都不具备共同的子集的话,就没有必要进行更深层的协商了。
Pad模板检查是协商流程的第一步。随着流程的逐步深入,Pad会正式初始化,也会确定他们的Capability(除非协商失败)
6、queue
queue element会创建一个新的线程。通常来说,有多于一个sink element时就需要使用多个线程。这是因为在同步时,sink通常是阻塞起来等待其他的sink都准备好,如果仅仅只有一个线程是如法做到这一点的。
7、tee
tee比较特别但很有用,tee有1个输入pad而没有输出pad,需要有申请,tee才会生成。通过这种方法,输入流可以被复制成多份。和Always Pad比起来,Request Pad因为并非一直存在,所以是不能自动连接element的。
例子:

建立一个如上的pipeline的步骤如下:
1)初始化GStreamer;
2)创建上图中的所有element;
3)创建pipeline;
4)配置element;
5)把element放进pipeline中,然后将可以连接起来的原件连接起来;
(1)app source -> tee (2)audio_queue -> audio_convert -> audio_resample -> audio_sink (3)video_queue ->wave_scope->video_convert->video_sink
6) 手工连接tee->audio_queue和tee->video_queue;
7)设置pipeline状态为PLAYING;
8)监测BUS信号即可。
上诉过程的代码可以参考官方文档:https://gstreamer.freedesktop.org/documentation/tutorials/basic/multithreading-and-pad-availability.html
同时也可以参考《GStreamer讲解.pdf》 P56。
关于上面的第6步,两个参考讲解还有一点不一致,官方文档更简单,需要进一步测试才能确定这两种方式是不是都可行。
GStreamer 从摄像头获取图像 转264的更多相关文章
- 如何使用 OpenCV 打开摄像头获取图像数据?
OpenCV 如何打开摄像头获取图像数据? 代码运行环境:Qt 5.9.1 msvc2015 32bit OpenCV 3.3.0 #include "include/opencv2/ope ...
- ROS 教程之 vision : 用各种摄像头获取图像
可能有很多人想在ROS下学习视觉,先用摄像头获取图像,再用opencv做相应算法处理,可是ROS下图像的采集可不像平常的read一下那么简单,需要借助外部package的使用.而摄像头即可以用笔记本自 ...
- [转]GStreamer资料(摄像头采集,视频保存,远程监控)DVR
http://blog.csdn.net/wzwxiaozheng/archive/2010/12/26/6099397.aspx GStreamer资料整理(包括摄像头采集,视频保存,远程监控,流媒 ...
- 【视频开发】【Live555】摄像头采集,264编码,live555直播
加入 摄像头采集和264编码,再使用live555直播 1.摄像头采集和264编码 将x264改成编码一帧的接口,码流不写入文件而是直接写入内存中(int Encode_frame 函数中). /* ...
- 【ARM-Linux开发】Gstreamer+QT+摄像头 编程总结
1,gstreamer开发手册,gstreamer官网(这些都不用说了吧) 2,gst-launch的用法,这也不用说了吧.(白菜,鸡蛋,西红柿,砖头,鼠标--..) 3,http://blog.ch ...
- android摄像头获取图像——第三弹
相机获取图像的格式问题 android中承认的格式的参考网址为 :http://developer.android.com/reference/android/graphics/ImageFormat ...
- 【视频开发】用GStreamer实现摄像头的采集和保存
GStreamer是流媒体软件的开发框架.可以这样说,在该框架的支持下,你可以非常简单地为很多格式的流媒体写出自已需要的程序. 现在,GStreamer已经内置对MP3.Ogg/Vorbis.MPEG ...
- ROS 使用自带和usb摄像头获取图像
笔记本自带的摄像头的设备号一般为/dev/video0 第一步:安装Webcam 驱动 $ sudo apt-get install git-core $ cd ~/catkin_ws/src $ g ...
- AVFoundation之如何从摄像头获取图像
前言: 最近项目有个需求是对试图对手机密码进行强破解的人进行拍照(通过摄像头截图),因为之前没做过,所以一堆坑.现在就把我的经验都分享出来,希望后来人不用再踏上坑途中. 直接上代码: // 创建会话 ...
随机推荐
- 最长递增子序列问题—LIS
问题:给定一组数 a0,a0,....,an-1. 求该序列的最长递增(递减)序列的长度. 最长递增子序列长度的求法有O(n^2)和O(nlogn)两种算法. 1.复杂度为O(n^2)的算法. 设L[ ...
- MFC中 SDI/MDI框架各部分指针获取方式
VC MFC SDI/MDI框架各部分指针获取方式 整理总结一下,希望能帮助到别人. 获得CWinApp 获得CMainFrame 获得CChildFrame 获得CDocument 获得CV ...
- eclipse中文件文件夹高速定位,打开文件所在文件夹,在资源管理器中查看
viewFile.bat (打开选中的文件获取目录) Explorer/e,/select,%1 viewjava.bat (打开选中的文件名称相应的.java文件) @echo off set ca ...
- 成都传智播客Java/PHP培训就业率高
依据传智播客的数据统计,传智播客的学员有五分之中的一个的能在毕业前找到惬意的工作,一半的学员能在毕业后一个月之内找到惬意的工作,一般在毕业后两个月之内绝大多数同学都能找到惬意的工作.而且传智播客毕业学 ...
- 云数据库 RDS 版怎么创建数据库和账号MySQL 5.7版
若要使用云数据库RDS,您需要在实例中创建数据库和账号.对于MySQL 5.7版本的实例,您需要通过RDS控制台创建一个初始账号,然后可以通过数据管理(DMS)控制台创建和管理数据库.本文将主要介绍在 ...
- VueJS组件之间通过props交互及验证
props 是父组件用来传递数据的一个自定义属性.父组件的数据需要通过 props 把数据传给子组件,子组件需要显式地用 props 选项声明 "prop". 父组件通过props ...
- 【Web API系列教程】3.10 — 实战:处理数据(公布App到Azure App Service)
在这最后一节中.你将把应用程序公布到Azure.在Solution Explorer中,右击项目并选择Publish. 点击Publish打开Publish Web对话框. 假设你在新建项目的时候选中 ...
- 将C#文档注释生成.chm帮助文档(转)
由于最近需要把以前的一个项目写一个文档,但一时又不知道写成怎样的,又恰好发现了可以生成chm的工具,于是乎我就研究了下,感觉还不错,所以也给大家分享下.好了,不多废话,下面就来实现一下吧. 生成前的准 ...
- 程序猿的量化交易之路(32)--Cointrade之Portfolio组合(19)
转载须注明出处:http://blog.csdn.net/minimicall?viewmode=contents,http://cloudtrade.top/ Portfolio:组合,代表的是多个 ...
- HDU 5056 Boring count(数学)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5056 Problem Description You are given a string S con ...