26
2011
用mencoder把外挂字幕内嵌到视频中
我的手机档次低,只支持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,只是凭感觉照葫芦画瓢写命令。不知有没有更简便的方法。
25
2011
开源与非开源,支持与不支持
有些开源软件支持者:仇视M$、鄙视甲骨文、讨厌Mono和Java,恶心Flash,只用开源软件。我对“绝对自由”实在是不怎么感冒。实用的就是最好的,无所谓开源不开源,自由不自由。C#好就是好,不是因为M$。Flash纵然再烂,但依旧广泛使用。
我觉得Debian挺难用的,因为她太“自由”了。官方仓库找不到Flash,找不到N卡闭源驱动…… Ubuntu就很好,她并不排斥闭源软件,闭源的解码器、“受限驱动”都收纳进了软件仓库。Arch也很不错。
开源是为了什么?虚幻的自由理想吗?那可就太无聊了。我觉得开源的好处,一方面是吸引了更多的开发者,一方面是为用户提供了更大的定制空间。所谓“理想”,当不了饭吃,换不来支持,更吸引不来用户。纯粹为了自由理想而开源,就和我朝N年前为了平等瓜分了所有富人的财富似的——最后只剩一堆穷光蛋。
此外我觉得,应该推广一种“半开源”,就是开发者可以有选择地开放部分核心代码,或是旧的代码。毕竟,软件开发者也要混口饭。和别人竞争,总不能一点秘密都不保留吧。这样,社区可以维护自己的版本,开发者也能保留自己的“绝招”,可谓双赢。
开源软件的好处被他人拿去,而自己却为了“清高”画地为牢,排斥闭源,那最后孰胜孰败就很显然了。