最近有人提到如何调整不同FPS时间轴,比如23.976FPS调整为25FPS
其他软件貌似都有这个功能,而popsub没有
于是考虑popsub的伸缩时间轴功能能不能做到。
比如这个是23.976FPS的时间轴:
00:00:00,000 --> 00:00:05,000
00:00:05,000 --> 00:00:10,000
00:00:10,000 --> 00:00:15,000
00:00:15,000 --> 00:00:20,000
00:00:20,000 --> 00:00:25,000
00:00:25,000 --> 00:00:30,000
00:00:30,000 --> 00:00:35,000
00:00:35,000 --> 00:00:40,000
00:00:40,000 --> 00:00:45,000
00:00:45,000 --> 00:00:50,000
用某软件转为25FPS后结果如下:
00:00:00,000 --> 00:00:04,795
00:00:04,795 --> 00:00:09,590
00:00:09,590 --> 00:00:14,386
00:00:14,386 --> 00:00:19,181
00:00:19,181 --> 00:00:23,976
00:00:23,976 --> 00:00:28,771
00:00:28,771 --> 00:00:33,566
00:00:33,566 --> 00:00:38,362
00:00:38,362 --> 00:00:43,157
00:00:43,157 --> 00:00:47,952
比较以上两个时间轴的变化,00:00:50,000减00:00:47,952=2.048秒
也就是说50秒的时间轴共减少2.048秒,
从其他各个时间点的变化,可以算出,平均每秒是均匀地减少0.04096秒,
再看看popsub伸缩时间轴的计算公式:
T = T + T * (x / M) (T: 任意时间点 x: 输入的调整时间 M: 时间轴文件里的最大时间点)
其中,x/M的含义就是平均每秒调整的秒数,也就是说等于上面计算出来的0.04096秒。
现在由于x需要手动输入,所以需要自己算一算。
M是可以从时间轴文件里面知道的,比如上面的是50秒
那么,x=0.04096*M=0.04096*50=2.048秒。
所以,只需要在输入的调整时间里面输入-2.048,就能得出23.976FPS转换为25FPS的结果
(因为这里是减少时间,所以要用减号)
下面是popsub调整-2.05秒后的结果,可以看出和上面的结果几乎完全一致,
只有第三位小数精度的差别,这是因为popsub只保存到2位小数。
实际上第三位小数对时间轴也并不起很大作用,可以忽略。
0:00:00.00 0:00:04.79
0:00:04.79 0:00:09.59
0:00:09.59 0:00:14.38
0:00:14.38 0:00:19.18
0:00:19.18 0:00:23.97
0:00:23.97 0:00:28.77
0:00:28.77 0:00:33.56
0:00:33.56 0:00:38.36
0:00:38.36 0:00:43.15
0:00:43.15 0:00:47.95
假设一个全长1小时28分钟的时间轴需要调整的话,
1小时28分等于5280秒,所以需要减少5280*0.04096=216.2688秒,
伸缩时间轴的窗口中输入-216.2688秒即可。
假设片子全长是1小时28分,而时间轴最大长度只有1小时,
那么应该用3600秒*(-0.04096)=-147.456秒,而不是-216.2688秒
以上仅为理论推导,如有错误欢迎指正