Gstreamer:通过互联网传输视频流

3

我正在使用带有Ubuntu 14.04的nVidia TX1嵌入式板。

我已经连接了一个相机模块,可以输出1080p60的UYVY视频。我正在使用gstreamer 1.2.4管道进行预览、UDP和RTSP流传输。这个过程很顺利。

我可以使用VLC播放器或gstreamer管道从本地局域网中的客户端PC查看流媒体视频。

但是,如何在互联网上实时传输此视频以便任何地方都可以查看呢?

我发现一些软件可以通过互联网传输网络摄像头视频。但问题是我的相机视频是UYVY格式,因此无法直接从任何第三方软件播放video0设备。我需要gstreamer进行颜色转换。

那么我该如何直接从Gstreamer管道通过互联网进行传输呢?是否有类似wowza或其他方法的软件可用?

1个回答

3

如果没有提供您的管道,我无法具体看到您正在使用哪些组件,因此为了回答您的问题而不进行多次排列 - 如何直接通过Internet使用gstreamer管道进行流传输? 这里是服务器和客户端的基本工作示例,您显然需要更改应用程序的源。 您可能希望将autovideo sink更改为具有h264硬件视频加速的内容,否则这可能会非常缓慢。

服务器

gst-launch videotestsrc ! queue ! x264enc ! queue ! rtph264pay ! queue ! udpsink host=10.0.0.2 port=9002

客户端

gst-launch udpsrc port=9002 caps="application/x-rtp" ! queue ! rtph264depay ! queue ! ffdec_h264 ! queue ! autovideosink

h263 - in case hardware decoding in not an option, it will be much faster.

server

gst-launch videotestsrc \
! video/x-raw-yuv, width=704, height=576, format='(fourcc)'UYVY \
! ffmpegcolorspace \
! ffenc_h263 \
! video/x-h263 \
! rtph263ppay pt=96 \
! udpsink host=127.0.0.1 port=9002 sync=false

client

gst-launch  udpsrc  port=9002 \
! application/x-rtp, clock-rate=90000,payload=96,media=video, encoding-name=H263! rtph263pdepay queue-delay=0 \
! ffdec_h263 \
! autovideosink


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接