Ale*_*ach 1 terminal video ffmpeg
我正在使用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设置为负值?如何设置start_time = 0,所以我的代码可以在没有+ 0.381044的情况下工作?
视频流通常是帧间编码的,即大多数帧都依赖于要解码的其他帧。因此,当修剪此类流而无需进行代码转换时,即使这些参考帧不在修剪的时间范围内,也必须包含在输出中,以便视频可以播放。现在,修整s / w可以通过两种方式处理这些参考帧的时间戳:为它们分配负的PTS,以便它们可用于解码,但不显示。或从零(或任何正值)开始所有时间戳,以便也显示它们。在这种情况下,视频修剪不精确,并包含额外的帧。
如果使用FFmpeg修剪了主视频,则可以通过添加-avoid_negative_ts make_zerotrim命令来强制第二种行为。但不知道如何使用QT进行设置。
| 归档时间: |
|
| 查看次数: |
3303 次 |
| 最近记录: |