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


 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM