首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用GStreamer实现视频流应用的需求

使用GStreamer实现视频流应用的需求
EN

Stack Overflow用户
提问于 2011-04-28 03:48:33
回答 2查看 1.7K关注 0票数 0

我想创建一个使用GStreamer的无线视频流应用程序。我的要求是: H.264编解码器,RTP/MPEG2-TS流和网络上的RTP协议。

请任何人解释一下,我需要为它创建任何插件,或者现有的插件可以提供所有的功能?如果是,那么我应该使用哪些插件?我想补充一点,我将使用电话捕获视频,并通过网络从该设备传输到一个或多个特定地址。请回复。提前谢谢。

EN

回答 2

Stack Overflow用户

发布于 2011-04-28 22:02:40

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

票数 3
EN

Stack Overflow用户

发布于 2012-07-15 11:17:25

考虑到RTP (根据需要更改主机/ip),下面的管道应该会有所帮助。根据您的要求,您可以用x264enc pass=qual quantizer=20 tune=zerolatency替换ffenc_mpeg4,用rtph264pay替换rtpmp4vpay。同样,在解码器端,您可以用x264dec替换ffdec_mpeg4,用rtph264depay替换rtpmp4vdepay。可能还需要调整的其他东西很少。

1) RTP发送摄像头和音频

gst-launch gstrtpbin name=rtpbin latency=0 v4l2src device=/dev/video0 ! typefind ! ffmpegcolorspace ! videoscale ! video/x-raw-yuv, width=640, height=480 ! videorate ! video/x-raw-yuv, framerate=30/1 ! ffenc_mpeg4 ! rtpmp4vpay send-config=true ! rtpbin.send_rtp_sink_0 rtpbin.send_rtp_src_0 ! udpsink port=5502 host=127.0.0.1 rtpbin.send_rtcp_src_0 ! udpsink port=5510 host=127.0.0.1 sync=false async=false udpsrc port=5510 ! rtpbin.recv_rtcp_sink_0 autoaudiosrc samplesperbuffer=1000 ! alawenc ! rtppcmapay ! rtpbin.send_rtp_sink_1 rtpbin.send_rtp_src_1 ! udpsink port=5504 host=127.0.0.1 rtpbin.send_rtcp_src_1 ! udpsink port=5512 host=127.0.0.1 sync=false async=false udpsrc port=5512 ! rtpbin.recv_rtcp_sink_1

2) RTP接收摄像头和音频

gst-launch gstrtpbin name=rtpbin2 latency=0 udpsrc caps="application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)MP4V-ES, profile-level-id=(string)1" port=5502 ! rtpbin2.recv_rtp_sink_0 rtpbin2. ! rtpmp4vdepay ! ffdec_mpeg4 ! videoscale ! video/x-raw-yuv, width=640, height=480 ! videorate ! video/x-raw-yuv, framerate=30/1 ! ffmpegcolorspace ! autovideosink udpsrc port=5510 ! rtpbin2.recv_rtcp_sink_0 rtpbin2.send_rtcp_src_0 ! udpsink host=127.0.0.1 port=5510 sync=false async=false udpsrc caps="application/x-rtp,media=(string)audio, clock-rate=(int)8000, encoding-name=(string)PCMA" port=5504 ! rtpbin2.recv_rtp_sink_1 rtpbin2. ! rtppcmadepay ! alawdec ! autoaudiosink buffer-time=10000 udpsrc port=5512 ! rtpbin2.recv_rtcp_sink_1 rtpbin2.send_rtcp_src_1 ! udpsink host=127.0.0.1 port=5512 sync=false async=false

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5809707

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档