作者:jacksky6
【写作说明】
本人是4K UHD 原盘收集 的重度用户,一直使用Emby来管理硬盘里面的大量原盘。目前的情况是Emby可以获取到1080P原盘的媒体信息并进行串流,但是对于2160p 4K UHD 原盘只能进行搜索删除的管理和海报匹配,不能获取其媒体音轨字幕信息并进行串流。
本人大部分的观影采用山寨碟机,同时也采用AppleTV + infuse + emby插件 (看剧集居多) 或者 iphone + infuse + emby插件 (看不完回床上继续) 来观影。由于碟机的mkv兼容性极差,所以收集mkv是不可能的了,也不想搞多版本,想想还是得原盘啊。
对于影音的分类和管理,纯手动的话还是有查找难、洗版难、移动分类难的问题。有大量影片的话更加重了工作量。我现在使用硬链接+ Emby完成影片的查找、分类、删除和移动工作,基本上告别了文件管理器中的操作。(为此还开发了一个chrome的 emby 插件,目前功能还比较简陋)
【目前状况】
当前Emby版本4.6.7.0
【Emby日志展示】
当Emby添加UHD 文件夹原盘的时候,我们查看日志发现如下信息:
2022-08-14 09:33:57.877 Error App: Error in ffprobe
*** Error Report ***
Version: 4.7.5.0
Command line: /system/EmbyServer.dll -programdata /config -ffdetect /bin/ffdetect -ffmpeg /bin/ffmpeg -ffprobe /bin/ffprobe -restartexitcode 3
Operating system: Linux version 4.4.180+ (root@build3) (gcc version 8.5.0 (GCC) ) #42661 SMP Mon Jun 27 15:05:48 CST 2022
Framework: .NET 6.0.2
OS/Process: x64/x64
Runtime: system/System.Private.CoreLib.dll
Processor count: 4
Data path: /config
Application path: /system
System.Exception: System.Exception: Clip info file 00002.clpi has an unknown file type HDMV0300.
at BDInfo.BDROM.Scan()
at BDInfo.BdInfoExaminer.GetDiscInfo(String path)
at BlurayMounter.BlurayMounter.Mount(ReadOnlyMemory`1 mediaPath, ReadOnlyMemory`1 container, CancellationToken cancellationToken)
at Emby.Server.Implementations.IO.MediaMountManager.Mount(ReadOnlyMemory`1 mediaPath, ReadOnlyMemory`1 container, CancellationToken cancellationToken)
at Emby.Providers.MediaInfo.FFProbeVideoInfo.ProbeVideo[T](MetadataResult`1 metadataResult, MetadataRefreshOptions options, LibraryOptions libraryOptions, CancellationToken cancellationToken)
at Emby.Providers.Manager.MetadataService`2.RunCustomProvider(ICustomMetadataProvider`1 provider, MetadataResult`1 itemResult, String logName, MetadataRefreshOptions options, LibraryOptions libraryOptions, RefreshResult refreshResult, CancellationToken cancellationToken)
Source: BlurayMounter
TargetSite: Void Scan()
通过分析我们发现问题出在BlurayMounter这个插件上,它并不能识别HDMV0300这个格式的clpi,实际上在蓝光文件夹的结构上,如果我们只是想找到最终的m2ts文件并播放,HDMV0300和HDMV0200是没什么区别的。
【修改BlurayMounter.dll文件】
使用 .Net反编译工具 dnSpyEx/dnSpy 的最新版本6.2 修改BlurayMounter.dll文件。
BlurayMounter.dll 文件在Emby安装目录的system文件夹下的plugins文件夹下,请注意备份。
请在Emby关闭的情况下修改替换
使用修改后的BlurayMounter.dll替换源文件即可,Linux下请注意修改权限。
【效果展示】
【总结】
目前 appletv/iphone 配合 infuse 在挂载 Emby 的情况下基本上可以在不转码的情况下播放除了肉酱原盘外的所有资源。
【补充:关于und的问题】
由于Emby使用ffmpeg和ffprobe进行媒体信息的获取和串流,此工具最终是要定位到蓝光的m2ts文件,并在其中查找影片的音轨语言和字幕语言,但是目前的大部分蓝光,音轨/字幕语言信息并不存储在m2ts文件中,而是存储在蓝光文件夹下的BDMV/PLAYLIST/*.mpls文件中,所以就会出现音轨或字幕语言显示undefined未指定的问题。当我们在电脑上将m2ts直接拖到播放器中一样也是看不到音轨/字幕语言。这点估计将来也是无解。
4000520066 欢迎批评指正
All Rights Reserved 新浪公司 版权所有