android - 如何在不使用 FFMPEG 重新编码的情况下在精确位置修剪视频文件
问题描述
我无法在不导致视频/音频不同步的情况下修剪视频文件。据我了解,-ss
在输入文件之前或之后使用 seek 参数会导致两种不同的行为。例如:
ffmpeg -ss 00:00:00.600 -i in.mp4 -c copy out.mp4
这会产生具有准确 A/V 同步的修剪,但会产生粗略的音频修剪(修剪发生在视频关键帧而不是精确的搜索值)
ffmpeg -i in.mp4 -ss 00:00:00.600 -c copy out.mp4
这会产生更准确的音频修剪,但会导致 A/V 不同步。修剪位置之后的帧取决于修剪位置之前的帧。这些帧被分配负时间戳并复制到输出文件,这导致视频在播放期间与音频不同步。
另一方面,
ffmpeg -i "in.mp4" -ss 00:00:00.600 -strict -2 out.mp4
这会产生更精确的修整和 A/V 同步。修剪任务需要很长时间才能运行并导致质量损失。
我的问题是:有没有办法在不重新编码视频的情况下获得准确的修剪?可能是在开始时丢弃导致 A/V 不同步的额外帧。就我而言,只要在精确位置修剪音频并保留 A/V 同步,我就可以在开始时忍受一些黑帧。是否可以使用 FFMPEG 来实现这一点?如果没有,Android 上的 MediaCodec 可以在修剪时处理这样的精度吗?
谢谢你的时间。
解决方案
推荐阅读
- java - 通过 React 中的 FilePond 组件提交到 servlet(后端)后,无法可视化 pdf 文件
- python - Python - 在json文件中转换列表
- python - 为了修复 +: int 和 tuple 的操作数类型错误,我与 jj 有什么关系?
- gensim - 为什么 Gensim Doc2vec 对象返回空文档标签?
- php - WordPress:过滤链接中某些字符串的内容并将元素更改为跨度
- flutter - 如何在颤振图表中添加标签?
- html - 使用 Twitter 引导程序将列居中不工作
- power-automate - 对图形的 Http 调用和异步模式似乎不起作用
- javascript - 如何从具有动态值的字符串中提取数组?
- r - geom_col 分配了错误的自变量