Video streaming 视频流应用程序&x27;使用GStreamer的用户需求

Video streaming 视频流应用程序&x27;使用GStreamer的用户需求,video-streaming,h.264,gstreamer,rtp,Video Streaming,H.264,Gstreamer,Rtp,我想使用GStreamer创建一个无线流视频应用程序。 我的要求是: 网络上的H.264编解码器、RTP/MPEG2-TS流和RTP协议。 请任何人解释一下,我需要创建任何插件,或者现有的插件可以提供所有的功能?如果是,那么我应该使用哪些插件? 我想补充一点,我将使用手机捕获视频,并通过网络将视频从该设备传输到一个或多个特定地址。 请回复。 提前感谢。gstrtpbin应该可以满足您的所有流媒体需求。它将允许您将RTP流传输到一个或多个地址。对于如何使用它的说明,有几个不同语言的示例。Gstre

我想使用GStreamer创建一个无线流视频应用程序。 我的要求是: 网络上的H.264编解码器、RTP/MPEG2-TS流和RTP协议。
请任何人解释一下,我需要创建任何插件,或者现有的插件可以提供所有的功能?如果是,那么我应该使用哪些插件? 我想补充一点,我将使用手机捕获视频,并通过网络将视频从该设备传输到一个或多个特定地址。 请回复。
提前感谢。

gstrtpbin应该可以满足您的所有流媒体需求。它将允许您将RTP流传输到一个或多个地址。对于如何使用它的说明,有几个不同语言的示例。Gstreamer还允许您使用x264将视频编码为H.264流。这包含在“丑陋”插件包中。

gstrtpbin应该能够满足您的所有流媒体需求。它将允许您将RTP流传输到一个或多个地址。对于如何使用它的说明,有几个不同语言的示例。Gstreamer还允许您使用x264将视频编码为H.264流。这包含在“丑陋”插件包中。

考虑到RTP(根据需要更改主机/ip),以下管道应该会有所帮助。根据您的要求,您可以将
ffenc\u mpeg4
替换为
x264enc pass=qual quantizer=20 tune=zerolatency
rtpmp4vpay
替换为
rtph264pay
。同样,在解码器端,您可以将
ffdec\u mpeg4
替换为
x264dec
rtpmp4vdepay
替换为
rtph264depay
。几乎没有其他事情需要调整

1) RTP发送网络摄像头和音频

gst-launch-gstrtpbin-name=rtpbin-latency=0 v4l2src-device=/dev/video0!打字!ffmpegcolorspace!电子秤!视频/x-raw-yuv,宽度=640,高度=480!视频速率!视频/x-raw-yuv,帧速率=30/1!ffenc_mpeg4!rtpmp4vpay发送配置=真!rtpbin.send\u rtp\u sink\u 0 rtpbin.send\u rtp\u src\u 0!udpsink端口=5502主机=127.0.0.1 rtpbin.send\u rtcp\u src\u 0!udpsink端口=5510主机=127.0.0.1同步=假异步=假udpsrc端口=5510!rtpbin.recv_rtcp_sink_0 autoaudiosrc samplesperbuffer=1000!阿拉温克!rtppcmapay!rtpbin.send\u rtp\u sink\u 1 rtpbin.send\u rtp\u src\u 1!udpsink端口=5504主机=127.0.0.1 rtpbin.send\u rtcp\u src\u 1!udpsink端口=5512主机=127.0.0.1同步=假异步=假udpsrc端口=5512!rtpbin.recv\u rtcp\u sink\u 1

2) RTP接收网络摄像头和音频

gst launch gstrtpbin name=rtpbin2延迟=0 udpsrc caps=“应用程序/x-rtp,媒体=(字符串)视频,时钟速率=(int)90000,编码名称=(字符串)MP4V-ES,配置文件级别id=(字符串)1”端口=5502!rtpbin2.recv_rtp_sink_0 rtpbin2!rtpmp4vdepay!ffdec_mpeg4!电子秤!视频/x-raw-yuv,宽度=640,高度=480!视频速率!视频/x-raw-yuv,帧速率=30/1!ffmpegcolorspace!autovideosink udpsrc端口=5510!rtpbin2.recv\u rtcp\u sink\u 0 rtpbin2.send\u rtcp\u src\u 0!udpsink主机=127.0.0.1端口=5510同步=假异步=假udpsrc caps=“应用程序/x-rtp,媒体=(字符串)音频,时钟频率=(int)8000,编码名称=(字符串)PCMA”端口=5504!rtpbin2.recv_rtp_sink_1 rtpbin2!rtppcmadepay!啊!自动音频接收器缓冲时间=10000 udpsrc端口=5512!rtpbin2.recv_rtcp_sink_1 rtpbin2.send_rtcp_src_1!udpsink host=127.0.0.1 port=5512 sync=false async=false

考虑到RTP(根据需要更改主机/ip),以下管道应该会有所帮助。根据您的要求,您可以将
ffenc\u mpeg4
替换为
x264enc pass=qual quantizer=20 tune=zerolatency
rtpmp4vpay
替换为
rtph264pay
。同样,在解码器端,您可以将
ffdec\u mpeg4
替换为
x264dec
rtpmp4vdepay
替换为
rtph264depay
。几乎没有其他事情需要调整

1) RTP发送网络摄像头和音频

gst-launch-gstrtpbin-name=rtpbin-latency=0 v4l2src-device=/dev/video0!打字!ffmpegcolorspace!电子秤!视频/x-raw-yuv,宽度=640,高度=480!视频速率!视频/x-raw-yuv,帧速率=30/1!ffenc_mpeg4!rtpmp4vpay发送配置=真!rtpbin.send\u rtp\u sink\u 0 rtpbin.send\u rtp\u src\u 0!udpsink端口=5502主机=127.0.0.1 rtpbin.send\u rtcp\u src\u 0!udpsink端口=5510主机=127.0.0.1同步=假异步=假udpsrc端口=5510!rtpbin.recv_rtcp_sink_0 autoaudiosrc samplesperbuffer=1000!阿拉温克!rtppcmapay!rtpbin.send\u rtp\u sink\u 1 rtpbin.send\u rtp\u src\u 1!udpsink端口=5504主机=127.0.0.1 rtpbin.send\u rtcp\u src\u 1!udpsink端口=5512主机=127.0.0.1同步=假异步=假udpsrc端口=5512!rtpbin.recv\u rtcp\u sink\u 1

2) RTP接收网络摄像头和音频

gst launch gstrtpbin name=rtpbin2延迟=0 udpsrc caps=“应用程序/x-rtp,媒体=(字符串)视频,时钟速率=(int)90000,编码名称=(字符串)MP4V-ES,配置文件级别id=(字符串)1”端口=5502!rtpbin2.recv_rtp_sink_0 rtpbin2!rtpmp4vdepay!ffdec_mpeg4!电子秤!视频/x-raw-yuv,宽度=640,高度=480!视频速率!视频/x-raw-yuv,帧速率=30/1!ffmpegcolorspace!autovideosink udpsrc端口=5510!rtpbin2.recv\u rtcp\u sink\u 0 rtpbin2.send\u rtcp\u src\u 0!udpsink主机=127.0.0.1端口=5510同步=假异步=假udpsrc caps=“应用程序/x-rtp,媒体=(字符串)音频,时钟频率=(int)8000,编码名称=(字符串)PCMA”端口=5504!rtpbin2.recv_rtp_sink_1 rtpbin2!rtppcmadepay!啊!自动音频接收器缓冲时间=10000 udpsrc端口=5512!rtpbin2.recv_rtcp_sink_1 rtpbin2.send_rtcp_src_1!udpsink主机=127.0.0.1端口=5512同步=假异步=假