首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >python/视频删除帧,无需重新编码

python/视频删除帧,无需重新编码
EN

Stack Overflow用户
提问于 2017-02-18 10:30:31
回答 2查看 1.2K关注 0票数 0

我知道这可能是一个微不足道的问题,但到目前为止,我对我尝试过的各种解决方案都没有任何希望,我相信一定有一种方便的方法来实现这一点。

如何从视频文件中删除帧/毫秒而不进行切片、合并和重新编码?

我发现的所有解决方案都涉及到将不同的时间导出到不同的格式,我希望没有必要这样做。

对于ffmpeg/avconv,需要将临时流转换为.ts,然后连接,最后以原始格式重新编码。

Python MoviePy似乎完全满足了我的需要,但是:

  • cutout函数返回一个无法导出的文件,因为write_videofile函数尝试并无法获取删除的帧。
  • 如果我将原始文件分割成不同的片段,然后将它们与concatenate_videoclips合并,则导出不会失败,而是需要视频长度的两倍。由此产生的视频具有更快的帧速率,只有连接视频的提示点被及时放置,并且音频以正常速度播放。同样值得注意的是,尽管输出文件的持续时间缩短了5-7%,但它仍然比以前大了大约15%。

还有其他我不知道的图书馆可以查一下吗?

我试图想象的是一个抽象层,它提供了对最常见的视频格式的轻松访问,使我能够弹出不需要的帧并更新文件头,而无需深入研究每种格式的细节。

EN

回答 2

Stack Overflow用户

发布于 2017-12-16 18:21:24

为什么不使用

代码语言:javascript
复制
#import os
start = '00:00:08.345' # HH:MM:SS[.xxx] format
duration = '00:00:10'

os.system('ffmpeg -i path/to/input.mp4 -vcodec copy -acodec copy -ss ' + start + ' -t ' + end + ' path/to/file.mp4')`

这应该采取input.mp4和削减10秒,从8.345秒开始,没有重新编码的文件。您可能需要使用许多FFMPEG python包装器,但这是我能想到的最简单的方法。

票数 0
EN

Stack Overflow用户

发布于 2018-05-05 01:12:36

由于现代视频编码标准采用帧间预测,因此不存在无需重新编码而去除帧的通用解决方案。(删除参考图片会中断相互预测,因此只能删除非参考图片。)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42313951

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档