如何顺时针旋转图像?

时间:2012-08-23 18:31:11

标签: embedded-linux gstreamer

根据this gstreamer管道

  

gst-launch videotestsrc! videoflip方法=顺时针!   ffmpegcolorspace! ximagesink

顺时针旋转视频流。 我已经在嵌入式Linux Leopardboard上成功测试了这个视频管道,但我需要旋转单个图像,所以我修改了这样的管道:

  

gst-launch filesrc location = test.jpeg! videoflip方法=顺时针!   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   方法=顺时针! ffmpegcolorspace! jpegenc!文件接收   位置= testClockwise.jpeg

但现在出现此错误:

  

警告:错误的管道:没有元素“jpegdec”

但是为什么,因为jpegdec和jpegenc都在gst-plugins-good Elements

1 个答案:

答案 0 :(得分:2)

您的管道读取了一个jpeg。不是YUV / RGB。因此,您需要解码您的jpeg文件,按照您的方式进行翻转,将其重新编码为jpeg,然后将其写入文件。