2017-04-17 1150 views
0

我正在嘗試創建一個簡單的gstreamer1-0管道,用於編碼和解碼h264攝像頭饋送,希望能夠使用最基本的元素。我已經(理論上)安裝了所有標準,好,壞和醜陋的gstreamer庫。我使用了「理論上的」這個詞,因爲我沒有root權限,我必須要求IT部門下載/安裝我可能需要的每一個庫,這是一件非常痛苦的事情。gstreamer簡單的編碼和解碼管道?

我試過下面的管道,但沒有奏效:

gst-launch-1.0 v4l2src ! autovideoconvert ! x264enc bitrate=256 ! decodebin ! autovideosink 

我得到以下輸出:

Setting pipeline to PAUSED ... 
Pipeline is live and does not need PREROLL ... 
Setting pipeline to PLAYING ... 
New clock: GstSystemClock 
Redistribute latency... 
Missing element: H.264 decoder 
ERROR: from element /GstPipeline:pipeline0/GstDecodeBin:decodebin0: Your GStreamer installation is missing a plug-in. 
Additional debug info: 
gstdecodebin2.c(3977): gst_decode_bin_expose(): /GstPipeline:pipeline0/GstDecodeBin:decodebin0: 
no suitable plugins found 
Execution ended after 0:00:01.795803500 
Setting pipeline to PAUSED ... 
Setting pipeline to READY ... 
Setting pipeline to NULL ... 
Freeing pipeline ... 

所以根據我就是缺少一個塊我插件解碼h264的權利?

現在我讀了這個forum,我不知道如何安裝解碼器塊。如果有人能向我解釋如何做到這一點,以獲得簡單的管道運行?越詳細的解釋越好,因爲我後來必須將這個解釋轉達給IT和法語,所以我堅持認爲:這將是一個巨大的痛苦。

TY。

回答

2

您可能會缺少h264解碼器插件。你可以用

gst-inspect-1.0 | grep 264 

檢查,多數民衆贊成通常使用的解碼器是avdec_h264

這將列出與H264相關的插件。如果你沒有任何解碼器,你需要安裝gst-libav軟件包。

+0

是的,我試過了,我沒有看到它......非常感謝avdec_h264和gst-libav軟件包的信息。我會研究這一點。請問avdec_h264 word與x264enc塊還是必須使用匹配的avdec_h264編碼塊? 編輯:這是我所得到的,當我做檢查: X264:x264enc:x264enc RTP:rtph264depay:RTP H264 depayloader RTP:rtph264pay:RTP H264裝貨 videoparsersbad:h264parse:H.264分析器 typefindfunctions:視頻/ x-h264:h264,x264,264 – user3521388

+0

是的,你缺少h264解碼器。 avdec_h264可以在x264enc下正常工作。我猜gst-libav軟件包有另一個h264編碼器,但x264enc沒問題。 –

+0

真棒,很多很多謝謝...我會嘗試一下,儘快回覆你... btw,我該如何選擇答案?如果只有一個,是否有必要? xD – user3521388