之前有写过几个视频生成字幕,并且翻译字幕的教程,但是随着时间的流逝,那些方案也早就过时了。 今天这个教程目前是最完美的,速度也最快。 今天会用到一个软件、三个在线工具,分别字幕格式提取,字幕翻译,和字幕合并 视频字幕翻译教程 1.剪映专业版生成字幕 首先我们需要用的的工具是剪映,用来识别生成字幕,但是是单个语言。没有翻译。 我们需要把剪映生成子的字幕提取出来。 生成独立的srt格式的字幕 步骤:先导入视频—文本—智能字幕—开始识别 2.提取剪映字幕 这是不同系统的默认目录,即使你的剪映装到其他盘,草稿字幕也是在这个默认目录里面的 Windows 目录:C:\ com.lveditor.draft 打开其中一个找到你的项目,找到draft_content将这个文件,拖到如图 这个网址的选择文件,点击生成 https://www.nandongni.com/zimutiqu 3.
引言 现在的短视频非常流行。大多数情况下我们会开着音量或者戴着耳机收看视频。但有些时候不是太方便,如果视频能有一个字幕就好了。 ? 好消息是,字幕制作的软件很专业很好用,而且上手超级简单。 坏消息是,如何把字幕合成到视频音频文件内?或者把字幕文件从视频文件提取出来,都需要不少工具! 我们今天讲解使用 ffmpeg 解决大家的这个痛点。 像国内比较常见的对国外影视作品的引进,需要翻译人员制作字幕,那么翻译组生成字幕文件后,如何合并入音视频文件内呢? 这时候需要 ffmpeg 的 overlay filter 过滤器,这样写指令: ffmpeg -i input.mkv -filter_complex "[0:v:1][0:s:3]overlay[v 找一段高清完备的音视频,尝试着从中提取或合成新的文件,实践起来吧。
哔哩哔哩有些视频是通过外挂字幕文件来实现字幕的,但是当我们把这些视频下载下来之后,发现并没有字幕,是因为只下载了视频,或者视频软件没有识别到B站外挂字幕文件。 ? 这时候我们可以用哔哩哔哩UWP版把视频下载下来之后,提取其中的外挂字幕文件即可。 下载B站视频可以参考这篇文章:下载哔哩哔哩(B站)里的视频(无论有没有版权) 打开B站下载的视频,然后打开文件夹“1”(即p1) ? 打开后会发现B站的字幕文件不是用srt格式的标准实现的,那我们可以先查一查srt格式(视频软件普遍支持srt支持来外挂字幕)的规范是怎么样的。 srt格式的书写规范大概为: ? 参考:如何编写srt或txt格式字幕 用记事本写srt视频字幕文件 版权所有:可定博客 © WNAG.COM.CN 本文标题:《提取哔哩哔哩(B站)视频中的字幕文件》 本文链接:https://wnag.com.cn
本文应用均以avi格式的录屏视频文件为例。 应用1、提取视频文件中的音频 ? 在命令提示符环境中执行该程序(后面两段程序也在命令提示符环境中执行): ? 应用2、删除视频中的音频 ? 应用3、视频剪辑、拼接、添加字幕 ? 上面三段代码生成的结果文件: ? 添加字幕后的视频效果图: ?
最近在探索⼤模型应⽤开发时,我尝试将多模态能⼒与OCR技术结合,构建⼀套⾼度⾃动化的【AI视频字幕提取⼯具】。 为什么要做字幕提取? 说到视频字幕提取,很多⼈第⼀反应是“直接⽤播放器不是有吗?” 点击“开始提取”,⼯具⾃动分帧并调⽤ PaddleOCR API 逐帧识别字幕; 3. 识别结果会按时间顺序⾃动合并、排序,去除重复内容,最终以表格形式在界⾯展示; 4. (字幕提取结果) (提取到的字幕结果) (保存下来的原始JSON数据) 应⽤场景拓展 除了最常⻅的字幕提取,基于这个⼯具我还发现了很多有趣的应⽤: • ⾃动视频摘要:结合⼤模型,把所有字幕聚合⽣成视频摘要 通过本次实践,PaddleOCR 在视频字幕提取场景中展现了其核⼼价值:精准的识别能⼒确保了字幕⽂本的准确提取,⽽完整的坐标和结构化输出则为后续的时序对⻬、位置过滤和可视化展示提供了坚实基础。
文章目录 一、添加字幕 ( 智能识别字幕 ) 二、修改字幕 ( 字幕预设 | 字幕换行 ) 三、使用字幕作为封面主题 一、添加字幕 ( 智能识别字幕 ) ---- 在 素材 面板中 , 选择 " 文本 " 选项卡 , " 智能字幕 " , 然后选择 " 识别字幕 " , 即可设置字幕 ; 点击开始识别后 , 会将视频中的人声 , 自动转为字幕 ; 如果视频中没有人声 , 会提示 , 该视频没有人声 , 未识别到字幕 ; 如果成功识别出字幕 , 会显示如下内容 , 在时间轴视频的上方 , 会出现 TI 字幕对应的时间轴 ; 二、修改字幕 ( 字幕预设 | 字幕换行 ) ---- 在 " 时间轴 " 上 , 选择 智能识别 的字幕 , 可以在右上角的 " 文本 " 面板 , 修改字幕的文字 , 字体 , 样式 , 颜色 , 预设 等属性 ; 选择 预设样式 , 字幕就会变成如下样式 : , 点击默认文本 右下角的 加号 按钮 , 将其添加到轨道中 , 然后拖动该字幕位于视频的位置 ; 右上角的 面板中 , 编辑该字幕内容 , 为字幕选择样式 , 最终在 播放器 中查看该 视频标题 字幕的样式
(本文字数:1331,阅读时长大约:2 分钟) 让我分享一个场景:当你想要观看一部电影或视频,而又需要字幕时,在你下载字幕后,却发现字幕没有正确同步,也没有其他更好的字幕可用。现在该怎么做? 你可以 在 VLC 中按 G 或 H 键来同步字幕。它可以为字幕增加延迟。如果字幕在整个视频中的时间延迟相同,这可能会起作用。但如果不是这种情况,就需要 SubSync 出场了。 即使音轨和字幕使用的是不同的语言,它也能发挥作用。如果有必要,它也支持翻译,但我没有测试过这个功能。 我播放一个视频不同步的字幕进行了一个简单的测试。 令我惊讶的是,它工作得很顺利,我得到了完美的同步字幕。 使用 SubSync 很简单。启动这个应用,它会让你添加字幕文件和视频文件。 image.png 你需要在界面上选择字幕和视频的语言。 image.png 请记住,同步字幕需要一些时间,这取决于视频和字幕的长度。在等待过程完成时,你可以喝杯茶/咖啡或啤酒。 你可以看到正在进行同步的状态,甚至可以在完成之前保存它。
另一方面,视频中的字幕往往携带了非常精准关键的描述信息,从识别字幕的角度去理解视频内容成为了相对可行的途径。 识别字幕文本通常需要两个步骤:字幕定位、文本识别。 字幕定位,即找出字幕在视频帧中所处的位置,通常字幕呈水平或竖直排列,定位的结果可以采用最小外接框来表示,如图1所示。字幕文本识别,即通过提取字幕区域的图像特征,识别其中的文字,最终输出文本串。 其方法流程如图3所示: 图3:CRNN实现end-to-end word recognition 首先,输入高度固定、宽度不限的单词图像(无需单字区域信息),在训练过程中,将图像统一归一化到32*100 但是,针对实际应用场景的分析让我们最终放弃了这个方案,原因有二: 时效:基于我们在英文单词上面的实验对比,CRNN的耗时约为传统方法的2~3倍,不能满足视频处理的实时性要求; 性能:CRNN擅长处理难以切分的字符串 图4:字幕区域的切分 切分环节给出了单个字符区域,针对该区域,采用CNN模型提取特征来进行单字识别。
功能描述: 根据给定的字幕文件中的字幕信息,自动给视频添加字幕,运行程序后输入要添加字幕的视频文件和对应的字幕文件路径即可。 实际使用时不需要对程序做任何修改,只需要根据实际的视频内容来修改字幕文件就可以,自动把字幕文字添加到视频下方并居中显示。 字幕文件格式: ?
添加描述 字幕卡 字幕的祖宗是「字幕卡」(intertitles)。早年的无声电影里,所有要用语言表达的内容都是印在硬纸板上然后拍下来,插在电影的序列之间来辅助讲故事。 早期字幕卡上的文字已经具备现代字幕的一些特点,比如用标点符号来辅助阅读(这一点在中文影视圈还需加强),比如在字幕卡的结尾用三点省略号来表示这个句子尚未完结。 但是,作为更廉价的解决方案,字幕得到了进一步的发展。 字幕的兴起 丹麦和法国在1929年开始发行配字幕的电影,成为了最早接受配字幕电影的国家。 字幕技术的发展 最早的现代意义上的字幕也在无声电影发展的早期就出现了。在没有计算机技术支持的年代,上字幕也是一个技术难题。上字幕的技术在整个二十世纪经历了很多变化与发展。1909年,M. N. Topp注册了一种幻灯机的专利,可以把字幕投射到字幕卡的侧面或者下方。这是使用光学方法上字幕。到1930年代,挪威开发出了机械力学原理的上字幕方法,而匈牙利开发出了热力学原理的上字幕方法。
这里【月神】其实在上图中已经给了一个思路了,后来【瑜亮老师】也给了一个思路,如下图所示: 后来粉丝自己也在其他群得到了一个解答,如下图所示: 代码,如下所示: 序号列表 = [x for x in 字幕文件 ='\n'] 后来【瑜亮老师】提出一个疑问,明明是要字幕中的文字,为啥提出来的需求是取数字?粉丝自己也说了自己的理由。 3 00:00:02,816 --> 00:00:03,584 得远一点。 4 00:00:06,400 --> 00:00:09,216 你往里再坐一点。 ?? 3 00:00:02,816 --> 00:00:03,584 得远一点。 4 00:00:06,400 --> 00:00:09,216 你往里再坐一点。 ?? res=re.findall(",\d{3}\n(.*?)\n\n", data, re.S) print(res) 运行之后,结果如下所示: 完美地解决了粉丝的问题。
给大家分享一个用CSS 3.0实现的视频字幕悬停特效,效果如下: 以下是代码实现,欢迎大家复制粘贴和收藏。 <! initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>CSS 3.0实现视频字幕悬停特效
出于某些不可告人的特殊原因,我需要得到某个B站视频的 「 字幕 」,自己手动记录字幕实在过于繁琐,每几秒都会有字幕不断地更新,一个1小时的视频字幕的收集便是一个浩大的工程~ 因此我再次召唤我的好帮手 网络爬虫 这个CC字幕我们可以再视频中拖放至任意位置,十分便捷,经过观察发现,该字幕显式地放在一个json之中,而这个json又可以通过Network找到。 ? 上图中的 subtitle_url 便给出了字幕json的链接,而访问该链接可以得到该视频的所有字幕信息。 由此我们找到了所需的详细字幕信息所在的位置,思路也非常清晰,先模拟访问该视频页面获取字幕的json链接,再将json链接中包含的信息按照srt文件的格式下载到本地。 return data 这样我们就可以得到某个视频的CC字幕,如果想要爬取的视频的字幕不是CC字幕的话,是无法通过上述代码爬取的。
一首歌,一张封面,一份歌词文本——如何快速生成带逐字高亮的卡拉OK字幕视频? 1080×1080 的卡拉OK字幕 MP4 视频。 视频渲染管线 build/{歌名}.mp4 — 1080×1080 卡拉OK字幕视频 逐字高亮 + 封面背景 + 音频合成 输入 AI 核心 生成 渲染 输出 工作流程 ① 转录 → 基础视频 → 字幕叠加 输出:build/{歌名}.mp4 核心技术难点 1. 配合 ASS \kf 字幕格式和 ffmpeg 渲染管线,从输入到输出完全自动化,一条命令即可生成卡拉OK字幕视频。 项目适用于音乐爱好者自制歌词视频、音乐教学、语言学习等场景。
思路是通过moviepy将mp3与图片(jpg)转换成mp4后,再利用ffmpeg将mp3与srt合并MP3转换为MP4相关代码如下:# -*- coding:utf-8 -*-# @author:Ye Zhoubing# @datetime:2024/8/4 15:05# @software: PyCharm"""将音频与字幕合成为视频(添加图片)"""from moviepy.editor import *## mp3转mp4# 添加音频文件audioclip = AudioFileClip(r"audio.mp3")# 给视频添加图片videoclip = ImageClip("image.jpg" )# 设置视频时长videoclip = videoclip.set_duration(audioclip.duration)# 把音频文件添加到视频剪辑中videoclip = videoclip.set_audio (audioclip)# 保存视频文件videoclip.write_videofile("output_video.mp4", fps=24)MP4与SRT合并第二步按理来说其实也能用moviepy实现
今天看到一篇“一个视频自动加字幕的小工具,如何做到月入2W”的博文(突字幕,有兴趣的同学可以度娘,作者的动手能力确实很强!),考虑实现这个小工具就能做到这个收入,还是挺让人羡慕的! 关键功能点,给视频自动添加多语种字幕,大概的实现流程: 1、视频中音频部分提取! -> 源码改造ffmpeg,或者直接命令提取,大多数三方识别平台只识别PCM,所以提取再加上转码,可以参考:https://www.zhihu.com/question/389948583 ffmpeg 3、文字翻译,比方中文转英文! -> 使用商用的API,百度、腾讯等云服务商均有提供机器翻译API; 4、将文字+时间戳生成外挂式SRT字幕文件,后台服务程序处理即可! 一个典型的SRT文件如下(截取自阿凡达中英字幕): 3 00:00:39,770 --> 00:00:41,880 在经历了一场人生巨变之后 When I was lying there in the
要翻译,第一步必须解决:把字幕从视频帧里提取出来,还原成带时间轴的 SRT 文本文件。这件事听起来简单,工程上并不轻松。 因此,基于 OCR 的视频帧字幕检测、识别与时间轴对齐,成为短剧出海自动化翻译的核心前置能力,NarratorAI 的字幕君(字幕提取 Agent)把这个过程拆解为 10 个步骤,每一步对应产品界面进度条上的一个阶段 二、OCR字幕提取10步处理链路详解Step 1|加载视频文件(进度 10%)第一步是文件解析,不是 OCR。 Step 3|分析视频帧率和时长(进度 30%)这一步决定了后续关键帧提取的策略。帧率(fps)是视频每秒包含的图像帧数,常见值是 24fps、25fps、30fps。 这个策略的优势是自适应:对话密集的场景(字幕切换频繁)会提取更多关键帧,静场或纯音乐段落(无字幕)会跳过大量帧,整体计算量和字幕密度成正比,而不是和视频时长成正比。
前不久我介绍了通过视频生成字幕的技术原理(博客、B站),我现在把这个功能打包成一个易于操作的界面,如下图所属: ? 图片 操作非常的简单,打开程序后,点击上面【打开要识别的视频按钮】,就会弹出下图的打开文件对话框,选择需要生成字幕的视频: ? 图片 稍等片刻,待程序识别并生成完成后就弹出如下保存对话框,填写要保存的字幕文件名就可以了: ? 图片 最后生成类似如下的文件就可以在你的视频编辑软件中进行合并了。 ? 图片 软件下载
基于像素分类的背景分析方法 自适应的背景提取(无参数化/ KNN) 基于GMM的背景提取 基于模糊积分的背景提取 这些背景建模的方法一般都可以分为如下三步完成 背景初始化阶段(背景建模提取) 前景检测阶段 (视频分析,前景对象检测) 背景维护与更新(视频分析过程中) 视频分析中,工作方式如下: 算法介绍 实现对前景与背景像素级别的建模,最常见的是RGB像素的概率密度分布,当对象没有变化的时候,通过连续的 video_004.avi") mog = cv.createBackgroundSubtractorMOG2() se = cv.getStructuringElement(cv.MORPH_RECT, (3, 3)) while True: ret, image = capture.read() if ret is True: fgmask = mog.apply(image if c == 27: break else: break cv.destroyAllWindows() 运行结果 画面解释:最左侧是输入视频的一帧
阅读本文,用时3~5mins 基本思想 OpenCV中支持的两种背景提取算法都是基于模型密度评估,然后在像素级对图像进行前景与背景分类的方法,它们具有相同的假设前提 – 各个像素之间是没有相关性的,跟它们算法思想不同的方法主要是基于马尔可夫随机场理论 基于像素分类的背景分析方法 自适应的背景提取(无参数化/ KNN) 基于GMM的背景提取 基于模糊积分的背景提取 这些背景建模的方法一般都可以分为如下三步完成 背景初始化阶段(背景建模提取) 前景检测阶段 (视频分析,前景对象检测) 背景维护与更新(视频分析过程中) ? 3)) while True: ret, image = capture.read() if ret is True: fgmask = mog.apply(image 画面解释:最左侧是输入视频的一帧,有一只小兔子在跑,中间是背景建模,右侧是前景检测,生成的移动对象mask,可见小兔子作为移动目标被成功捕获!