从RPi到电视的MiniDLNA(docker)流被卡住/使用.mkv文件进行非常慢的缓冲
设置: 我有一个RPI4,带有miniDLNA(ReadyMedia)和samba,每个都在docker中运行,一个SSD通过USB3连接到RPi,一个电视通过WiFi连接。所有设备都在我的区域设置网络中。SSD的格式为ext4。我可以通过samba访问SSD上的文件夹,该文件夹也可以用作miniDLNA卷 我通过LAN和WiFi将速度大约为90MB/s的数据传输到我的samba共享。但问题是,当通过miniDLNA传输视频时,我注意到缓冲时间很长,通常在观看几秒钟后就会卡住(无论是在电视[WiFi]还是在Win10机器[LAN]上)。直到现在,我才注意到.mp4文件的这种行为,只有.mkv文件。视频文件为1080p 我使用的两个docker文件分别是from和 我不认为这是docker compose文件的问题,而不是编码问题,但这是我的docker compose文件:从RPi到电视的MiniDLNA(docker)流被卡住/使用.mkv文件进行非常慢的缓冲,docker,encoding,raspberry-pi,samba,dlna,Docker,Encoding,Raspberry Pi,Samba,Dlna,设置: 我有一个RPI4,带有miniDLNA(ReadyMedia)和samba,每个都在docker中运行,一个SSD通过USB3连接到RPi,一个电视通过WiFi连接。所有设备都在我的区域设置网络中。SSD的格式为ext4。我可以通过samba访问SSD上的文件夹,该文件夹也可以用作miniDLNA卷 我通过LAN和WiFi将速度大约为90MB/s的数据传输到我的samba共享。但问题是,当通过miniDLNA传输视频时,我注意到缓冲时间很长,通常在观看几秒钟后就会卡住(无论是在电视[Wi
version: '3.4'
services:
samba:
image: dperson/samba
environment:
TZ: 'Europe/Berlin'
USER: 'username;password'
SHARE: 'share;/mnt/transit;yes;no;yes'
ports:
- "137:137/udp"
- "138:138/udp"
- "139:139/tcp"
- "445:445/tcp"
restart: unless-stopped
volumes:
- "/mnt/transit:/mnt/transit"
command: '-p'
dlna:
image: ypopovych/readymedia
network_mode: "host"
environment:
FRIENDLY_NAME: "DLNA4B"
VIDEO_DIR1: "/media"
volumes:
- "/mnt/transit/videos:/media"
- "readymediacache:/cache"
ports:
- 8200:8200
restart: unless-stopped
depends_on:
- "samba"
volumes:
readymediacache:
有没有人有过类似的行为
编辑:
经过进一步测试,我可以排除miniDLNA和samba。我在我的RPi上的SD卡上创建了一个共享,并从那里播放了一段mkv视频。根本没有缓冲问题。当我从通过USB3连接的SSD播放时,每隔几秒钟就会出现缓冲问题。当这种情况发生时,SSD在几秒钟内根本没有响应。这很奇怪,因为从SSD通过网络以恒定的90-100MB/s进行读写操作。Hey@landmann123我在这里遇到了完全相同的问题!我将添加一些细节,以再次检查您的场景 我正在使用
raspbian-nspawn-64
通过x64终端ds64 shell运行docker。你是怎么管理你的码头工人的?这是我的docker信息:
pi@debian-buster-64:~$sudo docker--版本
Docker版本19.03.13,内部版本4484c46
pi@debian-buster-64:~$sudo docker compose--版本
docker compose版本1.21.0,构建未知
你查过minidlna日志了吗?我以前尝试过几个图像-其中一个我发现了一个错误upnphttp.c:1272:debug:sendfile error::error no.32[breaked pipe]
,这似乎是一些断开的连接,尽管它们的服务器上没有文档化的解决方案
我使用一些avi文件和这个示例进行了测试。我也遇到了同样的问题,唯一的区别是mp4在其他10秒中比buffer播放0.5秒,而.avi(大约180MB)需要1到2分钟的时间来缓冲并播放0.5秒,然后两者都随机卡住或再播放0.5秒
我怀疑这可能是一个网络问题(可能只是与docker有关),尽管我有一个fibre 100/20,我曾经在另一个raspbian图像中使用minidlna,效果非常好,所以我需要澄清一点这个理论。顺便说一下,如果您使用网络模式:主机
将忽略端口
编辑:我尝试了ypopovych/readymedia
图像,但遇到了相同的问题,比较了图像,我注意到这张图像只是警告日志级别,可能在您的案例中隐藏了一些调试/提示。minidlna版本与我的图像相同,它使用的是tini
,我删除它只是为了再次检查,尽管它很少会改变某些东西
所有这些变化都导致了相同的结果。另外,您可以在minidlna命令上启用调试和详细模式,并使用相应的参数-d
和-v
。请在下面的一个日志中找到我正在使用的参数和minidlna版本:
++ /usr/sbin/minidlnad -d -v -P /minidlna/minidlna.pid -S
minidlna.c:1048: warn: Starting MiniDLNA version 1.2.1.
Server: 5.4.27-0-lts DLNADOC/1.50 UPnP/1.0 MiniDLNA/1.2.1
使用ypopovych/readymedia
我尝试使用/不使用指定卷进行缓存,但没有发生任何变化。其中一次测试中,我暂停了视频几分钟(只是为了检查它是否能缓冲所有内容,谁知道呢),但出现了相同的错误。我怀疑它可能是在转移之前的一些渲染内容,VLC在被卡住时显示了一个金条,因为它在等待一些东西,比如:
p.S.:我尝试使用windows机器和iPad进行的所有测试-都是VLC。我安装了一个SD路径和一个外部HD,都有相同的问题。虽然只使用SMB,但我能够在两种设备和两种路径上播放。啊,我还没有试着在本地玩《覆盆子》,看看它是否在网络上,这将是另一件事来尝试
更新:在DLNA上运行Raspberry的VLC可以在两个图像和两条路径上工作!这又把我带到了网络上,顺便说一句,断管错误出现在日志中,即使它工作起来很有魅力:
minidlna.c:1309: debug: HTTP connection from 192.168.1.11:46616
upnphttp.c:259: debug: Range Start-End: 10117400 - -1
clients.c:331: debug: Client found in cache. [Generic UPnP 1.0/entry 0]
upnphttp.c:889: debug: HTTP REQUEST: GET /MediaItems/9074.avi HTTP/1.1
Host: 192.168.1.11:8200
Accept: */*
Accept-Language: en_US
User-Agent: VLC/3.0.11 LibVLC/3.0.11
Range: bytes=10117400-
upnphttp.c:1937: info: Serving DetailID: 9074 [/media/animes/bleach 2004/S01E030.avi]
upnphttp.c:1281: debug: sendfile error :: error no. 32 [Broken pipe]
嘿@landmann123我这里有完全相同的问题!我将添加一些细节,以再次检查您的场景
我正在使用raspbian-nspawn-64
通过x64终端ds64 shell运行docker。你是怎么管理你的码头工人的?这是我的docker信息:
pi@debian-buster-64:~$sudo docker--版本
Docker版本19.03.13,内部版本4484c46
pi@debian-buster-64:~$sudo docker compose--版本
docker compose版本1.21.0,构建未知
你查过minidlna日志了吗?我以前尝试过几个图像-其中一个我发现了一个错误upnphttp.c:1272:debug:sendfile error::error no.32[breaked pipe]
,这似乎是一些断开的连接,尽管它们的服务器上没有文档化的解决方案
我使用一些avi文件和这个示例进行了测试。我也遇到了同样的问题,唯一的区别是mp4在其他10秒中比buffer播放0.5秒,而.avi(大约180MB)需要1到2分钟的时间来缓冲并播放0.5秒,然后两者都随机卡住或再播放0.5秒
我怀疑这可能是一个网络问题(可能只是与docker有关),尽管我有一个fibre 100/20,我曾经在另一个raspbian图像中使用minidlna,效果非常好,所以我需要澄清一点这个理论。顺便说一下,如果您使用网络模式:主机端口