我使用FFMPEG转换视频。我的目标是使用 AAC 编码的音频流和 MPEG-4 part 10 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小时的视频,则多秒或甚至分钟的差异不适合我。