Gstreamer文物在160x120

时间:2015-10-21 09:18:28

标签: raspberry-pi streaming video-streaming webcam gstreamer

我是gstreamer的新手。我有从Raspberry pi到Computer的流媒体平台。当我将输入帧大小更改为160x120时,我对gstreamer有问题(帧大小为320x240,640x480没有问题。)

我在Raspberry pi中使用gstreamer,输入来自Logitech C920的原始视频,然后流式传输到计算机。源端(raspberry pi)的脚本是:

#!/bin/bash

WIDTH=160
HEIGHT=120

ip=192.168.0.150

v4l2-ctl --set-fmt-video=width=$WIDTH,height=$HEIGHT,pixelformat=1
v4l2-ctl -i 1

gst-launch-1.0 -v \
rtpbin name=rtpbin v4l2 device=/dev/video0 \
! video/x-raw,width=$WIDTH,height=$HEIGHT,framerate=25/1 \
! queue \
! omxh264enc target-bitrate=900000 control-rate=3 \
! "video/x-h264,profile=high" \
! h264parse \
! queue max-size-bytes=10000000 \
! rtph264pay pt=96 config-interval=1 \
! rtpbin.send_rtp_sink_0 rtpbin.send_rtp_src_0 \
! udpsink port=5000 host=$ip ts-offset=0 name=vrtpsink rtpbin.send_rtcp_src_0 \
! udpsink port=5001 host=$ip sync=false async=false name=vrtcpsink udpsrc port=5005 name=vrtpsrc \
! rtpbin.recv_rtcp_sink_0

视频接收器位于窗口。它使用以下命令运行。

gst-launch-1.0 udpsrc caps="application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)H264, sampling=(string)YCbCr-4:4:4, depth=(string)8, width=(string)320, height=(string)240, colorimetry=(string)SMPTE240M, ssrc=(uint)1825678493, payload=(int)96, clock-base=(uint)4068866987, seqnum-base=(uint)24582" port=5000 ! rtph264depay ! decodebin !queue! autovideosink 

我得到的视频就像是一个接近下半部分的视频。

enter image description here

320x240的视频但没有任何瑕疵,如下所示。

enter image description here

请帮忙。

1 个答案:

答案 0 :(得分:0)

是的,就像mpr建议的那样,问题是帧大小160x120不能被16整除。修复它会解决问题