VLC 和 MPV 无法播放来自 samba 共享的视频文件

VLC 和 MPV 无法播放来自 samba 共享的视频文件

这涉及到自由箱 流行音乐服务器,但(见末尾的注释)不仅限于 Freebox 服务器,因为所有 samba 共享都受到影响。Freebox 有一个 USB 入口,我在其中放置了一个外部 2 GB 驱动器,其中主要包含视频,因此我可以使用 Android TV 设备(或手机等)访问和播放这些视频。

但令我惊讶的是,在一台运行 Kubuntu 22.04 的相当旧的笔记本电脑上,Dolphin 可以访问该驱动器并对其进行更改,我通常使用的视频播放器 VLC 和 MPV 无法播放视频文件。

照片可以通过 Gwenview 立即打开。

PDF 在 Okular 中打开,但文件似乎首先复制到计算机上。

MPV 出现此错误:

mpv 'smb://freebox-server.local/Volume 2000Go/FILME/IT_2/---a-voir/A.Mezzanotte.Va.La.Ronda.Del.Piacere.1975.mkv' 
[ffmpeg] Protocol not found. Make sure ffmpeg/Libav is compiled with networking support.
Failed to open smb://freebox-server.local/Volume 2000Go/FILME/IT_2/---a-voir/A.Mezzanotte.Va.La.Ronda.Del.Piacere.1975.mkv.

Exiting... (Errors when loading file)

可能是 ffmpeg 特有的,但VLC也无法播放:

vlc 'smb://freebox-server.local/Volume 2000Go/FILME/Les Felins_a.en-fr.mkv' 
VLC media player 3.0.16 Vetinari (revision 3.0.13-8-g41878ff4f2)
[00005558f566b640] main libvlc: Running vlc with the default interface. Use 'cvlc' to use vlc without interface.
[00007fbf3c0016f0] smb stream error: read failed (Broken pipe)
[00007fbf3c0016f0] smb stream error: read failed (Broken pipe)
[00007fbf3c04dc30] mkv demux error: cannot find any cluster or chapter, damaged file ?
[00007fbf3c0016f0] smb stream error: read failed (Broken pipe)
[00007fbf3c04dc30] mjpeg demux error: cannot peek
uint DBusMenuExporterDBus::GetLayout(int, int, const QStringList&, DBusMenuLayoutItem&): Condition failed: menu
uint DBusMenuExporterDBus::GetLayout(int, int, const QStringList&, DBusMenuLayoutItem&): Condition failed: menu

VLC 的 snap 版本提供如下功能:

env BAMF_DESKTOP_FILE_HINT=/var/lib/snapd/desktop/applications/vlc_vlc.desktop /snap/bin/vlc
VLC media player 3.0.19 Vetinari (revision 3.0.19-0-g32b50de2a2)
[000055698c544b10] main libvlc: Running vlc with the default interface. Use 'cvlc' to use vlc without interface.
Qt: Session management error: Could not open network socket
[000055698c5db150] main playlist: playlist is empty
Sending netbios packet to 192.168.1.255
uint DBusMenuExporterDBus::GetLayout(int, int, const QStringList&, DBusMenuLayoutItem&): Condition failed: menu
netbios_ns_resolve, wrong query type received
uint DBusMenuExporterDBus::GetLayout(int, int, const QStringList&, DBusMenuLayoutItem&): Condition failed: menu
uint DBusMenuExporterDBus::GetLayout(int, int, const QStringList&, DBusMenuLayoutItem&): Condition failed: menu

进而,-v参数

env BAMF_DESKTOP_FILE_HINT=/var/lib/snapd/desktop/applications/vlc_vlc.desktop /snap/bin/vlc -v 'smb://freebox-server.local/Volume 2000Go/FILME/Les Felins_a.en-fr.mkv' 
VLC media player 3.0.19 Vetinari (revision 3.0.19-0-g32b50de2a2)
[000055792cde9b10] main libvlc: Running vlc with the default interface. Use 'cvlc' to use vlc without interface.
Qt: Session management error: Could not open network socket
Sending netbios packet to 192.168.1.255
netbios_ns_resolve, wrong query type received
uint DBusMenuExporterDBus::GetLayout(int, int, const QStringList&, DBusMenuLayoutItem&): Condition failed: menu
uint DBusMenuExporterDBus::GetLayout(int, int, const QStringList&, DBusMenuLayoutItem&): Condition failed: menu

咖啡因:

kaffeine 'smb://freebox-server.local/Volume 2000Go/FILME/Les Felins_a.en-fr.mkv' 
25-01-24 09:15:20.516 [Warning ] QCommandLineParser: already having an option named "h"
25-01-24 09:15:20.516 [Warning ] QCommandLineParser: already having an option named "help-all"
25-01-24 09:15:20.516 [Warning ] QCommandLineParser: already having an option named "v"
25-01-24 09:15:20.850 [Info    ] kaffeine.dvb: Using built-in dvb device manager
[00007fef1c001650] smb stream error: read failed (Broken pipe)
[00007fef1c001650] smb stream error: read failed (Broken pipe)
[00007fef1c050650] mkv demux error: cannot find any cluster or chapter, damaged file ?
[00007fef1c001650] smb stream error: read failed (Broken pipe)
[00007fef1c050650] mjpeg demux error: cannot peek
[000056398694af50] main input error: Your input can't be opened
[000056398694af50] main input error: VLC is unable to open the MRL 'smb://freebox-server.local/Volume%202000Go/FILME/Les%20Felins_a.en-fr.mkv'. Check the log for details.

尝试与Gwenview合作:

kf.kio.widgets: Failed to check which JobView API is supported "The name org.kde.kuiserver was not provided by any .service files"

Kodi 允许添加 Freebox 共享位置,然后开始播放视频(尽管有时会冻结)。

我也惊喜地发现Xine 可以很轻松地播放这些视频(即刻!)。

但其他播放器也可以使用,比如 Totem(Gnome 的“视频”)和 Glide,以 flatpak 形式安装。


在 Ubuntu 22.04(Gnome)的实时会话中测试时,MPV 和 VLC 存在同样的问题 - 而文件管理器(Nautilus)可以访问这些文件,Gnome 视频播放器(“视频”,我猜是 Totem)可以播放视频(安装所需的编解码器后)。


这些问题是否相关或者我应该分别处理它们(MPV 和 VLC)?


说明和更新:

  • kio-fuse已安装
  • 这不仅限于(经过更多测试)Freeebox Samba 共享,也包括其他 Samba 共享:出于测试目的,我在我的 Android 手机上创建了一个 Samba 共享,手机上的视频与 Kubuntu 22.04 上的 MPV 和 VLC 存在同样的问题
  • 使用 Solid File Explorer 在 FTP 上共享 Android 手机的“电影”文件夹,它们可以通过 Kubuntu 22.04 上的 VLC 和 MPV 播放
  • 除了Kodi,还有SMPLayer,虽然使用mpv作为后端,也可以播放samba共享的视频!
  • 其他基于 mpv 的播放器(如 Haruna 和 QMPlay2)无法使用

答案1

解决方案来自这里,讨论原因这里这里链接到这里。我不太明白,但是——引用:

该问题似乎是以下几个方面的综合:

  • 使用海豚作为文件浏览器来访问网络共享

  • 当你点击相关文件时,Dolphin 只会向 mpv 提供 smb:// url

  • mpv 推迟到 ffmpeg 以获得 smb 支持来访问文件

一些评论指责 Dolphin,但我也在 Gnome 和 Nautilus 中看到过这种情况。

解决方案是从MPV 启动器行中删除变量(其中一条评论还建议删除和)(将其从 复制到并在smb那里ftp编辑)。ftpsX-KDE-Protocols=.desktopusr/share/applications~/.local/share/applications

(这似乎只是一种变通方法 - 让玩家绕过有缺陷的区域,而不是解决问题的方法。)

我发现同样的更改也修复了 VLC 的问题。Kaffeine 和 Haruna 也得到了修复添加该行(没有 smb等等),默认情况下,它们在各自的.desktop文件中是不存在的。

相关内容