分享

XBMC + NAS 高级运用全攻略(原创),补充插件的用法,2/22日补充:修改中文影片...

 HDTV 2014-05-01
[aTV2] XBMC + NAS 高级运用全攻略(原创),补充插件的用法,2/22日补充:修改中文影片名



zypro 发表于 2011-9-17 02:52:10



最近都在讨论NAS的问题,本帖不涉及NAS的选购,只是以楼主家里的情况为例,介绍一些XBMC的高级运用,希望抛砖引玉

先介绍一下硬件配置:

1。 客厅,HTPC(Win7), HDMI接大屏幕液晶,光纤音频输出至功放,由功放做DTS/AC3解码输出至5.1扬声器
2。 书房,Mac Mini (Mac OSX)  23'Dell 液晶显示器
3。 卧室,Apple TV2 + XBMC ,HDMI接液晶电视
4。 Nas,Synology DS211j 装载2*2T Raid0 共4T空间,内有几百部720P的电影(以好莱坞电影为主)
5。 Buffalo 300N无线路由 + 千兆交换机
-----------------------------------------------------------------------------

XBMC和NAS的结合,可以达到以下几个效果:

1。 所有设备共享Nas上的电影,照片(废话)
2。 所有设备共享XBMC的Library和Thumbnail(缩略图)
3。 一部电影看到一半,可以在其他房间继续播放

先介绍一下如何共享Library
Library的概念不解释了,XBMC自动扫描添加的电影(国内只能是从TMDB,因为IMDB被q1ang),会把所有的信息存入本地的数据库,如果多个房间有多个设备,那就需要添加多次。 其实XBMC内置了对mySql数据库的支持,由于几乎所有的Nas都是基于Linux内核的,所以无论你买了什么牌子的Nas,一般都可以找到内置的mySql数据库(某些牌子需要额外安装一下)。
当然如果Nas不支持的话,可以在电脑上安装一个mySql,这种情况也适用于把PC当成共享源的情况。

1。 假设你的Nas已经有了mySql数据库的服务,以synology ds211j为例,这个服务默认是不开启的,先开启



2。使用任意支持mySql的客户端用root用户登陆到数据库,新建一个库,取名为xbmc,然后新建一个用户名/密码都为xbmc,赋予所有操作权限。 具体客户端的使用,不属于本文范围,推荐去下载一个Navicat,支持windows和mac平台,使用起来一目了然,没有数据库经验的人也会操作。


3。启动XBMC,在setting-》Video-》library下,把所有的数据export出来,选择单一文件存放


4。新建一个文件advancedsettings.xml,内容如下:
  1. <advancedsettings>    <videodatabase>        <type>mysql</type>        <host>Nas IP</host>        <port>3306</port>        <user>xbmc</user>        <pass>xbmc</pass>        <name>xbmc</name>    </videodatabase></advancedsettings>
复制代码

将这个文件复制到各个平台下的XBMC的userdata目录下,这样,XBMC启动时就会认为Nas上的mySql数据库是默认的Library位置。
各个平台的userdata目录位置如下:
windows7: 用户目录\AppData\Roaming\XBMC\userdata
Mac OSX:    用户目录\Library\Application Support\XBMC\userdata   默认情况下Library是隐藏的,在finder中看不到,最简单的方法是用命令行方式直接cd进去然后复制
Apple TV2:  /private/var/mobile/Library/Preferences/XBMC/userdata  在win下可以用winscp来连,在Mac OSX,直接可以用scp命令复制上去,默认root密码是alpine
  1. scp advancedsetting.xml root@atvip:/private/var/mobile/Library/Preferences/XBMC/userdata
复制代码

5。启动XBMC,此时会发现,所有的Movie下都是空白一片,因为Library的位置改成了Nas,而此时这个库是空的,所以把步骤3里面export的数据,import进去。此时就会发现,无论在哪台设备上启动XBMC,所有的数据都已经同步了。

6。数据同步了,但是缩略图每个平台都要单独下载,现在来解决这个问题
把userdata下的Thumbnails目录复制到Nas上的一个共享目录中,然后在上面提到的advancedsetting.xml中追加以下内容
  1. <pathsubstitution>   <substitute>     <from>special://masterprofile/Thumbnails</from>     <to>smb://用户名:密码@NasIP/共享目录名/Thumbnails</to>   </substitute></pathsubstitution>
复制代码



注意,追加的内容要放置在<advancedsettings>这个tag中


然后把各自平台的Thumbnail目录都删掉(不是必须的),打开XBMC,发现缩略图也同步了


--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------


说一下Apple TV2播放电影时Buffering的问题。
我们访问Nas时,最常用的协议是SMB,也就是大家熟悉的Windows文件共享协议。这个协议大部分时候工作的很好,速度也很不错,兼容性是最强的。 但是很可惜,在ATV2/XBMC中的内置的该协议,存在比较大的效率问题。 具体表现就是看Nas中电影的时候,经常会缓冲。 很影响心情。


解决这个问题的最佳方法就是换一种网络协议。 最常见的适用于ATV的,有以下几种:
1。 SMB windows文件共享
2。 AFP  Mac文件协议
3。 NFS 发自Soloris的一个网络文件共享协议,现在是几乎所有的Linux内置的协议
4。 uPnP
以上各种协议,同时也需要Nas支持(Synology都支持)


其中AFP协议在ATV和Mac上工作的都很好,但是很遗憾,Windows不支持该协议,所有如果家里有Windows电脑,同时需要共享访问Library的,就不能使用该协议


uPnP是专用于网络流媒体传输的,理论上是最佳选择,而且各个平台都支持,但是有一个致命的缺陷,uPnP不是基于文件/目录结构的,所以无法装载字幕。在国内看美国大片的话,这个缺陷几乎不能接受。


NFS协议在ATV和Mac上都能正常工作,但是Windows对该协议的支持不是Native的,不过好消息是,从9月版的XBMC Nightly Build中,已经引入了nfslib的代码,所以XBMC for Windows已经可以支持NFS协议。 所以除去SMB之外,NFS作为一个全平台支持的协议,成为我们的另一个选择。


简洁描述一下NFS协议的使用方法:
1。 在NAS上打开NFS协议支持,由于目前几乎所有的NAS都是基于Linux,所以几乎都可以支持NFS协议,以synology ds211j为例:



2.  对Nas上的共享文件夹进行权限设置



看似复杂,其实就如Windows文件共享一样,先选择需要共享的文件夹,然后设置哪些IP可以访问,填*的话,就代表所有的IP
NFS协议不是基于用户名密码的,而是基于网络主机/ip的认证。所以只需设置允许的IP,这里填的是万用符号“ * ”


理论上到这一步就可以通过NFS协议来访问数据了,但是在Apple TV2/Mac OSX下,对NFS协议的使用有个特殊的地方,非root用户是不能使用reserved ports的,而NFS Server默认是不支持非reserved ports,对于这个规则,这里不展开,只需要知道,如果要让Apple TV2和Mac OSX使用NFS,需要在NFS的Server上(也就是Nas)的配置文件中增加一个参数“ insecure”。 这个参数只能手工添加,在Nas的/etc/exports文件中,记录了所有通过NFS共享的目录信息。
  1. /volume1/Movie    *(rw,insecure,async,no_wdelay,no_root_squash,insecure_locks,anonuid=0,anongid=0)
复制代码

insecure这个参数需要手动添加。 然后重启NFS服务。

3。 对于我们已经存在的library,从SMB换成NFS协议之后,需要重新扫描电影信息。 其实更换一个网络协议,大可省略这一步,下面简单说一下步骤。
通过XBMC Setting-》Video -》export library 导出的文件,里面有一个videodb.xml,找到这个文件,用文本编辑器打开,可以看到,所有的电影的路径都记录在内,如果原先是通过SMB协议共享的,则路径应该类似这种
  1. smb://用户名:密码@IP地址/文件夹/文件名
复制代码

我们只需把前一段替换一下,全部替换
  1. smb://用户名:密码@IP地址/替换成nfs://IP地址/volume1/
复制代码

在不同的Nas系统上,这个volume1可能会有变化,可以参考上面提到的etc/exports文件的内容。

然后把mySql上的这个xbmc的数据库清空,可以直接删除整个数据库,然后再建一个空的,比较省事。
再把这个修改过的文件,通过xbmc导入一遍,就可以直接把协议切换成NFS
--------------------------------------------------------------------------


XBMC还支持自定义插件。 一般是由python语言开发的脚本。 推荐几个插件包:


1。 国内视频网站的插件包,是国内几个高手做的,在googleCode上开源了,大部分都很有用,可以用XBMC看youku,搜狐高清,天翼高清等,一般国内热播的连续剧在上面都能看到,清晰度往往比数字电视还要好。 速度很好。 家里如果有人喜欢看国内连续剧的,必装。 
2。 Adult插件包,不解释。 速度较慢,尝尝鲜还行
3。 Tommy‘s 插件包。 里面有不少国外的电视剧,ESPN等频道,经常更新,也有热播的电影。 速度一般

一般插件包都是以Zip格式打包的,下载到XBMC能访问到目录(ATV的话需要放置到Mobile目录下),然后在Setting菜单下,用install from Zip file来安装。 安装之后默认并不启用,还需要在插件菜单下启用,就能使用了。
ATV的话,需要复制到Mobile目录下才能访问到。
windows下用winscp,OSX下用下面命令就直接可以复制过去,密码默认是alpine
  1. scp xxx.zip root@atvIP:/var/mobile
复制代码

附上提到的这几个插件


2012-2-22日补充-------------------------------------------------------------------------------
发帖的时候本区没有什么人气,所以离开几个月没有回来看,没想到已经回复了10页了
现在补充一些内容:
1。针对回复中对NFS的insecure参数如何添加不明白的,原文写的不是很清晰,补充一下:
所有的基于Linux/Unix的系统,都可以用SSH协议登录上去。 目前主流的Nas几乎都是可以这样做。
在Windows中,没有内置的SSH工具,所以需要去下载一个,可选择的有很多,只要支持SSH协议即可,比如Putty
在非Windows系统中,几乎都内置了SSH命令行,以OS X为例,直接在命令行中键入 ssh admin@NasIP,然后根据提示输入密码即可成功登录,用户名这里用的是admin,也可能是root或者其他,登录之后,直接vi /etc/exports就可以打开该文件修改,不会用vi的建议google一下。vi的命令只需记住:进入编辑模式,先按一下键盘上的i,然后就可以编辑。编辑完成之后按键盘上的esc,然后键入:wq就可以保存退出,如果编辑错了不想保存就键入:q!


2。XBMC目前的版本是不支持中文输入的,所以如果Library里面的影片名字想编辑成中文,只能在数据库中直接修改。简单说一下方式:
还是用任意支持my sql的客户端登录,以上文提到的Navicat为例,连上Nas上的my sql之后,打开xbmc_movie数据库,然后在Tables下找movie表,双击打开

可以看到c00字段都是电影名称,直接修改就可以改成任意你想要的名字。


3。最新版的XBMC支持MovieSet的功能,也就是一个系列的电影在XBMC中可以显示为一个系列,比如哈利波特1-7原本是7部电影,现在可以显示为哈利波特全集,集中在一个系列里,如下图



要实现该功能,需要在最新版的XBMC中,进入系统设置,在Group movies in sets上打钩




TMDB削刮器会自动把很多同系列的影片归为同一个movie set,但是也有很多例外,比如最近的暮光之城:破晓,削刮器就没有自动归到暮光之城的movie set中,遇到这类情况,只能自己动手,而XBMC的界面上是没有地方可以进行设置的,所以只能改数据库。
动手之前,先说一下大致的数据结构。
在数据库中,电影的相关信息首先存放在movie表中,上面提到的把电影改成中文名就是在这张表当中修改。 在这张表中,我们需要找到我们要修改的电影,然后把第一个字段idMovie的值记下来。 参照前一张截图中,比如功夫熊猫1和2的idMovie值为126和127。
然后数据库中还有一张表sets:

里面记录了削刮器自动给你产生的movieset,这个表可以修改,也可以添加。 修改通常是改改名称,把英文改成中文的。 添加的话,要注意第一个字段idset的值是一个不可重复的顺序增长的整数。
要把电影加入到Movieset中,还有一张表需要知道setlinkmovie

以功夫熊猫1和2举例:
假设削刮器没有把功夫熊猫归为movieset,我们首先要在sets表中增加一条记录,idset填一个数字比如11,并且记下,然后在strSet中填入“功夫熊猫(系列)”
然后在movie表中找到功夫熊猫1和2的idMovie,假设是126和127
然后在setlinkmovie中增加两条记录



大功告成。打开XBMC看看,是不是出现了功夫熊猫(系列),点进去就出现两部功夫熊猫电影。

repository.googlecode.xbmc-addons-chinese.zip

30 KB, 下载次数: 2856

repository.xbmc-adult.zip

359 KB, 下载次数: 921

repository.t0mm0-1.0.3.zip

1 KB, 下载次数: 523

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多