我在弄清楚如何使用 gstreamer 创建一个简单的 rtp 流并将其显示在 vlc 上时遇到了一些麻烦。
我已经安装了 GStreamer 0.10.30 和 VLC 1.1.3。我唯一的要求是使用 MPEG4 或 H.264 编解码器。
现在,我可以通过这个简单的管道流式传输 GStreamer videotestsrc :
gst-launch videotestsrc ! ffenc_mpeg4 ! rtpmp4vpay ! udpsink host=127.0.0.1 port=5000
它输出客户端接收流所需的“上限”:
/GstPipeline:pipeline0/GstUDPSink:udpsink0.GstPad:sink: caps = application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)MP4V-ES, profile-level-id=(string)1, config=(string)000001b001000001b58913000001000000012000c48d8800f50a041e1463000001b24c61766335322e3132332e30, payload=(int)96, ssrc=(uint)365697461, clock-base=(uint)390754204, seqnum-base=(uint)10399
我还可以使用以下管道显示流:
gst-launch udpsrc uri=udp://127.0.0.1:5000 caps="application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)MP4V-ES, profile-level-id=(string)1, config=(string)000001b001000001b58913000001000000012000c48d88007d0a041e1463000001b24c61766335322e3132332e30, payload=(int)96, ssrc=(uint)298758266, clock-base=(uint)3097828288, seqnum-base=(uint)63478" ! rtpmp4vdepay ! ffdec_mpeg4 ! autovideosink
但是当我尝试使用 vlc 接收流时:
vlc -vvv rtp://127.0.0.1:5000
我什么都得不到...