Gstreamer元素dmairesizer视频移位

时间:2018-08-16 11:43:03

标签: gstreamer

我正在豹板成像板上写一条gstreamer管线。我正在使用dmairesizer元素进行视频捕获和更高版本的编码(h.264),但是dmairesizer正在移动视频,如随附的照片所示。左侧显示在右侧,反之亦然。

Photo illustrating issue

Gstreamer管道如下

gst-launch -e v4l2src input-src=composite chain-ipipe= true always-copy=false queue-size=6 ! dmaiaccel ! video/x-raw-yuv, format=\(fourcc\)NV12 , height=576, width=720 ! priority ! queue ! dmaienc_h264 targetbitrate=2000000 bytestream=true copyOutput=false single-nalu=true encodingpreset=2 ratecontrol=2 ! queue ! dmaiperf ! mpegtsmux ! udpsink host=199.200.15.61 port= 6666 sync=false enable-last-buffer=false

我正在使用vlc来流mpegtsmux流。

没有dmairesizer元素,视频不会移动。

gst-launch -e v4l2src input-src=composite chain-ipipe=false always-copy=false queue-size=6 ! dmaiaccel ! dmairesizer ! priority ! queue ! dmaienc_h264 targetbitrate=2000000 bytestream=true copyOutput=false single-nalu=true encodingpreset=2 ratecontrol=2 ! queue ! dmaiperf ! mpegtsmux ! udpsink host=199.200.15.61 port= 6666 sync=false enable-last-buffer=false

我已经在多个论坛上发布了这个简单的问题,但无济于事。

1 个答案:

答案 0 :(得分:0)

偶然发现了同一问题。如果要发送dataptr,则需要执行Buffer.map以获得正确的dataptr。例如在C#中: sample.Buffer.Map(out map,MapFlags.Read); map.DataPtr将为您提供正确的内存地址以传递给VLC