totem是gnome自带的一个媒体播放器前端,界面美观方便易用,目前totem使用xine作为其后端,以后可能会用gstreamer作为后端,但是后者目前还很不成熟。
xine可以加载srt格式的字幕,但是在默认情况下却无法正确显示中文字幕。问题其实在于xine默认的字体库中没有中文字体,我们所要做的是:1.通过已有的字体生成xine的字体,2.对totem的配置文件进行一些调整。
xine的字体目录为/usr/share/xine/libxine1/fonts (Debian默认安装到这里)
在这个目录下有很多 *-xx.xinefont.gz 这样的文件,这就是xine的字体文件,其中*为字体名,xx为字体大小
这里要用到一个叫做xine-fontconv的程序,debian中的xine没有这个工具,但是你可以在xine-lib的源代码中找到这个它
[code] apt-get source xine-lib[/code]
在misc文件架中可以找到xine-fontconv.c,看他的注释,里面给出了编译方法,然后进入到xine的字体目录
在字体选择上我偏向于使用simhei,看上去比较舒服,当然你也可以选择你喜欢的字体。假设simhei.ttf在/usr/share/fonts/zh目录中:
[code] xine-fontconv /usr/share/fonts/zh/simhei.ttf simhei gbk[/code]
运行以后就可以得到相应的xine字体
接下来进入用户目录的.gnome2目录下,编辑totem_config文件,修改下面的两项(这是gnome2.8的情况,其他版本应该也差不多):
[code]subtitles.separate.font:simhei
subtitles.separate.src_encoding:gbk[/code]
在这里还可以修改字体大小以及字幕的位置:
#把字体设置大一些,看起来会比较舒服,共有六个选项, { tiny small normal large very large huge }
#对应生成的六个字体文件,如果你只用某种特定大小的字体如large,你可以把多余的xine字体删除,
#可以节省不少磁盘空间(huge和very large对应的字体文件很大)
[code]subtitles.separate.subtitle_size:large[/code]
#设置字幕的位置,这是相对于屏幕下边沿的距离,默认是0,我觉得30看起来比较舒服
[code]subtitles.separate.vertical_offset:30[/code]
完成上述工作以后就可以通过下面的命令加载字幕:
dexter@Lab:~$totem file:///home/dexter/movie/abc.avi#subtitle:file:///home/dexter/movie/abc.srt
(注意格式!!!)

