我正在家庭网络上的一台计算机上运行 Ubuntu 20.04 服务器(全新安装)。经过一番努力(将渲染器:网络管理器添加到 /etc/netplan/00-installer-config.yaml),我能够使用 GUI 中的设置应用程序共享媒体文件。现在,我的海信 32K3110W 电视可以看到我的服务器并访问我的视频目录。不幸的是,Rygel 似乎不共享我的 .mpg 文件,这是我的大多数电影的格式。只有 .avi 和 .mov 文件对电视可见。我知道这不是电视端的问题,因为当我将 .mpg 文件复制到 USB 设备并将其直接插入电视时,它既可以看到它们,又可以完美播放它们。我当前的 rygel.conf 文件是:
[常规] upnp-enabled=true enable-transcoding=true video-upload-folder=@VIDEOS@ music-upload-folder=@MUSIC@ picture-upload-folder=@PICTURES@ media-engine=librygel-media-engine-gst.so interface= port=0 log-level=*:4 allow-upload=true allow-deletion=true acl-fallback-policy=true
[GstMediaEngine] 转码器=mp3;lpcm;mp2ts;wmv;aac;avc
[渲染器] 图像超时 = 15
[Tracker] enabled=true only-export-from=@MUSIC@;@VIDEOS@;@PICTURES@ share-pictures=true share-videos=true share-music=true strict-sharing=false title=@REALNAME@ 在 @PRETTY_HOSTNAME@ 上的媒体
[LMS] enabled=false title=@REALNAME@ 在 @PRETTY_HOSTNAME@ 上的媒体
[MediaExport] enabled=false title=@REALNAME@ 在 @PRETTY_HOSTNAME@ 上的媒体 uris=@MUSIC@;@VIDEOS@;@PICTURES@ extract-metadata=true monitor-changes=true monitor-grace-timeout=5 virtual-folders=true
[Playbin] enabled=true title=@PRETTY_HOSTNAME@ 上的音频/视频播放 #audio-sink=autoaudiosink #video-sink=fakesink
[GstLaunch] enabled=false launch-items=audiotestsrc;videotestsrc;videotestoverlay audiotestsrc-title=Audiotestsrc audiotestsrc-mime=audio/x-wav audiotestsrc-launch=audiotestsrc !wavenc videotestsrc-title=Videotestsrc videotestsrc-mime=video/mpeg videotestsrc-launch=videotestsrc !avenc_mpeg2video !mpegtsmux videotestoverlay-title=Videotestsrc with timeoverlay 2 videotestoverlay-mime=video/mpeg videotestoverlay-launch=videotestsrc !timeoverlay !avenc_mpeg2video !mpegtsmux
[测试] enabled=false
[示例服务器插件值] enabled=false
[示例服务器插件C] enabled=false
[示例渲染器插件值] enabled=false
[示例渲染器插件C] enabled=false
[MPRIS] 已启用=false
[外部] enabled=false
[Ruih] enabled=false title=Rygel 远程 UI 服务器
我是 Ubuntu 和 Linux 的新手。很可能我错过了一些显而易见的东西。我花了几个小时在网上寻找解决方案,但没有结果。如果有能干的人能帮助我,我将不胜感激。
答案1
我认为不太可能有人会回答,所以我将发布我的最终解决方案,以防将来对其他人有所帮助。首先,我学到的东西虽然最后并不相关,但很实用。使用 GUI 中的设置应用程序时与媒体共享相关的 rygel.conf 文件位于 ~/.config 中。据我所知,除非您从命令行启用媒体共享,否则其他 rygel.conf 无关紧要。
我的共享问题是由于 Rygel 将所有 .mpg 文件列入黑名单。数据库 ~/.cache/rygel/media-export.db 清楚地显示了黑名单。我在网上找到了几个地方,Rygel 项目的“老板” [电子邮件保护],建议使用他编写的 gnome 脚本 mx-info 来取消文件黑名单。不幸的是,我远不如[电子邮件保护]所以我无法让它工作。如果你很聪明,我建议你进一步研究一下。如果你和我一样“有挑战性”,你可能不得不遵循下面描述的我最终的、半心半意的解决方案。
最后,我只是使用 ffmpeg 将所有 .mpg 文件转换为 .avi 文件,然后删除原始 .mpg 文件以节省磁盘空间。我使用 Winff GUI 前端,因为它很容易批量处理大量文件。我不得不让转换在后台运行大约四天,但现在我可以在电视上观看来自 Ubuntu 服务器的视频。我已经使用 Samba 在网络上共享了我的视频文件夹(启用 SMB2 后),因此我们家庭网络上的所有 Windows 和 Chrome OS 机器都可以播放 mpeg2 格式的所有电影,成功分享到智能电视是拼图的最后一块。