我无法通过udpsrc
通过rtp将脉冲音频监视器流传输到诸如vlc或gst-launch之类的音频播放器
此命令有效并且文件具有当前正在播放的音频
gst-launch-1.0 -v pulsesrc device = "alsa_output.pci-0000_00_1b.0.analog-stereo.monitor" ! opusenc ! oggmux ! filesink location=test.ogg
但是当我使用它时,
gst-launch-1.0 -v pulsesrc device="alsa_output.pci-0000_00_1b.0.analog-stereo.monitor" ! opusenc ! rtpopuspay ! udpsink host=0.0.0.0 port=4000
vlc(来自Android手机)告诉我,它无法使用uri rtp://ip-addr:4000
并从同一台计算机启动gst-launch,但是结果文件为空。
gst-launch-1.0 -v udpsrc uri=rtp://0.0.0.0:4000 ! rtpopusdepay ! oggmux ! filesink location=test.ogg
gstreamer版本是
$ gst-launch-1.0 --version
gst-launch-1.0 version 1.16.0
GStreamer 1.16.0
答案 0 :(得分:0)
刚刚启动此帐户,我想将此添加为评论,但由于销售代表的限制而不能。
我没有使用vlc的经验,但是如果我将rtp流参数的上限,定义添加到rtpopusdepay,至少可以使您的GStreamer管道正常工作。
所以代替:
gst-launch-1.0 -v udpsrc uri=rtp://0.0.0.0:4000 ! rtpopusdepay ! oggmux ! filesink location=test.ogg
您需要使用:
gst-launch-1.0 udpsrc uri=udp://0.0.0.0:4000 ! application/x-rtp,payload=96,encoding-name=OPUS ! rtpopusdepay ! opusdec ! autoaudiosink
对于GStreamer。必填部分是有效负载和编码名称,其他则可以从gst-inspect-1.0 rtpopuspay / rtpopusdepay中找到。您可能需要更改数字,具体取决于您在服务器端定义的内容/计算机上的默认值。
因此,总而言之,我通过将rtp定义移至rtpopusdepay的上限来使GStreamer管道正常工作。如我所说,我对vlc不熟悉,所以我什至不知道如何在其中定义那些GStreamer上限,即使它依赖于这些上限,但我希望这能为您的工作提供一些见识。