当前位置: 首页 > 工具软件 > MiniDLNA > 使用案例 >

让 minidlna 支持 rmvb、gb2312 mp3 标签

赵经国
2023-12-01

各位一定认为minidlna最大的遗憾是不支持rmvb,我是这么觉得。minidlna是通过ffmpeg库获取媒体文件的 metadata,ffmpeg早已经支持rmvb,很多国产Pad芯片解决方案都可以实现对rmvb的硬解,现在arm cpu的性能软解也不是问题。想不明白为什么minidlna一直没有加入对rmvb的支持。或许是考虑到了很多dlna renderer不支持rmvb。如此只能自己尝试hacking一下了。minidlna启动后会扫描分析指定的目录,然后将信息写入sqlite数据 库,而和客户端传输数据用的http协议,http协议和文件格式无关,所以只要让minidlna的scanner认识rmvb即可。结果一定是OK 的,我用的MW4530R路由器,在MELE A1000 下使用BunbbleUPNP测试没问题,不过只能软解。最后建议您安装libffmpeg-full,默认可能是libffmpeg-mini,后者支 持的文件格式有限,使用前者我的所有视频现在都可以被正确的加入minidlna。

在默认情况下如果mp3文件的id标签使用了gb2312编码,openwrt下的minidlna里会显示乱码,只有将id转换成utf8才能正 常显示,这其实不是minidlna的问题而是编译时使用的iconv库的语言支持不完整。执行make menuconfig 进入 Global build settings 选中Compile with full language support,重新编译minidlna 这时使用的iconv库就是libiconv-full。这个packages里有个 100-strip_charsets.patch 的patch 给这个包缩减了很多语言包括cp936,也就是gb2312的支持,所以要去掉这个patch。或者您自己修改一下这个文件把cp936相关中文支持加 上。启动minidlna前export LANG=zh_CN.UTF-8,minidlna就可以正常支持gb2312编码了。

以上工作是在openwrt 12.09和minidlna 1.0.24下进行的。把我做的patch放上来,如果您自己编译openwrt的固件,把这个文件放在 attitude_adjustment/feeds/packages/multimedia/minidlna/patches目录下,编译时会自动 应用该补丁。共patch了4个文件,其实只patch前两个就可以了。
999-realmedia-support.patch

以下是我自己编译出来支持rmvb gb2312标签的安装包:
minidlna_1.0.24-1_ar71xx.ipk

全部语言支持的libiconv-full:
libiconv-full_1.11.1-1_ar71xx.ipk

如果安装时提示md5 miss match 删除 /var/opkg-list/ 下的文件再安装。

 类似资料: