根据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?
答案 0 :(得分:2)
您的管道读取了一个jpeg。不是YUV / RGB。因此,您需要解码您的jpeg文件,按照您的方式进行翻转,将其重新编码为jpeg,然后将其写入文件。