fcpx快速添加字幕 | final cut pro导入fcpxml字幕文件与视频时间对不上?我用代码搞定了

news/2025/2/19 13:35:13/

点击观看视频课程 ↓↓↓

fcpx快速添加字幕 | final cut pro导入fcpxml字幕文件与视频时间对不上?教你一招搞定

大家好,我是宁一,这段时间我升级了剪辑视频的设备,从iMovie升级成了fcpx,花了我10顿火锅、100顿麻辣烫的钱,这样想想怎么莫名的有点心疼。。
主要是想要提高一下自己制作视频的质量,最主要的想要给视频加上字幕,但是做字幕的时候把我卡住了,导入fcpxml字幕文件与视频时间的对不上

接下来给大家演示一下制作字幕的步骤,并展示一下问题以及我的解决方法

首先只导出视频的语音mp3文件,注意导出的语音文件不要有背景音乐

再将这个文件导入到网易见外工作台这个网站里面,调整错误之后,我们就能得到一个srt字幕文件

然后用网站将srt文件转成fcpxml文件,导入到fcp里面,一直到这一步都很顺利

但是后面,我将字幕粘贴到项目中的时候,发现这些字幕都没有对齐,每条字幕都好像长了一点

并且切换字幕的时候,有重叠

并且是那种一开始能对的上,越往后时间误差越大的那种,要是都对不上,我还可以统一拖动字幕,现在这样需要我一个一个去对时间,太麻烦了

但是,我们程序员不是吃素的,这种批量处理的问题可以用代码解决的~~

于是我打开了fcpxml字幕文件,分析了一下他的源码,果然让我找到了解决的方法!

具体分析过程我就不说了,我是花了一天半的时间分析出来的。。直接跟大家说说时间对不上的原因吧

就是我们导出的字幕里面,结尾和开头都是一样的时间,这样在视频中,在同一个时间上面,就会有两个字幕帧

这样每条字幕的长度都长出了一帧,然后导致后面的误差越来越大

我们需要将每个字母的时间都缩短一帧的长度,这样字幕就正确了,就是将fcpxml文件中的duration字段后面的数字减掉100,比如

//原先duration="2700/3000s"
//修改后duration="2600/3000s"

你不是程序员的话,可以直接粘贴我的代码,不需要安装其他软件,直接跟着我一步步操作就可以

我们先将这个fcpxml字幕文件复制一下,重命名为new文件,并将原始的字幕文件重命名为old

在来拿到old这个文件的路径,右键点击这个文件,点击显示简介,这个位置就是路径,我们复制一下

来到应用程序里面打开终端,粘贴路径,粘贴下来可能与显示的不太一样,变成英文的格式,就是像是这样,这里的用户就会变成User

接下来我们用Ruby语言来解决,苹果电脑上面都会自动安装ruby环境的,如果你不确定是否有这个环境,可以输入ruby -v检查一下,-v前面有个空格,如果出现了版本号,就说明有ruby环境,可以跟着我进行下面的操作了

~$ ruby -v
ruby 2.2.1p85 (2015-02-26 revision 49769) [x86_64-darwin14]

如果没有的话,可以找身边的程序员朋友,给他我接下来粘贴的代码,帮你转换一下哦~~

当然别忘了给人家发一个红包,毕竟程序员都是很忙滴~~~

我们在终端输入irb,前面会变成序号加一个向右的箭头,现在就进入了代码编辑的状态

~$ irb
2.2.1 :001 >

接下来我们来定义一个路径,这个路径替换成你刚刚复制的old.fcpxml文件的路径

~$ path = "/Users/xuzhaoning/Downloads"

接下来复制下面的代码

#第一次复制的代码
text = File.read("#{path}/old.fcpxml")
f = File.open("#{path}/old.fcpxml", "r")
f.each_line do |line|m_duration = line.match(/duration.{2}(\d*)\/3000s.{1}/)if m_duration && m_duration[1]m_duration_num = m_duration[1].to_iif m_duration_num > 100m_duration_num = m_duration_num - 100endm_duration_true = m_duration[0].gsub(m_duration[1],m_duration_num.to_s)puts "===m_duration=========#{m_duration[0]}======"puts "===m_duration_true=========#{m_duration_true}======"text = text.gsub(m_duration[0],m_duration_true)end
end

会打印出一些信息,m_duration_true后面的数字总是比上一行m_duration后面的数字小100,就说明代码运行成功了

接下来我们再复制下面的代码,将改正之后的字幕导入到new.fcpxml文件中

#第二次复制
path2 = "#{path}/new.fcpxml"
file = File.open(path2,"w")
file.write(text)
file.close

运行完成后,我们再将这个new.fcpxml文件导入到fcp中,现在字幕就与视频的时间是一致的了。

如果字幕比较少的话,也可以在fcpxml文件中手动修改duration这个数值,要注意的是,这个值只能是100的倍数,不能是50 55这样的数字

我们字幕的问题这样就解决啦,所以大家好好学着写代码吧,不仅能用来写项目,也能解决很多日常的问题,加油~~


http://www.ppmy.cn/news/670316.html

相关文章

视频剪辑,在多个视频同时调整亮度,添加滚动字幕

在处理视频时,视频画面的亮度及滚动字幕可同时添加剪辑吗?要如何操作呢?视频剪辑高手可以支持吗?下面用视频剪辑高手来操作试试。一起看操作步骤。 首先进入视频剪辑高手,选择“批量剪辑视频”的功能 先在原视频的地…

视频后期剪辑,怎样在视频画面上添加滚动字幕

最近有很多朋友在问,在视频画面上添加一行滚动字幕,这样的效果,可以实现吗?小编的回答当然是可以的,下面一起随小编来学习一下。 需要哪些工具? 视频素材 怎么快速剪辑? 首先,在浏…

定积分求平面区域的面积习题

前置知识:定积分求平面区域的面积 习题 设平面区域由曲线 y x 2 − 1 yx^2-1 yx2−1和 y − x 2 1 y-x^21 y−x21围成,求 D D D的面积 S S S 解: \qquad 两曲线的交点为点 ( − 1 , 0 ) (-1,0) (−1,0)和点 ( 1 , 0 ) (1,0) (1,0)&…

视频剪辑srt字幕的添加步骤,三分钟学会这个方法

有字幕的视频看起来就会更舒服一些,所以现在很多小伙伴在剪辑视频的时候在视频画面中添加上字幕,那今天小编要来给大家分享一个可以快速批量给大量视频添加srt字幕的方法,感兴趣的小伙伴们快进来看看吧! 第一步,运行“…

视频剪辑语音转文字添加字幕

适用场景 ​ 这里介绍的是如何利用软件直接识别视频中的语音,转换成文字后生成srt字幕文件(前提是比较标准的普通话),避免了逐帧手动添加字幕的繁琐,很大程度上提升视频剪辑制作的效率 日常vlog剪辑 短片制作 其他所…

剪辑视频,在视频某时间段添加srt字幕

在视频播放时,视频的某一段时间会出现一些字幕,想必大家看到过不少这样的视频吧,那一小段时间的字幕是如何添加上去的呢,下面就来分享一个操作方法,希望可以帮到你。 需要准备的工具: 安装一个媒体梦工厂 …

如何使用SRT字幕,导入字幕到视频中

想要做好视频,学会添加字幕是一项必不可少的工作,一个视频有字幕,用户观看时会有不一样的效果。那么如何快速给视频添加SRT字幕呢?什么是SRT字幕呢?就是在不同的播放时间里显示不同的字幕,下面一起来试试这…

[每日一氵] [软件] premiere 视频片段如何在时间线上微调

看了下 baidu鸡到 前俩答案: https://zhidao.baidu.com/question/2053425681679823427.html 显然答非所问,但我试出来了,alt 左箭头← 或者 右箭头→ 就可以将视频或者音频,微调向前或者向后 氵这个博客之前,我又检…