udpsink 似乎不流任何东西,但 filesink 工作
udpsink doesnt seem to stream anything but filesink works
我无法使用 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 phone)告诉我它无法播放带有 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
刚开始使用这个帐户,我想将其添加为评论,但由于代表限制不能。
我没有使用 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。强制性部分是有效负载和 encoding-name,您可以从 gst-inspect-1.0 rtpopuspay/rtpopusdepay 中找到其他部分。您可能需要根据您在服务器上定义的内容更改数字 side/what 是您机器上的默认值。
总而言之,我通过将 rtp 定义移动到 rtpopusdepay 的上限来让 GStreamer 管道正常工作。正如我所说,我不熟悉 vlc,所以我不知道如何在那里定义那些 GStreamer 上限,如果它甚至依赖于那些,但我希望这能对你的工作有所了解。
我无法使用 udpsrc
此命令有效且文件包含当前正在播放的音频
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 phone)告诉我它无法播放带有 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
刚开始使用这个帐户,我想将其添加为评论,但由于代表限制不能。
我没有使用 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。强制性部分是有效负载和 encoding-name,您可以从 gst-inspect-1.0 rtpopuspay/rtpopusdepay 中找到其他部分。您可能需要根据您在服务器上定义的内容更改数字 side/what 是您机器上的默认值。
总而言之,我通过将 rtp 定义移动到 rtpopusdepay 的上限来让 GStreamer 管道正常工作。正如我所说,我不熟悉 vlc,所以我不知道如何在那里定义那些 GStreamer 上限,如果它甚至依赖于那些,但我希望这能对你的工作有所了解。