-
-
Notifications
You must be signed in to change notification settings - Fork 670
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[功能请求] 增加video_autorate选项 #47
Comments
这个过于复杂, 暂时不考虑 实现原理是这样
其中每一步都很复杂, 而且计算量非常大,会很慢。 |
是的,确实很复杂,这个是之前我自己在折腾的,直接用ffmpeg 切割以及慢放的时长都调整不精准,查了下说是要用OpenCV切割、调速, 然后就放弃了…… |
只ffmpeg应该也能实现 比如 音频片段是 5-10s区间的5s,配音后,音频变为了 12s时长。 那么就对原始视频 5-10s区间应用2.4倍降速播放,时长就是12s,ffmpeg可以取出这个降速后的片段视频 a 然后再对原始视频中 0-5s的片段b,和10s-结束的片段c截取出来。 最后 连接 b a c 这3个片段就行了 当然如果只有一二个片段还好说,不过一般都是几十个片段甚至更多,所以更复杂也更慢了 |
我之前就是按你说的这样来操作的,但是我测试了ffmpeg命令 取出片段的时候 不能精确到毫秒(有精确到毫秒的命令,但结果经常不是预期,不精准),调整速度(时长)的时候 偏差就更多了。 也可能还是我对ffmpeg,不熟悉的原因吧,不知道你有没有测试过这些相关的命令。 |
不必那么精准吧,到秒或者 0. 几秒也就够了,本身就是降速延时处理的,再精确也没多大意义 只测试过 0.几秒即数百ms的,倒还算精确。 一个视频处理不只是一个片段,整体下来计算量非常庞大,即便GPU加速,也会非常慢的 |
如果要精确到ms,确实使用 cv2更方便,按帧读取,然后调整fps,重新输出视频片段,再拼接 |
嗯,我查的资料是说cv2可以更精确,至于是不是方便 我就不懂了,cv2完全不会用…… 如果以后有可能会增加这个功能的话,或许还可以在加一个参数, |
有没有可能像剪映一样,增加一个“定格”功能,即原始视频画面内容不动,如果需要延长视频时间和音频同步,就将一部分画面定格一段时间。这样就相当于从原始视频中抽了一些帧做了延时,再插入到原来的视频里,不涉及原始视频的大量计算,会不会更快一些? |
有打算在视频的最后,复制最后一帧做视频延长到和音频一致,中间定格实际计算量还是很大的,所谓延时,本质就是将抽出的帧不断复制,直到达到所需时长,然后再插入原视频,而插入,实质上需要将原视频在插入点截断为2个视频片段,然后3个视频再拼接。定格点多了一样需要较大计算量,也很复杂。 而且定格这个功能,只界面都挺复杂了,对于这个没有商业计划的小项目来说,过于复杂了。 |
已实现视频自动降速。对应片段降低帧率实现。 |
类似于:
--voice_autorate: 如果翻译后的音频时长超过原时长,是否强制加速播放翻译后的音频,以便对齐时长
有时候音频加速太快 以至于都完全无法听清,所以是否可以提供一个自动调整视频的选项,把对应时段内的视频慢放,以对齐时长
The text was updated successfully, but these errors were encountered: