Comments (10)
有没有可能像剪映一样,增加一个“定格”功能,即原始视频画面内容不动,如果需要延长视频时间和音频同步,就将一部分画面定格一段时间。这样就相当于从原始视频中抽了一些帧做了延时,再插入到原来的视频里,不涉及原始视频的大量计算,会不会更快一些?
有打算在视频的最后,复制最后一帧做视频延长到和音频一致,中间定格实际计算量还是很大的,所谓延时,本质就是将抽出的帧不断复制,直到达到所需时长,然后再插入原视频,而插入,实质上需要将原视频在插入点截断为2个视频片段,然后3个视频再拼接。定格点多了一样需要较大计算量,也很复杂。
而且定格这个功能,只界面都挺复杂了,对于这个没有商业计划的小项目来说,过于复杂了。
from pyvideotrans.
已实现视频自动降速。对应片段降低帧率实现。
默认情况下通过延长视频最后一帧画面实现
from pyvideotrans.
这个过于复杂, 暂时不考虑
实现原理是这样
- 记录每个需要降速播放的时间片段,可能有很多个,比如原本是2s的视频,降速2倍后,时长就会变为4s,将改变后的每个片段保存为视频
- 然后从原始视频里找出所有不在降速范围内的其他时间片段,分别截取保存
- 将上述2步获取的所有片段进行合并。
其中每一步都很复杂, 而且计算量非常大,会很慢。
from pyvideotrans.
是的,确实很复杂,这个是之前我自己在折腾的,直接用ffmpeg 切割以及慢放的时长都调整不精准,查了下说是要用OpenCV切割、调速, 然后就放弃了……
from pyvideotrans.
只ffmpeg应该也能实现
比如 音频片段是 5-10s区间的5s,配音后,音频变为了 12s时长。
那么就对原始视频 5-10s区间应用2.4倍降速播放,时长就是12s,ffmpeg可以取出这个降速后的片段视频 a
然后再对原始视频中 0-5s的片段b,和10s-结束的片段c截取出来。
最后 连接 b a c 这3个片段就行了
当然如果只有一二个片段还好说,不过一般都是几十个片段甚至更多,所以更复杂也更慢了
from pyvideotrans.
我之前就是按你说的这样来操作的,但是我测试了ffmpeg命令 取出片段的时候 不能精确到毫秒(有精确到毫秒的命令,但结果经常不是预期,不精准),调整速度(时长)的时候 偏差就更多了。
因为我对ffmpeg完全不熟悉,都是现用现查的命令,所以我特意到淘宝上找人写一个能精确控制到毫秒的命令,淘宝卖家跟我说实现不了。
也可能还是我对ffmpeg,不熟悉的原因吧,不知道你有没有测试过这些相关的命令。
from pyvideotrans.
不必那么精准吧,到秒或者 0. 几秒也就够了,本身就是降速延时处理的,再精确也没多大意义
只测试过 0.几秒即数百ms的,倒还算精确。
一个视频处理不只是一个片段,整体下来计算量非常庞大,即便GPU加速,也会非常慢的
from pyvideotrans.
如果要精确到ms,确实使用 cv2更方便,按帧读取,然后调整fps,重新输出视频片段,再拼接
from pyvideotrans.
嗯,我查的资料是说cv2可以更精确,至于是不是方便 我就不懂了,cv2完全不会用……
这个功能确实会复杂很多,希望现有功能都完善后,以后可以增加进来,因为在制作出海视频时(中文→其它语言) 确实很多情况会语速太快,我试过的 中文→印尼语 那就是快到完全没法听了。如果是搬运国外视频到国内,这种问题可能还会少一些。
如果以后有可能会增加这个功能的话,或许还可以在加一个参数,--voice_rate_max
,voice_rate 到 voice_rate_max 之间的音频,仅通过调整音频对齐时长;当大于voice_rate_max时,语音速度按照voice_rate_max,同时调整视频长度,音视频共同调节对齐时长。
from pyvideotrans.
有没有可能像剪映一样,增加一个“定格”功能,即原始视频画面内容不动,如果需要延长视频时间和音频同步,就将一部分画面定格一段时间。这样就相当于从原始视频中抽了一些帧做了延时,再插入到原来的视频里,不涉及原始视频的大量计算,会不会更快一些?
from pyvideotrans.
Related Issues (20)
- 文字转语音误读问题 HOT 1
- 从视频中提取声音失败,请检查视频中是否含有音轨,或该视频是否存在编码问题 HOT 1
- ffmpeg returned error code 3199971767 HOT 3
- 标准功能模式使用AzureTTS失败 HOT 2
- 1.54 版本取消下载YouTube功能了吗? HOT 1
- 为什么调用go sovit HOT 2
- 1.54版本音视频转文字完成后程序闪退,未保存识别字幕文件 HOT 1
- 1.55 issue updated from 1.50 / Unhandled exception in script HOT 1
- 关闭问题
- 1.55 批量工作时无法完成 所有工作 HOT 8
- Source lang HOT 4
- Silence between two Srt HOT 1
- 新版本的人声分离功能没有了吗? HOT 10
- 请求大佬支持 claude 3和 deepseek 翻译接口 HOT 1
- 1.57 win 10 Antivirus 病毒报错, windows系统自动删除sp.exe档案. HOT 1
- 1.57 FreeChatGpt进行翻译字幕报错无法使用 HOT 1
- 1.57 音频转字幕时已安装的模型认别不到 HOT 3
- 1.57 下载油管视频时异常
- 无法使用Microsoft、Google和chatGPT翻译 HOT 3
- win10使用闪退 HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from pyvideotrans.