GStreamer Plugin: Embedded video playback halted; module decodebin20 reported: Your GStreamer installation is missing a plug-in.
标题是在Linux下使用系统yum install 的opencv库来获取视频帧的时候抛出来的错误消息。opencv调用了Gstream的API来处理了视频。错误抛出的代码如下图:
http://ubuntuforums.org/archive/index.php/t-1730395.html
http://stackoverflow.com/questions/4929721/opencv-python-grab-frames-from-a-video-file
把上面两个链接的回答都看了,还是没有解决,说是缺少GStream的一个插件,可以我又重新yun install 了gstream-plug-in这些插件,包管理器提示已经安装了最新版了。但是运行项目还是会报出这个错误,但是有的人安装了插件就解决了。
阅读以上链接的时候,有个问题没有搞清楚就是:FFMPEG 和GSTREAM是不是功能上平行的关系?(类似于GTK和Qt的关系)。
搜索了一下发现:http://1.guotie.sinaapp.com/?p=31
上面的文章说了,两者的关系区别不是很大,差不多平行。文章的内容如下:
gstreamer,vlc,ffmpeg都是开源处理流媒体的软件,这里的比较不涉及功能,仅仅比较源代码。
大约看了一个星期,对这三个 软件都略有了解,简单的谈谈。
0、开发语言
都是使用c语言开发,ffmpeg最为简洁;gstreamer使用了gobject,晦涩;
1、注释
vlc的代码完全没有注释,官网也没有任何文档;
gstreamer的官网上有开发者指引,看完后大概了解gstreamer的设计框架,如element,pad,filter等概念,感觉设计的相当不错;
ffmpeg官网上文档不多,不过注释真是太详细了,超级赞;
2、代码量
vlc代码量算比较少的;
gstreamer分为core,plugin,等等,代码量巨大;而且,gstreamer使用glib2,感觉很不好,可读性差;
ffmpeg文件很多,但组织的很棒,一下子都能找到要领;
代码量没有精确统计,仅仅是个人感觉;
3、代码质量
我个人非常欣赏ffmpeg,代码太棒了;
整个框架结构分为两个主要部分,一个是codec,一个是format,在两个大的目录中,顾名思义,一个是处理编解码,一个是获取原始数据;
format中,只需要看几个文件就可以了解整个系统的运作过程了:
avformat.h,avio.h,avio.c等
4、图形界面
vlc有图形界面,在windows下很好用;
gstreamer不是很清楚;
ffmpeg没有图形界面,仅仅提供了三个命令行工具,这三个工具的选项狂多。三个命令分别是ffmpeg,ffplay,ffprobe
ffmpeg是我非常推崇的代码。
在使用测试的过程中,发现ffmpeg不能播放helix server的rtsp源,应该是ffmpeg解析rtp与helix不兼容造成的,有空的时候查找一下原因,fix一下。
两者的区别还有一些细节的差别:
http://my.oschina.net/tangcong/blog/92876
对同样的audio format,Gstreamer和Ffmpeg demux出来的audio frame组织形式不一样,最近就碰到了这个问题。
1 对Real Audio,Gstreamer输出单位为Packet(包含多个frame),而Ffmpeg输出单位frame。
2 对OGG,Gstreamer输出vorbis的packet,包括前三个header packets;而Ffmpeg只输出audio packets,通过extradata的方式来传输header packets。
3 对FLAC,Gstreamer先输出metadata block,再输出data block;而Ffmpeg只输出data block。
#################################update###########################
其实要解决标题以上的问题,只需要安装gstreamer,gstreamer-ffmpeg,ffmpeg还有gstreamer-plug-in这些包就行了。官方源没有,那么就用rpmfusion和EPEL源来安装上述红色标记的包。
安装 EPEL源请运行以下命令(EPEL源安装的更多信息请参考这里https://fedoraproject.org/wiki/EPEL/FAQ):
rpm -Uvh http://dl.fedoraproject.org/pub/epel/beta/7/x86_64/epel-release-7-0.2.noarch.rpm
rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-1.el7.nux.noarch.rpm
安装rpmfusion源请参考以下给出的配置:
http://rpmfusion.org/Configuration
相关文章
- sax错误:org.xml.sax.SAXParseException: Content is not allowed in prolog解决
- 创龙OMAPL138开发板测试Device is held in reset. Take the device out of reset, and retry the operation.
- [Javascript] String in Javascript
- [Tools] Scroll, Zoom, and Highlight code in a mdx-deck slide presentation with Code Surfer <🏄/>
- [GraphQL] Query Local and Remote Data in Apollo Link State
- [Angular] Create a custom validator for reactive forms in Angular
- [TypeScript] Union Types and Type Aliases in TypeScript
- mysql问题解决SELECT list is not in GROUP BY clause and contains nonaggregated column
- [React] Ensure all React useEffect Effects Run Synchronously in Tests with react-testing-library
- [Python] Manipulate Data with Dictionaries in Python
- Column '表名.某列名' is invalid in the select list because it is not contained in either an aggregate f
- Execution error: 'the function name is not a recognized built-in function name'
- 为什么使用中间件下载时总是收到警告消息Object is in status Wait
- Numeric tile and other files loaded in Smart Template tile render launch
- Why with_indobjects is not available in product search
- How mBDOC is generated and saved in DB
- How is html text displayed in Assignment block
- Dump in CRM_UPLOAD_IBA_MESSAGE - deactivation discussion
- when is valid from and valid to filled in SAP IBASE buffer table
- SAP CRM pricing的一个问题 - cannot switch on price calculation trace in AG3
- Execution error: 'the function name is not a recognized built-in function name'
- Ubuntu报“xxx is not in the sudoers file.This incident will be reported” 错误解决方法
- 成功解决ValueError: Only TF native optimizers are supported in Eager mode
- 成功解决WARNING: pip is configured with locations that require TLS/SSL, however the ssl module in Python
- 成功解决Libsre_compile.py, line 17, in module assert _sre.MAGICMAGIC SRE module mismatch
- 成功解决OpenCV Error: Assertion failed (ssize.width > 0 && ssize.height > 0) in cv::resize, file C:proj
- TCP/IP 协议概述 OSI 参考模型 TCP/IP 协议族 TCP UDP 三次握手协议 socket 概述 sockaddr sockaddr_in 存储优先 地址格式转化 名字地址转化
- POJ 2559 Largest Rectangle in a Histogram(单调栈)
- [Maven in action] 解决办法:Project configuration is not up-to-date with pom.xml. Run project ...
- Latex Tips: 如何输入矩阵(illustrated in Jupyter Notebook)
- 强制InnoDB恢复log sequence number is in the future