+ -
当前位置:首页 → 问答吧 → 用smplayer播放视频时,字幕乱码,有图。

用smplayer播放视频时,字幕乱码,有图。

时间:2010-04-18

来源:互联网

附带字幕文件
上传的图像
Screenshot-[POPGO][Angel_Beats!][02][GB][AVC_AAC](80454093).mp4 - SMPlayer.jpg (85.2 KB, 60 次查看)
上传的附件
[POPGO][Angel_Beats!][02][GB][AVC_AAC](80454093).ass.tar.gz (12.8 KB, 8 次查看)

作者: wzgeda   发布时间: 2010-04-18

请在设置里把字母里的编码改成UTF-8就可以解决问题。

作者: aeonhuang   发布时间: 2010-04-18

可以参考我自己的文章

http://www.lunarch.info/?p=7001

作者: princelai   发布时间: 2010-04-18

更改首选项:
字幕->编码,默认字幕编码(UTF-8),勾选“尝试自动检测此语言(中文(zh))

另外,我一般会把字幕的编码都转换为UTF-8,这样才能一劳永逸。可以试试我自用的一个编码自动探测/转换的小脚本:
PHP 代码:
http://code.google.com/p/somescripts/source/browse/tconv 

作者: dickeny   发布时间: 2010-04-19

我没有用smplayer,我习惯直接在命令行里用mplayer
在~/.mplayer/config中加了
subcp=enca:zh:cp936
后srt文件没有出现过乱码,因为archlinux源里的mplayer已经启用了enca编译。据我所知debian和ubuntu官方源里是没有的。重新编译一下也是可以的。
我没有加ass选项,需要用ass字幕的时候加上-ass参数一切正常,对于mplayer我很满意,windows和mac没有一个媒体播放器可以和它相比,再上加优秀的CLI,真是最适合我的选择。

注enca会自动把相关编码文本自动转换成locale的编码,当然我用的是utf8

作者: tocai   发布时间: 2010-04-21

字幕编码那一般设cp936,不行就试试UTF8,或是unicode-16,我还没碰到过试过了这三个还乱的字幕

作者: liwangli   发布时间: 2010-04-21

这个确实比较特别,字幕主体部分是 UTF-16LE 编码,前面又被二次打包者附加了 ANSI 的文件名注释,应该没有哪个播放器能直接识别。

用 UTF-16LE 编码打开,去掉 [Script Info] 前面的部分,保存为 UTF-8 或者 GBK 就可以了。或者直接下载转好的。
上传的附件
[POPGO][Angel_Beats!][02][GB][AVC_AAC](80454093).zip (11.3 KB, 2 次查看)

作者: AutoXBC   发布时间: 2010-04-21

引用:
作者: AutoXBC
这个确实比较特别,字幕主体部分是 UTF-16LE 编码,前面又被二次打包者附加了 ANSI 的文件名注释,应该没有哪个播放器能直接识别。

用 UTF-16LE 编码打开,去掉 [Script Info] 前面的部分,保存为 UTF-8 或者 GBK 就可以了。或者直接下载转好的。
iconv是可以转换的,不用你说得这么麻烦。

或者,我强烈建议用我写的一个小脚本自动检测/转换:
PHP 代码:
http://code.google.com/p/somescripts/source/browse/tconv 
我经常用它来对付*.cue, *.txt文件,轻松快捷。

作者: dickeny   发布时间: 2010-04-21

引用:
作者: dickeny
iconv是可以转换的,不用你说得这么麻烦。
iconv 可以转换,能切除前面妨碍编码检测的垃圾信息么?

作者: AutoXBC   发布时间: 2010-04-21

引用:
因为archlinux源里的mplayer已经启用了enca编译。据我所知debian和ubuntu官方源里是没有的。
debian 的源里是没有的,ubuntu 的源里除了 9.10 以外其余都有。

http://packages.ubuntu.com/lucid/mplayer
依赖 depends: libenca0 (>= 1.9)

http://archive.ubuntu.com/ubuntu/poo...-1ubuntu16.dsc
编译依赖 Build-Depends: libenca-dev

http://archive.ubuntu.com/ubuntu/poo...untu16.diff.gz
mplayer_1.0~rc3+svn20090426-1ubuntu16.diff
注释 + * enable enca support, LP: #115519

作者: AutoXBC   发布时间: 2010-04-21

引用:
作者: AutoXBC
iconv 可以转换,能切除前面妨碍编码检测的垃圾信息么?
PHP 代码:
iconv -f utf16 -t utf8 xxx.ass > new.ass 
这样做以后,new.ass就是标准的utf8编码了,没有任何妨碍编码检测的垃圾。

作者: dickeny   发布时间: 2010-04-21

utf16 又从何来?如果一定要先输入一行命令检测,再输入一样命令转换,最后用编辑器或播放器确认也可以,只是在这个鼠标点几下就解决的问题上,实在看不出 cli 的必要。

另外 enca 会截断字幕主体,tconv 报 58 行解析错误,智能程序也不如编辑器 + 人眼智能。

作者: AutoXBC   发布时间: 2010-04-21

引用:
作者: AutoXBC
utf16 又从何来?如果一定要先输入一行命令检测,再输入一样命令转换,最后用编辑器或播放器确认也可以,只是在这个鼠标点几下就解决的问题上,实在看不出 cli 的必要。

另外 enca 会截断字幕主体,tconv 报 58 行解析错误,智能程序也不如编辑器 + 人眼智能。
我也不是说智能程序一定比人眼智能,只是提供了一种选择,毕竟每个人的习惯不同。

你说得”编辑器“确认,是哪款编辑器??是Linux下的吗??我也测试一下看看。

另外,tconv在我这边怎么测试都没提示”解析错误“(从代码上看,也不应该会出现任何的错误提示的),你再试试?

总之,我提倡自动化,将人从枯燥的劳动(打开编辑器/运行命令等等)中解脱出来,能够实现这个目的就是好的。

作者: dickeny   发布时间: 2010-04-21

./tconv foo.ass
./tconv: 58: Syntax error: Missing '))'

开头的 #!/bin/sh 是不是应该换成 #!/bin/bash ?

确认是说"编辑器"改编码能实时看到结果,保存时就知道是需要的;命令行是有可能失败的,返回重新操作开销就大了。

多一个选择是好的,你的程序还比 enca 智能点。

作者: AutoXBC   发布时间: 2010-04-21

热门下载

更多