Video orientation change

bojan74 bojan.flander at gmail.com
Fri Jul 31 06:22:41 UTC 2020


As I wrote I solved the webm problem with rotating video (from portrait to
landscape) last time with setting bigger dimensions using capsfilter (width,
height).

But now I get a case where it looks there is some other change in caps than
just dimensions.
If I compare two caps looks like that:
video/x-raw, format=(string)I420, width=(int)360, height=(int)640,
interlace-mode=(string)progressive, multiview-mode=(string)mono,
multiview-flags=(GstVideoMultiviewFlagsSet)0:ffffffff:/right-view-first/left-flipped/left-flopped/right-flipped/right-flopped/half-aspect/mixed-mono,
pixel-aspect-ratio=(fraction)1/1, chroma-site=(string)mpeg2,
colorimetry=(string)bt709, framerate=(fraction)0/1

video/x-raw, format=(string)I420, width=(int)270, height=(int)480,
interlace-mode=(string)progressive, multiview-mode=(string)mono,
multiview-flags=(GstVideoMultiviewFlagsSet)0:ffffffff:/right-view-first/left-flipped/left-flopped/right-flipped/right-flopped/half-aspect/mixed-mono,
pixel-aspect-ratio=(fraction)1/1, chroma-site=(string)jpeg,
colorimetry=(string)bt601, framerate=(fraction)0/1

So beside height and width, there is also change in colorimetry and
chroma-site.

That's why I tried to fix also these two parameters inside capsfilter:
video/x-raw, width=1000, height=1000, chroma-site=(string)jpeg,
colorimetry=(string)bt601

But now I get this error:
0:00:10.114854700 12236 000000000383C0C0 WARN                GST_PADS
gstpad.c:4303:gst_pad_peer_query:<vp8dec0:src> *could not send sticky
events*
0:00:10.114991500 12236 000000000383C0C0 INFO              videomixer
videomixer2.c:485:gst_videomixer2_pad_sink_setcaps:<videomixer2-0:sink_0>
Setting caps video/x-raw, format=(string)I420, width=(int)360,
height=(int)640, interlace-mode=(string)progressive,
multiview-mode=(string)mono,
multiview-flags=(GstVideoMultiviewFlagsSet)0:ffffffff:/right-view-first/left-flipped/left-flopped/right-flipped/right-flopped/half-aspect/mixed-mono,
pixel-aspect-ratio=(fraction)1/1, chroma-site=(string)mpeg2,
colorimetry=(string)bt709, framerate=(fraction)0/1
0:00:10.117084500 12236 000000000383C0C0 INFO              videomixer
videomixer2.c:485:gst_videomixer2_pad_sink_setcaps:<videomixer2-0:sink_0>
Setting caps video/x-raw, format=(string)I420, width=(int)360,
height=(int)640, interlace-mode=(string)progressive,
multiview-mode=(string)mono,
multiview-flags=(GstVideoMultiviewFlagsSet)0:ffffffff:/right-view-first/left-flipped/left-flopped/right-flipped/right-flopped/half-aspect/mixed-mono,
pixel-aspect-ratio=(fraction)1/1, chroma-site=(string)mpeg2,
colorimetry=(string)bt709, framerate=(fraction)0/1
0:00:10.117370400 12236 000000000383C0C0 INFO            videodecoder
gstvideodecoder.c:3336:gst_video_decoder_clip_and_push_buf:<vp8dec0> First
buffer since flush took 0:00:10.005458500 to produce
0:00:10.117435200 12236 000000000383C0C0 INFO              videomixer
videomixer2.c:485:gst_videomixer2_pad_sink_setcaps:<videomixer2-0:sink_0>
Setting caps video/x-raw, format=(string)I420, width=(int)360,
height=(int)640, interlace-mode=(string)progressive,
multiview-mode=(string)mono,
multiview-flags=(GstVideoMultiviewFlagsSet)0:ffffffff:/right-view-first/left-flipped/left-flopped/right-flipped/right-flopped/half-aspect/mixed-mono,
pixel-aspect-ratio=(fraction)1/1, chroma-site=(string)mpeg2,
colorimetry=(string)bt709, framerate=(fraction)0/1
0:00:10.117698800 12236 000000000383C0C0 INFO                    task
gsttask.c:312:gst_task_func:<rtpjitterbuffer_video0:src> Task going to
paused
0:00:10.123762900 12236 000000000383C100 WARN                 basesrc
gstbasesrc.c:3070:gst_base_src_loop:<appsrc_video0> error: Internal data
stream error.
0:00:10.123804600 12236 000000000383C100 WARN                 basesrc
gstbasesrc.c:3070:gst_base_src_loop:<appsrc_video0> *error: streaming
stopped, reason not-negotiated (-4)*
0:00:10.123847500 12236 000000000383C100 INFO        GST_ERROR_SYSTEM
gstelement.c:2224:gst_element_message_full_with_details:<appsrc_video0>
posting message: Internal data stream error.
0:00:10.123889400 12236 000000000383C100 INFO        GST_ERROR_SYSTEM
gstelement.c:2251:gst_element_message_full_with_details:<appsrc_video0>
posted error message: Internal data stream error.


My pipeline in this test was:
appsrc->rtpjitterbuffer->rtpvp8depay->vp8dec0->videomixer->capsfilter->videoconverter->vp8enc->webmux



Do I need to set some other caps too to be able to negotiate?

But if I don't add these two parameters chroma-site=(string)jpeg,
colorimetry=(string)bt601 there is no problem with negotiations but I got
error:
matroska-mux.c:975:gst_matroska_mux_video_pad_setcaps:<webmmux0> error: Caps
changes are not supported by Matroska


So how to fix caps for webm but anyway to be negotiated?






--
Sent from: http://gstreamer-devel.966125.n4.nabble.com/


More information about the gstreamer-devel mailing list