2012-08-23 241 views
0

根據this GStreamer的管道如何順時針旋轉圖像?

gst-launch videotestsrc ! videoflip method=clockwise ! ffmpegcolorspace ! ximagesink

順時針視頻流旋轉。 我已經成功地測試,在過去這段視頻流水線上的嵌入式Linux的Leopardboard但我需要旋轉單個圖像,所以我修改了管道是這樣的:

gst-launch filesrc location=test.jpeg ! videoflip method=clockwise ! ffmpegcolorspace ! filesink location=testClockwise.jpeg

我修改管道引起以下錯誤:

Setting pipeline to PAUSED ... 
Pipeline is PREROLLING ... 
ERROR: from element /GstPipeline:pipeline0/GstVideoFlip:videoflip0: 
    not negotiated 
Additional debug info: 
../../../../src/libs/gst/base/gstbasetransform.c(2253): 
    gst_base_transform_handle_buffer(): 
    /GstPipeline:pipeline0/GstVideoFlip:videoflip0: 
not negotiated 
ERROR: pipeline doesn't want to preroll. 

爲什麼GstVideoFlip:videoflip0沒有協商? 爲什麼管道不想預卷? 如何解決這些錯誤?

編輯:所以。我想補充JPEGDEC和jpegenc到我的管道是這樣的:

gst-launch filesrc location=test.jpeg ! jpegdec ! videoflip method=clockwise ! ffmpegcolorspace ! jpegenc ! filesink location=testClockwise.jpeg

但現在出現此錯誤:

WARNING: erroneous pipeline: no element "jpegdec"

但是,爲什麼,因爲JPEGDEC和gst-plugins-good Elements jpegenc都是?

+0

做一個gst-inspect jpegdec。如果你沒有它,這意味着你沒有安裝的依賴關係。 libjpeg的?安裝依賴項並重新安裝gst-plugins-good或在安裝libjpeg後重新安裝。還有ffdec_jpeg或可用的那種類型的東西。做一個沒有參數的gst-inspect來列出你所有的插件 – av501

回答

2

您的管道讀取一個jpeg。不是YUV/RGB。所以你需要解碼你的jpeg文件,按照你所做的方式翻轉它,重新編碼爲jpeg,然後將它寫入文件。