通过Gstreamer进行视频流

时间:2018-08-20 10:03:10

标签: video video-streaming gstreamer gstreamer-1.0

我尝试使用服务器上的命令在Windows OS计算机上检查视频rtp流:

  

gst-launch-1.0 filesrc位置= d:/TestVideos/lama.mp4! qtdemux!视频/ x-h264! rtph264pay! udpsink host = 192.168.1.162 port = 6001

然后我尝试抓住流:

  

gst-launch-1.0 -v udpsrc port = 6001 caps =“ application / x-rtp,media =(string)video,clock-rate =(int)90000,encoding-name =(string)H264,payload = (int)96英寸! rtph264depay!解码器!视频转换!自动视频接收器

我在控制台中看到这样的图片:

enter image description here

仅此而已。视频结束后,服务器窗口将自动关闭。

但是,如果尝试使用testvideosrc,则一切正常。

服务器端:

  

gst-launch-1.0 -v videotestsrc! video / x-raw,framerate = 20/1!视频规模!视频转换! x264enc tune = zerolatency bitrate = 500 speed-preset = superfast! rtph264pay! udpsink host = 192.168.1.162 port = 6001

客户端:

  

gst-launch-1.0 -v udpsrc port = 6001 caps =“ application / x-rtp,media =(string)video,clock-rate =(int)90000,encoding-name =(string)H264,payload = (int)96英寸! rtph264depay!解码器!视频转换!自动视频接收器

enter image description here

不幸的是,我找不到错误...如果有人帮助找到错误,那将是非常不错的。谢谢。

1 个答案:

答案 0 :(得分:1)

也尝试一下:

gst-launch-1.0 filesrc location = d:/TestVideos/lama.mp4 ! qtdemux ! video/x-h264 ! h264parse !rtph264pay ! udpsink host=192.168.1.162 port=6001

在接收方

gst-launch-1.0 -v udpsrc port=6001 caps = "application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)H264, payload=(int)96" !  rtph264depay ! h264parse ! avdec_h264 ! autovideosink

下面是我在单板计算机上的命令-Freescale imx6(供参考)

gst-launch-1.0 –gst-debug=0 imxv4l2videosrc device=/dev/video1 fps-n=30 capture-mode=4 ! imxvpuenc_h264 bitrate=1000
 ! h264parse ! rtph264pay ! udpsink host=192.168.11.11 port=5001

gst-launch-1.0 –gst-debug=0 udpsrc port=5001 ! $CAPS ! rtph264depay ! h264parse ! avdec_h264 ! 
autovideosink sync=true