由FFMPEG转换的视频有不同的持续时间,为什么?

我使用FFMPEG转换视频 . 我的目标是将它们转换为具有AAC编码音频流和MPEG-4第10部分编码视频流的MP4容器格式(MPEG-4 Part 14) .

我使用以下行转换视频:

ffmpeg -y -i "{inputFile}" "{outputFile}"

转换后的视频看起来很好,但转换后的文件和输入文件中的流的持续时间并不总是匹配 .

我已经做了一些实验,但持续时间的差异无疑是存在的,然而,它并没有那么多 - 无论如何我正在测试小视频 . 这是我的结果:

| InputFile  | InputAudio | InputVideo | OutputAudio | OutputVideo  |
|------------|------------|------------|-------------|--------------|
| h.avi      | 3s 631ms   | 3s 567ms   | 3s 668ms    | 3s 567ms     |
| h.flv      | 3s 631ms   | 3s 558ms   | 3s 668ms    | 3s 567ms     |
| h.mov      | 3s 532ms   | 3s 533ms   | 3s 682ms    | 3s 534ms     |
| h.mp4      | 3s 605ms   | 3s 534ms   | 3s 682ms    | 3s 567ms     |
| h.mpg      | 3s 605ms   | 3s 533ms   | 3s 563ms    | 3s 534ms     |
| h.wmv      | 3s 620ms   | 3s 633ms   | 3s 659ms    | 3s 567ms     |

由于我会在FFMPEG的顶部构建一个软件,如果我至少能理解这种差异的原因,我会更高兴 . 是因为一些不必要的转码?

在这种情况下,我可以关闭此转码以防止FFMPEG重新采样我的输入视频文件吗?

如果我无法关闭它,我怎么能确定(除了测试)这个差异与视频的大小不成比例?

如果我转换为例如10小时的视频,则多秒或甚至分钟的差异不适合我 .

回答(0)