【问题标题】:Streaming media files via DLNA/UPnP通过 DLNA/UPnP 流式传输媒体文件
【发布时间】:2013-03-11 00:36:36
【问题描述】:

我目前在我的 Raspberry Pi 上运行 Raspbmc 并激活了 UPnP 流式渲染。

我的目标是编写一个简单的 Python 来流式传输视频或音乐播放列表。

我尝试过Coherence,但它抛出了一堆异常,我并没有真正理解documentation is pretty chaotic 的意义。所以我正在寻找一种更简单的方法/库。

使用 Python 将媒体文件流式传输到电视的最简单方法是什么?

【问题讨论】:

  • 据我了解,DLNA 是一个非常复杂的标准,因此(我在这里猜测)异常可能是您必须处理的问题。也许值得一提的是你得到了哪些?如果您不需要自己编写程序,Mediatomb 和 minidlna 能够从 Pi 流式传输。
  • 谢谢,我去看看Mediatomb和minidlna。正如我所说,刚开始连贯性时,我可能会遇到一百个例外,但其中大多数都与 Tornado 有关:File "/Users/.../Envs/UPNP/lib/python2.7/site-packages/twisted/internet/selectreactor.py", line 145, in doSelect _logrun(selectable, _drdw, selectable, method, dict) --- <exception caught here> --- File "/Users/.../Envs/UPNP/lib/python2.7/site-packages/twisted/python/log.py", line 88, in callWithLogger return callWithContext({"system": lp}, func, *args, **kw)
  • 你实现了你想做的事吗?我也在尝试连贯性,但除非您修补连贯性文件,否则似乎扭曲和连贯性不能很好地协同工作。
  • 到目前为止你能发布你的代码吗?
  • DLNA 是一种复杂的专有协议。我目前正在使用minidlna

标签: python streaming upnp dlna


【解决方案1】:

有一个轻量级的纯 python 库dlnap 允许在同一本地网络中的 DLNA/UPnP 设备上播放媒体

【讨论】:

    【解决方案2】:

    您可以通过the gi.repository 为python 使用GUPnP 绑定。在documentation 中搜索 GUPnP 和 GSSDP、GUPnP AV。

    您可以将它们与运行 django+SQLite 数据库的迷你网络服务器相结合,以定义一种内容目录服务 (CDS),也可以使用 Gstreamer(存在称为 Gst 的 Python 绑定)。使用这些元素,您可以使用 SSDP 为发现的内容构建自定义服务器;您可以从 gstreamer 获取有关每个媒体项目的元数据,还可以使用 gstreamer 的“rtspsrc”进行流式传输。

    【讨论】:

      【解决方案3】:

      仅适用于音频, 我用rygel得到了很好的结果。 棘手的部分是在 .config/rygel.conf 中配置 GstLaunch pulseaudio 连接器。 这是我的部分,但您可以使用以下命令获取正确的脉冲音频源:

      pactl list | egrep -A2 '^(\*\*\* )?Source #' | grep 'Name: .*\.monitor$' | awk '{print $NF}' | tail -n1
      

      这是我的 GstLaunch 部分:

      [GstLaunch]
      enabled=true
      launch-items=myaudiowav;myaudiompeg
      
      myaudiowav-title=WAV audio on @HOSTNAME@
      myaudiowav-mime=audio/x-wav
      myaudiowav-launch=pulsesrc device=alsa_output.pci-0000_00_14.2.analog-stereo.monitor ! audio/x-raw,channels=2 ! wavpackenc
      
      myaudiompeg-title=MPEG audio on @HOSTNAME@
      myaudiompeg-mime=audio/mpeg
      myaudiompeg-launch=pulsesrc device=alsa_output.pci-0000_00_14.2.analog-stereo.monitor ! audio/x-raw,channels=2 ! lamemp3enc target=quality q
      uality=6
      

      【讨论】:

        猜你喜欢
        • 2018-07-27
        • 2016-02-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多