【问题标题】:Streaming Music Over UDP Python通过 UDP Python 流式传输音乐
【发布时间】:2012-08-27 05:15:23
【问题描述】:

我正在尝试创建一个通过 UDP 连接流式传输音乐(MP3 文件)的程序。到目前为止,我已经创建了一个程序,可以发送整个 MP3 文件并将其写入客户端机器上的文件中。然后客户端使用pygame.mixer 播放文件。

这显然不是流媒体。我一生都无法弄清楚如何将音乐流式传输给客户端。

如果有人能指出正确的方向,那就太好了。

【问题讨论】:

  • 我只是好奇而已,我觉得这可能是一个有趣的项目。
  • 您可以将 MP3 文件分成单独的帧,对其编号,然后发送。如果一个帧丢失了,也许你可以假设它是全零或什么的。
  • 我使用 WAV 文件和 PyAudio 解决了这个问题
  • 您能与我们分享您的发现吗?例如贴一些代码?

标签: python tcp udp mp3


【解决方案1】:

使用 udp 进行实时流式传输意味着类似于 rtsp 流式传输。如果您想这样做,请查看 live555。其中有一个可用的服务器 [live555mediaServer 或类似名称],您可以将其用于 rtsp 流。

Gstreamer 还可以让您只使用纯 rtp 进行基本流。类似以下管道的东西可以让你做到这一点。

 gst-launch filesrc location=<yourfile> ! mp3parse ! rtpmpapay <someoptions> ! udpsink port=<someport>

您可以接收它并对其进行去抖动,然后对其进行解码,然后解码并播放它

 gst-launch udpsrc port<the-some-port in the sender> ! gstrtpjitterbuffer ! rtpmpapay ! decodebin2 ! queue ! autoaudiosink

或者您可以使用 ffserver 进行流式传输。用谷歌搜索了解 rtp/rtsp 会帮助你理解这些东西。已经有很多服务器可用于发送数据。 [达尔文,Live555]

还有其他形式的流媒体 [rtmp 需要 flv 文件] 以及流畅的流媒体和 HLS。 RTSP 才是真正的直播协议。

【讨论】:

    猜你喜欢
    • 2013-04-13
    • 2021-01-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-19
    • 1970-01-01
    相关资源
    最近更新 更多