通过 DLNA/UPnP 流媒体文件

问题描述 投票:0回答:4

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

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

我已经尝试过Coherence,但它抛出了一堆异常,而且我并没有真正明白这一点,因为文档非常混乱。所以我正在寻找一种更简单的方法/库。

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

python streaming upnp dlna
4个回答
5
投票

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


1
投票

您可以通过 gi.repository 使用 Python 的 GUPnP 绑定。在文档中搜索 GUPnP 和 GSSDP、GUPnP AV。

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


1
投票

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

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

0
投票

我已经成功使用 nano-dlna,它的源代码也相当简单:它提供您想要通过 HTTP 播放的文件,然后在指定的 DMR(DLNA 渲染器)上发出

SetAVTransportURI
/
Play
调用) 终点。

© www.soinside.com 2019 - 2024. All rights reserved.