gpt4 book ai didi

video - ffmpeg start_time 为负数

转载 作者:行者123 更新时间:2023-12-04 22:51:24 25 4
gpt4 key购买 nike

我正在使用 ffmpeg 按开始/结束时间分割视频。例如,我有一组时间 [[0,2],[2,4],[4,6]],我会在这里调用 ffmpeg 3 次以在时间 0、2 创建三个 2 秒的视频, 和 4。

我的问题是这些时间(这是正确的)没有正确分割视频。当我使用 ffprobe -i test.mov -show_format 检查视频的统计数据时,我注意到 start_time=-0.381044 .我也知道这似乎是由在 QuickTime 中修剪视频以制作此视频引起的。为了纠正这个问题,我必须在我的代码中的某处添加 (start + 0.381044) ,并且输出很好。

那么,为什么 start_time 会被 quicktime trimming 设置为负值呢?如何设置 start_time=0,这样我的代码可以在没有 + 0.381044 的情况下工作?

最佳答案

视频流通常是帧间编码的,即大多数帧依赖于其他帧进行解码。因此,当这样的流被修剪时,没有转码,那些引用帧,即使不在修剪的时间范围内,也必须包含在输出中,以便视频可以播放。现在,修剪 s/w 可以通过两种方式处理这些引用帧的时间戳: 为它们分配负 PTS,以便它们可用于解码,但不显示。或者从零(或任何正值)开始所有时间戳,以便它们也显示出来。在这种情况下,视频修剪不精确并且包含额外的帧。

如果主视频是用 FFmpeg 修剪的,你可以通过添加 -avoid_negative_ts make_zero 来强制执行第二种行为。到修剪命令。但不知道如何使用 QT 进行设置。

关于video - ffmpeg start_time 为负数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41032079/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com