mplayer加载双字幕

本文介绍了如何使用mplayer加载双字幕,包括将smi文件转为srt,合并不同语言的srt文件,去除合并过程中的注释,以及解决播放时可能出现的字幕加载问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 问题描述:
    现有文件:Friends.-.1x24.-.TOW.Rachel.Finds.Out.avi
                        Friends.-.1x24.-.TOW.Rachel.Finds.Out.[VeryCD.com].CHN.srt
                        Friends.-.1x24.-.TOW.Rachel.Finds.Out.[VeryCD.com].ENG.smi
    为学习英文需要,想要用实现mplayer实现双字幕
 解决方案:
     1.将smi文件转化为srt
         mplayer  -sub Friends.-.1x24.-.TOW.Rachel.Finds.Out./[VeryCD.com/].ENG.smi -dumpsrtsub Friends.-.1x24.-.TOW.Rachel.Finds.Out.avi

         如果错误提示:-vo x11,那么加上这个选项就行了,就是:
        mplayer -vo x11 -sub Friends.-.1x24.-.TOW.Rachel.Finds.Out./[VeryCD.com/].ENG.smi -dumpsrtsub Friends.-.1x24.-.TOW.Rachel.Finds.Out.avi
        这样就会生成一个名为dumpsub.srt的文件

      2.合并两个srt文件
         diff Friends.-.1x24.-.TOW.Rachel.Finds.Out./[VeryCD.com/].CHN.srt dumpsub .srt -D diff>all.srt

         -D 参数是合并差异,后面diff为自行添加的差异标识(文字描述,你怎么写都可以),是必须的。man 手册        中是这样说的:
        引用
        -D NAME --ifdef=NAME
        Output merged file to show ‘#ifdef NAME’ diffs.

       OK,现在我们生成了一个合并好的字幕,如果有乱码,修改文件编码就ok了。但中间凡是差异合并的地方都有以 #ifdef 及 #endif 开头的注释句标识,剩下的工作只要把这样的句子去掉就大功告成了。

     3.去掉多余的注释,用一条命令把它搞掂:
       cat all.srt|grep -v '^/#.*'>mov.srt
       -v, --invert-match select non-matching lines
       选择不匹配的行,正是我们想要的。单引号中是正则表达式匹配以#开头的行。

       mov.srt就是我们要的文件
       注意:如果无法加载字幕,则很有可能是字幕中有一些乱码,找到之后去掉就可以了
     4.播放
      mplayer -vo x11 Friends.-.1x24.-.TOW.Rachel.Finds.Out.avi -sub mov.srt


      
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值