我是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
我得到的视频就像是一个接近下半部分的视频。
320x240的视频但没有任何瑕疵,如下所示。
请帮忙。
答案 0 :(得分:0)
是的,就像mpr建议的那样,问题是帧大小160x120不能被16整除。修复它会解决问题