精华内容
下载资源
问答
  • 多个srt文件合并

    2020-07-01 20:30:36
    多个srt文件合并 多个字幕文件路径以list存放,每个字幕文件的内容都追加在第一个字幕文件之后,时长累加,字幕编号累加。 直接上代码 /** * 合并srt字幕文件 * @param srtPathList */ public void mergeSrt...

    多个srt文件合并

    1. 多个字幕文件路径以list存放,每个字幕文件的内容都追加在第一个字幕文件之后,时长累加,字幕编号累加。
      直接上代码
    	/**
         * 合并srt字幕文件
         * @param srtPathList
         */
        public void mergeSrt(List<String> srtPathList){
    
            if (srtPathList != null && srtPathList.size() > 0){
    
                FileOutputStream mergeFos = null;
    
                int maxNumber = 0;
    
                long maxTime = 0L;
    
                File firstSrtFile = new File(srtPathList.get(0));
    
                try {
                    InputStreamReader read = new InputStreamReader(new FileInputStream(firstSrtFile), "utf-8");
    
                    BufferedReader bufferedReader = new BufferedReader(read);
    
                    String lineTxt;
    
                    List<String> lineList = new ArrayList<>();
    
                    // 取得第一个文件的行号最大值和字幕时间最大值
                    while ((lineTxt = bufferedReader.readLine()) != null){
    
                        lineList.add(lineTxt);
    
                    }
                    if (lineList != null && lineList.size() > 4){
                        int size = lineList.size();
                        maxNumber = Integer.parseInt(lineList.get(size - 4));
                        String timeString = lineList.get(size - 3).split(" ")[2];
                        maxTime = ConvertUtil.convertToMs(timeString);
    
                    }
                    read.close();
                    bufferedReader.close();
    
                    mergeFos = new FileOutputStream(firstSrtFile, true);
    
                    for (int i = 1; i < srtPathList.size(); i++){
    
                        InputStreamReader readI = new InputStreamReader(new FileInputStream(srtPathList.get(i)), "utf-8");
    
                        BufferedReader bufferedReaderI = new BufferedReader(readI);
    
                        String lineTxtI;
    
                        int lines = (int) Files.lines(Paths.get(srtPathList.get(i))).count();
    
                        int index = 0;
    
                        while ((lineTxtI = bufferedReaderI.readLine()) != null){
                            index ++;
                            switch (index % 4){
                                case 1 :
                                    lineTxtI = String.valueOf(Integer.parseInt(lineTxtI) + maxNumber);
                                    break;
                                case 2 :
                                    String[] timeArray = lineTxtI.split(" --> ");
                                    long bg = Long.valueOf(ConvertUtil.convertToMs(timeArray[0])) + maxTime;
                                    long ed = Long.valueOf(ConvertUtil.convertToMs(timeArray[1])) + maxTime;
                                    lineTxtI = ConvertUtil.convertTime(bg) + " --> " + ConvertUtil.convertTime(ed);
                                    break;
                            }
    
                            // 取得新的行号最大值和字幕时间最大值
                            switch (lines - index){
                                case 3 :
                                    maxNumber = Integer.parseInt(lineTxtI);
                                    break;
                                case 2 :
                                    String[] timeArray = lineTxtI.split(" --> ");
                                    maxTime = Long.valueOf(ConvertUtil.convertToMs(timeArray[1]));
                                    break;
                            }
    
                            lineTxtI += "\r\n";
                            mergeFos.write(lineTxtI.getBytes());
                        }
                        bufferedReaderI.close();
                        readI.close();
                        // 删除已经被合并的字幕文件
                        File delFile = new File(srtPathList.get(i));
                        delFile.delete();
                    }
                    mergeFos.close();
    
                } catch (UnsupportedEncodingException e) {
                    e.printStackTrace();
                } catch (IOException e) {
                    e.printStackTrace();
                }
    
                try {
                    mergeFos.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
    
            }
    
    
        }
    
    1. 用到的工具类
    public class ConvertUtil {
        /**
         * @Author: luyang2
         * @Param:
         * @Description: 毫秒转换为HH:mm:ss,SSS
         * @Date: 2020/5/11 14:46
         */
        public static String convertTime (long ms){
            SimpleDateFormat format =  new SimpleDateFormat("HH:mm:ss,SSS");
            format.setTimeZone(TimeZone.getTimeZone("GMT+00:00"));
            return format.format(ms);
        }
    
        /**
         * @Author: luyang2
         * @Param:
         * @Description: HH:mm:ss,SSS转换为毫秒
         * @Date: 2020/6/24 14:37
         */
        public static long convertToMs (String timeString){
            if (StringUtils.isBlank(timeString)){
                return 0;
            }
            long maxTime;
            String[] timeStringArray = timeString.split(":");
            if (timeStringArray.length < 3){
                return 0;
            }
            int hour = Integer.parseInt(timeStringArray[0]);
            int minute = Integer.parseInt(timeStringArray[1]);
            int second = Integer.parseInt(timeStringArray[2].split(",")[0]);
            if (timeStringArray[2].split(",").length < 2){
                maxTime = (hour * 3600 + minute * 60 + second) * 1000;
                return maxTime;
            }
            maxTime = (hour * 3600 + minute * 60 + second) * 1000 + Integer.parseInt(timeStringArray[2].split(",")[1]);
            return maxTime;
        }
    }
    
    展开全文
  • 为了解决此问题,写了以下代码来合并多个这样的文件 读取字幕文件 def read_srt(path): content = "" with open(path) as f: content = f.read() return content 小测试 content = read_srt('1.srt') print...

    下载电影字幕的时候,经常会出现一个字幕文件被分成cd1.srt、cd2.srt,但电影是一整块的尴尬情况。为了解决此问题,写了以下代码来合并多个这样的文件

    读取字幕文件

    def read_srt(path):
        content = ""
        with open(path) as f:
            content = f.read()
            return content
    

    小测试

    content = read_srt('1.srt')
    print(content)
    

    在这里插入图片描述

    content = read_srt('2.srt')
    print(content)
    

    在这里插入图片描述

    可以看到字幕的合并要做到两点,一个是内容要合并,一个是序号要对齐,因为2.srt中序号也是从1开始的。

    字幕拆分

    def get_sequences(content):
        sequences = content.split('\n\n')
        sequences = [sequence.split('\n') for sequence in sequences]
        # 去除每一句空值
        sequences = [list(filter(None, sequence)) for sequence in sequences]
        # 去除整体空值
        return list(filter(None, sequences))
    

    小测试

    sequences = get_sequences(content)
    sequences
    

    在这里插入图片描述

    字幕修改

    def change_sequences(sequences, start_index):
        for sequence in sequences:
            sequence[0] = str(start_index)
            start_index += 1
    

    生成新字幕

    def save_srt(names):
        new_content = []
        start_index = 1
        for name in names:
            content = read_srt(name)
            sequences = get_sequences(content)
            change_sequences(sequences, start_index)
            start_index = len(sequences) + 1
            new_content += sequences
        new_content = ['\n'.join(word) for word in new_content]
        new_content = '\n\n'.join(new_content)
        print(new_content)
        with open('result.srt', 'a') as f:
            f.write(new_content)
    
    save_srt(['1.srt', '2.srt'])
    
    展开全文
  • 周末在家上看《Rome》,发现有中英文两种字幕切换,英文字幕还是大写, 于是写了小程序,完成以下两功能: ...如果你看电影的时候发现有中英文两种字幕文件,不妨用附件的程序一试,一句话:“谁用谁知道!”:)
  • Rust字幕实用程序 您在寻找substudy吗? 试试。 ( substudy已合并到... :kaegi的这GPLed库使用动态编程来重新对齐不同步的字幕,该字幕使用另一具有良好时序的字幕文件。 :由kaegi此库可解析许多常见的字幕格
  • 字幕合并是一种用于合并两个或多个视频字幕的工具。 SRT合并允许您合并字幕文件,而不管字幕以哪种语言编码。合并的结果将是一个新的字幕文件,该文件将显示每个合并文件中的字幕。 如何运作? m = Merger(output...
  • 合并和清理多行语言字幕文件。 目的 一些隐藏式字幕文件在单个字幕时序块中包含多行字幕。 此脚本将多行合并为一行。 如果还存在非英语翻译行,它们将被单独合并到另一行,在英语行之上。 我们使用中文作为预期...
  • 火鸟字幕合并

    2013-02-26 23:04:24
    内置提供ssa/ass转换为srt字幕格式/单字幕文件索引修整/字幕并行等功能;  6.程序支持语言版本,目前支持简体中文版/繁体中文版/英文版;  适用类型:  支持的字幕格式:可读取和生成srt/ssa/ass三种格式,供...
  • 工具菜单中有多个srt字幕工具,用于合并字幕、切割字幕、调整字幕延时、内码转换等。 点击打开字幕,可以打开先前创建的字幕继续编辑,第一次点击保存会提示输入保存路径,如需更改以后的保存路径,可以单击另存为...
  • 工具菜单中有多个srt字幕工具,用于合并字幕、切割字幕、调整字幕延时、内码转换等。 点击打开字幕,可以打开先前创建的字幕继续编辑,第一次点击保存会提示输入保存路径,如需更改以后的保存路径,可以单击另存为...
  • Time machine字幕编辑器

    2017-11-02 18:55:34
    8.时间机器Time machine字幕制作软件可以追加字幕,当你把CD字幕合并为一个字幕的时候这功能比较有用,当然时间你得重新对着视频调整。 或者多人翻译的字幕合并起来。 9.一键CC处理拿到英文CC字幕之后打开,点CC...
  • 在Windows上,有potplayer,kmplayer等播放器支持导入多个字幕文件,但是在Linux包括Ubuntu以及Mac下,貌似还没有出现个支持双字幕的播播放器。 但是如果需要看英语视频学习英语听力,就非常需要双字幕。可以这样...

    前言

    在Windows上,有potplayer,kmplayer等播放器支持导入多个字幕文件,但是在Linux包括Ubuntu以及Mac下,貌似还没有出现个支持双字幕的播播放器。

    但是如果需要看英语视频学习英语听力,就非常需要双字幕。可以这样解决:合并双语字幕

    转换

    打开网址:为外语电影在线打造双语字幕

    首先下拉选择输出文件格式,选择SRT (SubRip)

    接着上传字幕文件:

    112108136.pnguploading.4e448015.gif转存失败重新上传取消Mac/Linux/Ubuntu下 视频 显示双语/中英字幕 的方法

    文件编码如果不清楚的话,全选择UTF-8

    使用

    最后点击提交即可下载双语字幕。之后只要在视频播放器选择该字幕文件,就可以观看双字幕影片了。

    Video

    首先介绍Ubuntu自带的Video软件。点击右上角三个点图标,再点击Subtitles选择你刚才下载的字幕

    Mac/Linux/Ubuntu下 视频 显示双语/中英字幕 的方法

    Mac/Linux/Ubuntu下 视频 显示双语/中英字幕 的方法

    效果如下:

    Mac/Linux/Ubuntu下 视频 显示双语/中英字幕 的方法

    VLC

    再说下VlC这款自由、开源的跨平台多媒体播放器开启双字幕的方法。
    首先播放视频,接着点击菜单栏的Subtitle

    Mac/Linux/Ubuntu下 视频 显示双语/中英字幕 的方法

    在弹出的菜单中选择Add Subtitle Title,选择刚才下载的字幕文件。

    效果如下:

    Mac/Linux/Ubuntu下 视频 显示双语/中英字幕 的方法

    SMPlayer

    最后说下SMPlayer开启双字幕的方法。

    导航栏选择Subtitles,在弹出的窗口中点Load

    Mac/Linux/Ubuntu下 视频 显示双语/中英字幕 的方法

    选择刚才下载的字幕文件后,如果没有显示,这时候需要中Subtitle-Primary Track手动选择。

    如果SMPlayer开启双字幕出现中文乱码:在菜单栏选择Options->preference,在弹出的窗口中,左侧点击Subtitles,右侧将编码方式改成UTF-8

    Mac/Linux/Ubuntu下 视频 显示双语/中英字幕 的方法

    最后右下角点击OK。 效果如下:

    3035404468.pnguploading.4e448015.gif转存失败重新上传取消Mac/Linux/Ubuntu下 视频 显示双语/中英字幕 的方法

    打赏

    展开全文
  • 还可以进行LRC、SRT制作、LRC同步显示 、多个LRC合并为TXT。本软件为绿色软件,小巧方便。非注册用户可以无时间限制地免费使用软件绝大部分的功能。 ------------------------------------------------------------...
  • 当OCR处理结束,读取所有字幕并对文本进行后期处理时,将生成一个SRT文件。 该SRT被发送到DOMS,可以使用或进一步处理。 有关各个模块中工作流程的更信息,我们将参考每个模块中的自述文件。 模块概述 通用工具...
  • 追加字幕允许同时选择多个字幕文件,而不用一个一个文件的追加 2009.12.29 在视频同步状态,按ctrl+F2快捷键给当前自动同步行做标记,而不是鼠标单击的那一行 -name之bug修正 2010.01.08 优化智能拆分长句功能 优化...
  • 如何制作好玩的VCR并加入字幕

    千次阅读 2014-01-28 15:00:39
    如何制作好玩的VCR? 如何给电影加入字幕?如何制作电影片头和片尾? 以前从没考虑过自己制作VCR,最近碰上了公司年会,...目的:将录像机拍的几视频文件剪辑,合并,加入字幕,添加片头/片尾 软件:格式工厂,srt

    如何制作好玩的VCR? 如何给电影加入字幕?如何制作电影片头和片尾?

    以前从没考虑过自己制作VCR,最近碰上了公司年会,需要给我们部门的非常勿扰节目配上VCR。从网上搜罗了一堆的软件,大大小小的不下8、9个了,很多都不是免费,好用的没几个,还浪费了很多功夫。为了让后来者少走些弯路,特将经验共享如下。

    目的:将录像机拍的几个视频文件剪辑,合并,加入字幕,添加片头/片尾

    软件:格式工厂,srt字幕制作助手,movie maker

     

    1. 格式转换

    用摄像机录完之后,一般是MTS格式,这时候需要将MTS格式的所有视频文件转成AVI或者MPG格式。用的工具“格式工厂”(免费软件,不需要解压密码和激活码),下载地址:http://xiazai.zol.com.cn/detail/33/325408.shtml

    打开格式工厂,“视频”-“所有转到AVI”-“添加文件”

    如何制作好玩的VCR并加入字幕

    将需要转化的视频文件导入,设置好“输出文件夹”,“确定”

    如何制作好玩的VCR并加入字幕

    “开始”,MTS格式的视频文件就转成了AVI格式。根据需要也可以转成MPG等其他格式。

    如何制作好玩的VCR并加入字幕

    2. 给视频加入字幕

    配上字幕一是为了克服视频声音小,二是为了配上有趣的字幕更有效果。步骤如下:

    1)下载软件“srt字幕制作助手” (免费软件,不需要解压密码和激活码)地址:http://www.skycn.com/soft/17759.html

    2)将转换完毕的AVI格式视频导入到srt字幕制作助手软件中,根据操作提示配好字幕,然后存储为“.srt”格式,备用。

    如何制作好玩的VCR并加入字幕

    3)打开“格式工厂”,将AVI文件导入,“输出配置”-“附加字幕”-导入.srt字幕文件,调整字体大小“字幕字体大小”

    如何制作好玩的VCR并加入字幕

    4)  确定后,主页面的“选项”-“字幕字体”调整字体格式/大小/颜色。

    返回主页面“开始键“即会将AVI视频与字幕结合,形成新带字幕的新视频文件

    如何制作好玩的VCR并加入字幕

     

    3. 视频剪切/组合/视频过渡/制作片头片尾

    让整个视频更好玩,连贯成为一个文件。步骤如下:

    1)下载软件“movie maker” (免费软件,不需要解压密码和激活码)地址:http://www.onlinedown.net/soft/38415.htm

    2)将视频一个一个导入,并导入到时间轴里面,将多余的视频部分利用“剪辑”-“设置起始剪裁点”处理。留下有用的视频部分。其他视频也用同样的方式导入时间轴里面,并将视频在时间轴里进行排序。

    如何制作好玩的VCR并加入字幕

    3)制作片头、片尾,中间旁白。利用复制粘贴片头,修改动画效果即可

    如何制作好玩的VCR并加入字幕

    片头有多种动画效果,可以选择最合适的动画和过渡效果
    如何制作好玩的VCR并加入字幕

    4)添加视频过渡及效果

    5)添加音乐,新建一个项目将音乐导入,同样利用“剪辑”-“设置起始剪裁点”制作想要的音乐部分,保存之后导入到原来的视频项目中

    6)合成视频、过渡效果、背景音乐、旁白成一个新的电影文件“完成电影”-“保存在我的计算机”

     

    一个好玩的VCR视频文件就做成了!


    如何使用Movie Maker制作家庭电影


    展开全文
  • 将例如美剧的视频放进去,再把相应的字幕文件放进去,就可以将每一句字幕对应的视频片段剪出来!如果你的字幕时间轴和视频时间轴有偏差,还可以进行手动的校准。 根据时间分割视频和根据大小分割视频主要是针对分享...
  • 视频分割成多个片段按文件数量,时间长度或文件大小;合并单独的视频转换成单一的一个视频,修剪所选视频到你想要的部分;作物的视频下车的黑条或改变输出的宽高比;个性化的视频好看的文字/图像/视频水印;应用特殊效果...
  • 合并多个视频文件一起,或加入音频文件合并成一个; 调整视频图像的亮度,对比度,饱和度; 设置视频编解码器,分辨率,大小,比特率,帧速率,宽高比;载音频编解码器,采样率,比特率,声道,音量等。 转换视频到音频...
  • mkvtoolnix V6.3

    2013-08-01 09:34:18
    找到你要提取字幕的mkv文件,在下面的轨道栏里面会看到mkv里面包含的文件,一般排列方式是视频,音频,字幕文件,音频一般有一或者几,要看mkv片源的音轨有几了,有的时候还会有5音轨,前面的对勾是你要的文件...
  • 视频合并合并多个音频/视频文件到一个文件中。视频简易截取:从长视频中截取一小段视频出来。批量截取:批量截取音频/视频文件。高级截取:截取视频的同时添加水印、字幕以及特效和旋转。视频旋转:以90,180,270...
  • 相反,字幕文件将与视频文件合并并转换成一新文件。它支持ASS、SRT字幕格式,可以即时预览效果,并可以动态调整字幕字体和位置。  (5)视频旋转  很多人都会犯这样的一错误,当你用手机拍摄,或者是一部摄像...
  • 支持将多个视频或音频合并到同一个文件中去,还可从一段很长的视频中剪辑一小段出来,将指定的音乐添加到视频中。内附注册机,使用时需要在Product中选择Video Tools--->Video Editor 4.2.0,再按Generate生成...
  • Apowersoft MKV视频转换通是一款mkv视频格式转换器。除了基本的多种格式转换,还可以进行视频编辑,视频快照。选择Apowersoft MKV视频...而且,多个视频转成同一格式时还能进行合并合并后的视频衔接无缝,播放顺畅。
  • ■支持LRC歌词转SRT字幕,支持LRC歌词批量转为SRT字幕,支持SRT歌词转化为LRC歌词; ■支持LRC歌词转QLY歌词,支持LRC歌词批量转为QLY歌词,支持QLY歌词转化为LRC歌词; ■支持歌词制作保护功能,Lrc歌词编辑器按...
  • idoo Video/Audio Joiner (视频、音频合并器):将多个视频文件或片段合成为一个视频,支持众多格式,但应该不是无损合并,而 Boilsoft Video Joiner 和 Ultra Video Joiner 可以在满足一定条件下无损合并。...
  • Apowersoft MKV 视频转换通是一款卓越实用的MKV转换器。它支持多种输出格式,包括常用的MP4、WMV、AVI、MOV、3GP、...而且,多个视频转成同一格式时还能进行合并合并后的视频衔接无缝,播放顺 MKV视频转换器截图:
  • 允许用户按部分、持续时间或文件大小精准且无损的分割和合并文件操作,能帮助用户轻松管理各种音视频文件,广告提出以及,视频归档等操作,SolveigMM Video Splitter只需两操作即可从电影中移除所有广告,同时删除...
  • 允许用户按部分、持续时间或文件大小精准且无损的分割和合并文件操作,能帮助用户轻松管理各种音视频文件,广告提出以及,视频归档等操作,SolveigMM Video Splitter只需两操作即可从电影中移除所有广告,同时删除...
  • 右键单击一个或多个文件,您将有权访问 有关文件的所有信息 您可以轻松比较它们。 基本参数 由于后期制作是一个非常苛刻的领域, 我提出了不同的参数来回答最好的 满足您工作流程的要求。 简单而强大的重命名 ...

空空如也

空空如也

1 2
收藏数 36
精华内容 14
关键字:

多个srt字幕文件合并