Emby高级教程:修改支持4K UHD 文件夹原盘

2022-08-29 19:47:01 24点赞 164收藏 39评论

【写作说明】

本人是4K UHD 原盘收集 的重度用户,一直使用Emby来管理硬盘里面的大量原盘。目前的情况是Emby可以获取到1080P原盘的媒体信息并进行串流,但是对于2160p 4K UHD 原盘只能进行搜索删除的管理和海报匹配,不能获取其媒体音轨字幕信息并进行串流。

本人大部分的观影采用碟机,同时也采用AppleTV + infuse + emby插件 (看剧集居多) 或者 iphone + infuse + emby插件 (看不完回床上继续) 来观影。由于碟机的mkv兼容性极差,所以收集mkv是不可能的了,也不想搞多版本,想想还是得原盘啊。

对于影音的分类和管理,纯手动的话还是有查找难、洗版难、移动分类难的问题。有大量影片的话更加重了工作量。我现在使用硬链接+ Emby完成影片的查找、分类、删除和移动工作,基本上告别了文件管理器中的操作。(为此还开发了一个chrome的 emby 插件,目前功能还比较简陋)

Emby高级教程:修改支持4K UHD 文件夹原盘

【目前状况】

当前Emby版本4.6.7.0

Emby高级教程:修改支持4K UHD 文件夹原盘

【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关闭的情况下修改替换

1、使用dnSpy打开 BlurayMounter.dll 文件

Emby高级教程:修改支持4K UHD 文件夹原盘

2、修改BlurayMounter.dll > BDInfo > TSPlaylistFile类 > Scan方法

if (this.FileType != "MPLS0100" && this.FileType != "MPLS0200")

修改为:

if (this.FileType != "MPLS0100" && this.FileType != "MPLS0200" && this.FileType != "MPLS0300")

Emby高级教程:修改支持4K UHD 文件夹原盘

Emby高级教程:修改支持4K UHD 文件夹原盘

3、修改BlurayMounter.dll > BDInfo > TSStreamClipFile类 > Scan方法

if (this.FileType != "HDMV0100" && this.FileType != "HDMV0200")

修改为

if (this.FileType != "HDMV0100" && this.FileType != "HDMV0200" && this.FileType != "HDMV0300")

Emby高级教程:修改支持4K UHD 文件夹原盘

Emby高级教程:修改支持4K UHD 文件夹原盘

4、保存修改后的dll模块

Emby高级教程:修改支持4K UHD 文件夹原盘

5、使用修改后的BlurayMounter.dll替换源文件即可,Linux下请注意修改权限。

【效果展示】

Emby高级教程:修改支持4K UHD 文件夹原盘

【总结】

目前 appletv/iphone 配合 infuse 在挂载 Emby 的情况下基本上可以在不转码的情况下播放除了肉酱原盘外的所有资源。

【补充:关于und的问题】

由于Emby使用ffmpeg和ffprobe进行媒体信息的获取和串流,此工具最终是要定位到蓝光的m2ts文件,并在其中查找影片的音轨语言和字幕语言,但是目前的大部分蓝光,音轨/字幕语言信息并不存储在m2ts文件中,而是存储在蓝光文件夹下的BDMV/PLAYLIST/*.mpls文件中,所以就会出现音轨或字幕语言显示undefined未指定的问题。当我们在电脑上将m2ts直接拖到播放器中一样也是看不到音轨/字幕语言。这点估计将来也是无解。

作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~

展开 收起
39评论

  • 精彩
  • 最新
  • 请问infuse 可以直接完美读取4k uhd 原盘吗

    校验提示文案

    提交
    除了肉酱盘之外的可以

    校验提示文案

    提交
    收起所有回复
  • 另外楼主,不管我用哪种方式刮削,播放时选择音频文件,只会显示格式,字幕文件全是未知,和你最后一张图中显示的媒体信息类似

    校验提示文案

    提交
    是这样的,因为emby读取蓝光结构采用了老旧的方案,新的4k原盘和部分1080p原盘已经不把音频字幕信息封装在m2ts中了,你电脑直接播放这个文件一样也是未知

    校验提示文案

    提交
    收起所有回复
  • 楼主 编译后代码报错 能把你修改好的dll文件分享一下吗

    校验提示文案

    提交
  • 大神,我播放4K UHD原盘提示当前没有兼容的流,咋解决?

    校验提示文案

    提交
  • 我把Model和修改好的文件都放在网盘了,可以直接替换
    去看看

    校验提示文案

    提交
    感谢🙏

    校验提示文案

    提交
    收起所有回复
  • 修改后的文件,需要的自取,替换即可,注意dsm7是替换@appdata/EmbyServer/plugins中的文件
    https://pan点baidu点com/s/1suzErHLNZuJRYJxNi_uPeg?pwd=si5w

    校验提示文案

    提交
  • 好复杂,我还是选择别人封装过的吧

    校验提示文案

    提交
    按照楼主教程,到中间选择替换文件 MediaBrowser.MODEL.DLL找不到这个文件,请问这个文件哪里来的?emby系统文件没有啊

    校验提示文案

    提交
    我的docker版的,也是找不到这个文件,难道只能是安装到windows才能用?

    校验提示文案

    提交
    还有1条回复
    收起所有回复
  • 能不能分享一下?

    校验提示文案

    提交
  • 欢迎讲解原理的,但是基本你都修改好的dll,可分享出来,可好?

    校验提示文案

    提交
  • 借楼问一下老哥,请问docker版的emby怎么没办法添加除了/mnt/share1以外的文件夹,nas里的另一张盘在docker里转载为/media,在添加文件夹里能看到这个文件夹,但是选中这个文件夹后没有出现子文件夹,请问是啥原因?

    校验提示文案

    提交
  • 好帖 [赞一个] 问个可能不相关的问题,我是用的n1装的coreelec然后用emby插件,我发现用coreelec直接从nas播放原盘没有卡顿,但是透过emby从他的地址去播放的话就不一定了。主要是大一点,高码率的那些

    校验提示文案

    提交
  • 按照楼主方法一步一步修改后,还是放不了原盘,看日志还是和楼主上面的错误日志一致

    校验提示文案

    提交
  • Emby支持原盘ISO了吗

    校验提示文案

    提交
    支持的

    校验提示文案

    提交
    怎么设置播放iso原盘?

    校验提示文案

    提交
    还有1条回复
    收起所有回复
  • 虽然不想做伸手党,但尝试改了多次,点编译的时候都报错无数条,楼主能否发个改好的文件给我

    校验提示文案

    提交
    一样报错,无法保存,谁有编译好的能发一份吗?

    校验提示文案

    提交
    同求同求

    校验提示文案

    提交
    还有3条回复
    收起所有回复
  • 我的jellyfin好像支持

    校验提示文案

    提交
  • 我是4.7.11版本,貌似4k的文件夹原盘还是没法播放显示没有兼容的流。。。1080p的文件夹原盘没问题

    校验提示文案

    提交
  • 你好,刚搭建了开心版,在公司观看视频家里的emby时候速度只有50m左右,家里的上传是100m的,请问有解决方法吗?
    公司看是ipad infuse看的

    校验提示文案

    提交
  • 无意中翻到楼主的帖子,我也有类似的问题,但我用的是Jellyfin
    我的问题是单独刮某一部2160P电影原盘目录,就能成功刮出包括主视频、片头及广告在内的所有视频文件,结果是在Jellyfin中显示一堆乱七八糟的电影,是根据m2ts文件名查找到的最接近的电影,比如文件名013.m2ts就刮出阿波罗十三号这部电影。
    如果刮原盘目录的上一级文件夹(大家下载电影一般会集中存在某一个目录中,刮也是刮这个目录),会刮出一个视频,我分析是根据原盘文件夹名刮出来的,而不是刮到视频文件(*.m2ts),因为刮出来的唯一视频,路径没有指定任何视频文件,而是路径为原盘文件夹本身,在播放端我使用的是KODI,播放会显示“一个或多个项目播放失败。更多相关信息见日志。”,原因就是路径没有指定到具体视频文件,软件不晓得你要播放的是什么

    校验提示文案

    提交
    我也遇到,一个或多个播放失败,请问KODI播放ISO能解决这个问题吗?

    校验提示文案

    提交
    收起所有回复
  • 解决了困扰我已久的问题,infuse+emby无法播放BDMV原盘的问题折腾好久,谢谢大神!

    校验提示文案

    提交
    你好,你最后搞定了吗,我编译后还是同样报错

    校验提示文案

    提交
    链接已发,自取

    校验提示文案

    提交
    收起所有回复
  • 感谢教程,虽然jellyfin支持,但是强迫症又喜欢EMBY的美化。BDMV读取不了让人头大

    校验提示文案

    提交
提示信息

取消
确认
评论举报

相关文章推荐

更多精彩文章
更多精彩文章
最新文章 热门文章
164
扫一下,分享更方便,购买更轻松