Python实现视频字幕时间轴格式转换

news2024/10/6 13:28:54

自己喜欢收藏电影,有时网上能找到的中文字幕文件都不满足自己电影版本。在自己下载的压制版电影中已内封非中文srt字幕时,可以选择自己将srt的时间轴转为ass并替换ass中的时间轴。自己在频繁
复制粘贴改格式的时候想起可以用Python代码完成转换这一操作,借助ChatGPT并自己稍作修改后用代码实现了。自己测试可用。

没指定srt文件的路径,使用前首先需要将srt后缀先改为txt文本格式,代码默认输入为“input.txt”,输出“output.txt”。运行时待转换的txt文件需要和py文件在同一目录内。
 

import re

def convert_timecode(line):
    if "-->" in line:
        # Split the line into two parts using the arrow
        parts = line.strip().split(" --> ")

        # Process each part separately
        new_parts = []
        for i, part in enumerate(parts):
            if i == 0:
                # For the first timecode, insert a comma between the first two characters
                part = part[0] + "," + part[1:]
            else:
                # For the second timecode, remove the first character
                part = part[1:]

            # Remove the last digit from the milliseconds part
            hours, minutes, seconds_milliseconds = part.split(":")
            seconds, milliseconds = seconds_milliseconds.split(",")
            milliseconds = milliseconds[:-1]  # Remove the last digit

            # Replace the last colon before the milliseconds part with a dot
            new_part = f"{hours}:{minutes}:{seconds}.{milliseconds}"
            new_parts.append(new_part)

        # Join the parts back together using a comma
        new_line = ",".join(new_parts)
        return new_line + "\n"
    else:
        # If the line doesn't contain an arrow, return it unchanged
        return line

# Replace 'input.txt' with the name of your input file, and 'output.txt' with the name of your output file.
with open('input.txt', 'r', encoding='utf-8') as infile, open('output.txt', 'w', encoding='utf-8') as outfile:
    for line in infile:
        outfile.write(convert_timecode(line))

不过还是需要手动对照翻译复制粘贴进行调轴,就是比以前手动改时间轴格式方便了些。不知道有没有一键将srt直接按照格式转为ass的软件,甚至实现普通字幕改特效字幕。

转换前srt格式时间轴

转换后ass格式时间轴

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1217445.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

EnlightenGAN 开源代码运行问题汇总

参考链接: EnlightenGAN 开源代码运行EnlightenGAN的运行环境搭建和训练自己的数据 源码下载和环境配置比较简单,本文测试环境:Win10 RTX3060、cuda 11.3、python 3.8 torch 1.12.0 numpy 1.20.1 如果想修改在项目里创建test_daatset文…

Mac电脑好用的窗口管理软件 Magnet 中文for mac

Magnet是一款用于Mac操作系统的窗口管理工具,它可以帮助您快速和方便地组织和管理应用程序窗口,以提高您的工作效率和多任务处理能力。 以下是Magnet的一些主要功能和特点: 窗口自动调整:Magnet允许您通过简单的拖放操作或使用快…

0门槛!用ChatGPT只花1天批量生成300个爆火TikTok视频

目录 1 2让天下没有难做的开发和运维,DevOps终于有了专属大模型 3关于 DevOpsGPT 1 不露脸,不怕视频也能从TikTok赚到钱?在过去30天,有人通过这个方式预计至少获得了超过1万美金的广告分成收益。这些成功账号的共同特点是,所有…

Vue3 自定义hook函数

这个hook函数并不是Vue3 自带的,而是为了方便我们书写和复用代码。 当我们在setup函数中写了很多内容过后,就会变得很乱,所以我们将实现相同功能的数据、方法和生命周期等等打包单独放在一个文件中,就会整洁很多。 例如&#xf…

天津市专业大数据培训班,大数据就业岗位的多样性

大数据技术应用广泛,几乎涉及到了各个行业和领域。毕业后,我们可以选择从事大数据工程师、数据分析师、数据科学家等职业,也可以选择进入金融、医疗、电商等行业进行数据分析和决策支持。 大数据就业岗位多样 大数据培训所涉及的就业岗位有…

原来你不会找资源,三个宝藏白嫖书籍网站,阅读改变生活(一)

[无名图书] - 探索无尽的书海 致力于为你打开一扇通往无限知识和无穷想象的大门。从畅销小说到学术专著,书库涵盖了各个领域,满足了各种阅读胃口。无论你是文学爱好者、学术追求者还是正在寻找新奇刺激的冒险者,这都是你不可错过的阅读伴侣。…

固有时间尺度分解(Intrinsic Time Decomposition,ITD)

代码教程 固有时间尺度分解(ITD) 代码原理 ITD(Intrinsic Time Decomposition)是一种信号分解方法,用于将信号分解成多个时频组件。它的基本思想是将信号分解为一组原子函数,这些原子函数具有不同的时频特性。 ITD分解的步骤如下…

Python的基础:模块(Modules)和包(Packages)详解

1. 模块(Modules) 一个模块是一个包含了 Python 定义和语句的文件。模块可以包括变量、函数、类等,并且提供了一种将相关代码组织成可重用单元的方式。一个模块的定义通常包括以下几个方面:   1)文件扩展名&#xff…

【软件推荐】我的常用Windows软件

文章目录 前言Colors Lite(颜色吸取)Everything(文件搜索)知云文献翻译Directory Opus(文件管理器)Snipaste(截图)AxMath(公式编辑器)Deskpin(窗口…

计算机视觉的应用17-利用CrowdCountNet模型解决人群数量计算问题(pytorch搭建模型)

大家好,我是微学AI,今天给大家介绍一下计算机视觉的应用17-利用CrowdCountNet模型解决人群数量计算问题(pytorch搭建模型)。本篇文章,我将向大家展示如何使用CrowdCountNet这个神奇的工具,以及它是如何利用深度学习技术来解决复杂…

【C++心愿便利店】No.13---C++之探索vector底层原理

文章目录 前言一、STL简介1.1 什么是STL1.2 STL的六大组件 二、vector的介绍及使用2.1 vector的介绍2.2 vector的使用2.2.1 vector的定义2.2.2 vector iterator 的使用2.2.3 vector 空间增长问题2.2.4 vector 增删查改 三、vector模拟实现3.1 成员变量3.2 成员函数3.2.1 构造函…

穿越时空:未来云计算的奇妙世界

文章目录 1. 云计算与智能家居2. 云计算与无人驾驶3. 云计算与虚拟现实4. 云计算与人工智能未来展望 🎉欢迎来到云计算技术应用专栏~穿越时空:未来云计算的奇妙世界 ☆* o(≧▽≦)o *☆嗨~我是IT陈寒🍹✨博客主页:IT陈寒的博客&am…

JS-项目实战-点击水果名修改特定水果库存记录

1、fruit.js function $(name) {if (name) {//假设name是 #fruit_tblif (name.startsWith("#")) {name name.substring(1); //fruit_tblreturn document.getElementById(name);} else {return document.getElementsByName(name); //返回的是NodeList类型}} }//当…

电脑版微信图片保存在哪个文件夹,如何一次性全选保存

8-7 电脑版的微信聊天,接收到图片后,会保存到微信的个人数据文件夹中,但是有个问题是这些图片都是加密保存的,普通情况下,确实无法人工去取出来,但是下面有方法可以快速将这些图片在脱离微信的情况下&…

如果免费使用GPT4

各位兄弟,这个漏洞也是最近挖到的,觉得这个可以为大家谋福利,所以我这给你们写一下。 看我如下操作 先登录GPT4 登录进来后,我们可以看见这里是GPT3 然后看如下操作 然后再问一下是模型几 各位就是这么简单,点过关注…

C++ Qt 学习(九):模型视图代理

1. Qt 模型视图代理 Qt 模型视图代理,也可以称为 MVD 模式 模型(model)、视图(view)、代理(delegate)主要用来显示编辑数据 1.1 模型 模型 (Model) 是视图与原始数据之间的接口 原始数据可以是:数据库的一个数据表、内存中的一个 StringList&#xff…

小型企业如何选择非管理型交换机?

网络的一个关键要素都是交换机,它在连接设备和确保无缝数据流动方面发挥着关键作用。特别是非管理型交换机,为希望提升网络能力的小型企业提供了一种经济高效的解决方案。在本文中,我们将探讨非管理型交换机在小型企业网络中的广泛应用以及小…

【PIE-Engine 数据资源】8天合成LAI产品(MOD15A2H.006)

文章目录 一、 简介二、描述三、波段四、属性五、示例代码参考资料 【PIE-Engine 数据资源】xxx 一、 简介 数据名称8天合成LAI产品(MOD15A2H.006)时间范围2000年-现在空间范围全球数据来源NASA代码片段var images pie.ImageCollection(“USGS/MOD15A2H/006”) 二、描述 全球…

使用Spring Boot实现大文件断点续传及文件校验

一、简介 随着互联网的快速发展,大文件的传输成为了互联网应用的重要组成部分。然而,由于网络不稳定等因素的影响,大文件的传输经常会出现中断的情况,这时需要重新传输,导致传输效率低下。 为了解决这个问题&#xff…

数字档案室建设评价

数字档案室建设评价应考虑以下几个方面: 1. 安全性:数字档案室的主要目的是确保档案资料的安全性。评价应考虑数字档案室的物理安全性、防火措施、保密措施、网络安全等方面。 2. 可访问性:数字档案室应该易于访问和使用。评价应考虑数字档案…