LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
12
返回列表 发新帖
楼主: Jockey

[胸闷气急]对mplayer字幕完全没想法...

[复制链接]
 楼主| 发表于 2007-7-17 09:22:13 | 显示全部楼层
各位说的小弟都知道,并且都试过

至于小弟肯定不是encoding的问题,因为——
网上的字体大多codepage是cp936,我的locale是utf8,直接cat当然是乱码,然而我也用iconv转成了utf8。对于这两个编码的字幕,我在mplayer里分别选择对应的字幕encoding为cp936和unicode,结果是:没有任何区别,对于中文一样显示下划线。因为问题就在于:mplayer根本在用sans-serif播放字幕,sans-serif族我定义的第一个是tahoma,mplayer不会继续向下搜索中文字库来显示中文字体,而我的问题就在于:[color="Red"]即便我指定mplayer直接去用AR PL KaitiM GB显示字幕,mplayer依然是tahoma显示。

我已经给官方mplayer-user邮件列表发了份求助信函,目前尚没有回音。

BTW.软件不怕碰到难配置,何况mplayer的设置很简单,但就怕碰到没逻辑...>_<

另:我恨外挂字幕...T_T
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-7-17 10:23:11 | 显示全部楼层
顺便再说一句:制作一个指向中文字库ttf的符号链接~/mplayer/subfont.ttf也没有解决无法更换字幕显示字体的问题。

基本上小弟我要放弃了...大不了以后再也不看带外挂字幕的视频,或者干脆练英文听力,呵呵...-_-#
回复 支持 反对

使用道具 举报

发表于 2007-7-17 10:41:19 | 显示全部楼层
Post by Jockey
各位说的小弟都知道,并且都试过

至于小弟肯定不是encoding的问题,因为——
网上的字体大多codepage是cp936,我的locale是utf8,直接cat当然是乱码,然而我也用iconv转成了utf8。对于这两个编码的字幕,我在mplayer里分别选择对应的字幕encoding为cp936和unicode,结果是:没有任何区别,对于中文一样显示下划线。因为问题就在于:mplayer根本在用sans-serif播放字幕,sans-serif族我定义的第一个是tahoma,mplayer不会继续向下搜索中文字库来显示中文字体,而我的问题就在于:[color="Red"]即便我指定mplayer直接去用AR PL KaitiM GB显示字幕,mplayer依然是tahoma显示。

我已经给官方mplayer-user邮件列表发了份求助信函,目前尚没有回音。

BTW.软件不怕碰到难配置,何况mplayer的设置很简单,但就怕碰到没逻辑...>_<

另:我恨外挂字幕...T_T


呵呵,问题也许在于为什么别人的mplayer可以使用simsun字体来显示字幕呢,应该不是mplayer的问题。
我的机器,一装好。我就删除掉自带的那些中文字体(留着造成很多中文显示上的问题),在~/.fonts/里拷贝上tahoma,simsun,mingliu几个字体,重启一下X,就没有中文显示的问题了。再试试这个。
回复 支持 反对

使用道具 举报

发表于 2007-7-17 10:50:59 | 显示全部楼层
Post by Jockey
顺便再说一句:制作一个指向中文字库ttf的符号链接~/mplayer/subfont.ttf也没有解决无法更换字幕显示字体的问题。

基本上小弟我要放弃了...大不了以后再也不看带外挂字幕的视频,或者干脆练英文听力,呵呵...-_-#

我个人经验:
~/mplayer/subfont.ttf
指定的是OSD用的字体,不是字幕字体。字幕字体用-font 来指定比较实在。

  1. 2.4.1. TrueType fonts

  2. There are two ways to get TrueType fonts to work. The first is to pass the -font option to specify a TrueType font file on the command line. This option will be a good candidate to put in your configuration file (see the manual page for details). The second is to create a symlink called subfont.ttf to the font file of your choice. Either

  3. ln -s /path/to/sample_font.ttf ~/.mplayer/subfont.ttf

  4. for each user individually or a system-wide one:

  5. ln -s /path/to/sample_font.ttf $PREFIX/share/mplayer/subfont.ttf

  6. [color="Red"]If MPlayer was compiled with fontconfig support, the above methods won't work, instead -font expects a fontconfig font name and defaults to the sans-serif font[/color]. Example:

  7. mplayer -font 'Bitstream Vera Sans' anime.mkv

  8. To get a list of fonts known to fontconfig, use fc-list
复制代码
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-7-17 10:58:36 | 显示全部楼层
多谢dukeduan兄,这个方法试过,无效。

为方便起见,我现在不需要它把中文显示出来了,因为一旦解决了字体设定问题,我敢断定这个问题就解决了大半。干脆我把需求化简一下吧:[color="Red"]我现在把中文字体全部删除干净,然后下载个英文字幕,来播放电影,但是我想用Courier New这个等宽并且有衬线的ttf来显示英文字幕...你觉得我该怎么做呢?譬如我有一个the.avi和utf8编码的the.srt
  1. $ mplayer -subcp utf8 -font /usr/share/fonts/corefonts/cour.ttf the.avi # Path to font.
复制代码
或者
  1. $ mplayer -subcp utf8 -font 'Courier New' the.avi # Fontconfig family name.
复制代码
是这样吗?两者对我都无效...最终出现的字幕字体依然保持原样:变宽、无衬线。也许我漏了什么关键步骤?能否提醒一下?

PS. 我觉得 subfont.ttf 从字面意思上理解就是subtitle的font,如果mplayer的开发者们秉持的是正常的“less surprise”理念。
回复 支持 反对

使用道具 举报

发表于 2007-7-17 11:57:58 | 显示全部楼层
你说得有道理,不过我的字幕从来没有用subfont.ttf解决过,在设置文件里指定了font以后才消停了的,所以有此一说。

我还能想到的一个原因,就是mplayer编译的时候,freetype,fontconfig有效了吗?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-7-17 12:07:09 | 显示全部楼层
我用的是Gentoo,编译时加入了truetype这个use flag,但是没有fontconfig相关选项,但是实验下来似乎也是支持的,因为我在gmplayer的字体选择里面填入一个fontconfig字体族名并选择错误的编码的话,终端会显示在当前字库里找不到某某图元等文字。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表