我的手机档次低,只支持MP4格式,不支持外挂字幕。下的好多外国片都是外挂字幕(或是mkv内置字幕)的,所以想把字幕直接加到图像上。

 

根据网上的搜索,得到下面一条命令:

mencoder 输入文件 -o 输出文件.mp4 \
-oac lavc -ovc lavc -of lavf \
-lavcopts aglobal=1:vglobal=1:vcodec=mpeg4:vbitrate=180 \
-lavcopts acodec=libfaac \
-af lavcresample=8000 \
-vf harddup,scale=320:-10,unsharp=l3×3:0.7,expand=320:240 \
-ofps 16 -lavfopts format=psp -srate 22050 \
-sub 字幕文件 -font 中文字体路径(如/usr/share/fonts/TTF/ukai.ttc) \
-subfont-text-scale 字号(5就可以了) -subcp 编码(utf8可省略)

最后两行是加字幕的,前面的都是格式转换(转换到PSP的MP4格式)。

vbitrate、lavcresample、ofps 应该是和画/音质有关的参数。我都调得很低,这样转换比较快。反正手机屏幕那么小,也看不到什么细节。

 

但这样我发现中文全都显示为下划线(不是乱码),怎么换字体/转字幕格式都没用。搜索之后,找到了解决方法。编辑 ~/.mplayer/mencoder.conf 文件,加入一行“fontconfig=0”,禁用fontconfig设置就可以了。不设置这个的话,-font参数设置字体不起作用。

 

这样,中文就解决了。但还有严重问题,就是转换出来的图像,不知何故旧字幕不会消失,重叠在一起乱七八糟的。试了一下,发现只要加scale/expand参数缩放图像,出来的字幕就有问题。

我的解决方案如下,转换两次:第一次不加字幕,只转换格式、缩放图像;第二次只加字幕,这样就没有问题了。

 

不懂mencoder,只是凭感觉照葫芦画瓢写命令。不知有没有更简便的方法。