本帖最后由 Yuran 于 2023-11-13 10:39 编辑
AI归档, 这是家庭影院片源(自动化)管理的重要环节之一! 不小的(编程)工作量。
毕竟,咱不是职业程序员。只是出于自身的(业余)爱好,发挥特长吧,力图创新!
这是本人的自习笔记/备忘录。也是说明手册(以后,若时机成熟,若有可能,或许,互联网中分享)...
编程,应该稳扎稳打、循序渐进! 首先,必须要考虑到:虚拟光驱。 因为,有许多影音片源,基于 ISO (镜像文件), 比如,
- 蓝光影碟(尤其是 3D BD);
- DVD影碟 ;
- DTS-CD ;
- SACD 音乐光盘等。
混杂的ISO,如何自动鉴定?!起初, 我曾尝试,直接解析/甄别 ISO镜像文件(无需加载虚拟光驱)...
有了一定的进展。
目前来说,(自编程序)可以区分 ISO9660 格式、UDF 格式等,
也能甄别 :标清/DVD影碟的属性(视频的规格)等。
但是,若想快速获取:某个 ISO的详情(比如, 是否3D BD的属性), 难度不小!
虽有办法、得到该ISO 文件的全部信息/细节。但付出的代价:是时间(刨析整张蓝光影碟,耗时数分钟)...
看来,还得另辟蹊径。例如:用HTPC的虚拟光驱,加载这个 ISO(镜像文件),随后,
自编程序,迅速读取 (虚拟光驱)文件/内容。那效率,突飞猛进。而且,许多技术难点,自然而然地、迎刃而解。
结论:该(研发)项目的头等大事,玩转 虚拟光驱!
众所周知,PC的资源浏览器,都会遇到,各种各样的环境(各种盘符)。
这次实验,本人通过 USB Hub等 ,接了不少外设, 用做对比。
上图中,
- C:(D、E、F、G、H、I、J、K、)L: ,都是机箱内、内置SATA(机械或固态)硬盘上、不同分区的盘符;
- M:、N:,是(USB 3.0/多盘位)硬盘座上的、两块机械硬盘的盘符;
- O:,是 USB 3.0 移动硬盘的盘符;
- P:,是 SDXC 闪存卡/读卡器的盘符;
- Q:,是优盘的盘符;
- R:,是(USB 3.0)CFexpress Type A(高速影像卡)/读卡器的盘符;
- W:,业已加载了的、虚拟光驱的盘符 ;
- Y:,(网络连接)网盘映射的盘符;
(DIY)自编程序的任务:
- 甄别 各盘符的属性。归类。
- 若发现虚拟光驱(已被加载),则先行卸载(避免串扰);
- 统计已分配的、(所有)盘符的列表。
- 找出未分配的、盘符所需的(待选)字母(A、B除外)。
- 在未分配的字母/列表中,随机选择某个字母,作为(即将加载的、)虚拟光驱的指定盘符。
- 自动加载ISO镜像文件,(相关盘符,源自指定的字母),使虚拟光驱可读。
- 直接甄别,是否蓝光影碟,是否 3D BD 的规格。
挑灯夜战、刻苦攻关,已成! 这是GIF动画。自编程序的处理,(全部流程)犹如行云流水,速战速决。
下面是截图:
可见:
- 内置(本地)硬盘, 是 C:~ L:,
- 成功甄别/归类:(多盘位)硬盘座上的、两个机械硬盘M:、N:,以及 移动硬盘 O:,
- CFexpress Type A(高速影像卡)/读卡器、R: 的属性特殊。单独列表,不归优盘类(也不归移动硬盘类)。
- 成功甄别/归类:SDXC 闪存卡和优盘(P: ~ Q:),
- 网络映射盘是 Y: ,
- 发现 W: 是虚拟光驱的有效盘符, 立即将其卸载。
- 因此,未分配的字母,是 S、T、U、V、W、X、Z !
- 利用随机函数,在上述列表中,随机指定。实战中, V: ,作为虚拟光驱的新盘符。
- 加载 ISO文件(使 V: 可读)。
随后,就能看到,下图所示的情景:
(自编程序)卸载前期虚拟光驱后,再重新加载,虚拟光驱/盘符是 (专门指定的字母)V:
此时,ISO文件,已被虚拟光驱加载,那就好办了。(自编程序)直接读取 BDMV 文件夹中的特定文件,
立即判定,所加载的(ISO),属 3D BD (立体影像的蓝光影碟)!
(关于立体3D交织文件等概念,可去参考:我以前发的贴子)...
后续的计划:甄别 1080p 的蓝光影碟,以及 2160p 的UHD 影碟、DTS-CD 以及 SACD 了。
慢慢来,按部就班、解析ISO的各项规格...
将来,众多硬盘中的、成百上千的片源,将由自编程序,做出列表。
涉及 类别、视频信息、音频信息、字幕信息等。使自动化管理的效能,得到淋漓尽致的发挥!
|