0

我有一个原始视频文件“inputVideoFile.mp4”

我使用 ffmpeg 解码输入视频文件,处理每一帧,然后将这些帧编码为“outputVideoFile.mp4”。

我没有得到延迟的帧,这意味着输出视频文件的帧数应该少于输入视频文件的帧数。

但是,当我使用 ffprob 查看两个文件中有多少帧时,它显示它们的持续时间值是相同的:

$ffprobe 输入视频文件.mp4

持续时间:00:00:04.08,开始:0.000000,比特率:7835 kb/s

$ffprobe 输出视频文件.mp4

持续时间:00:00:04.08,开始:0.000000,比特率:21055 kb/s

为什么会这样?顺便说一句,00:00:04.08 之后的一秒是什么单位?在“.08”中,单位是 1/60 秒还是 1/100 秒?

谢谢!

4

2 回答 2

1

不,它不准确。这是基于平均比特率和文件大小的猜测。显然,文件大小总是准确的,但在某些情况下,平均比特率没有被正确记录。但是,我不知道这是文件格式的基本问题还是由创建视频文件的系统/程序引起的问题。例如,对于 Mythtv 录制,对于 NuppelVideo 格式的录制,FFMPEG 估计值会相差 2-3 倍,也就是说,它估计 1 小时的录制为 2 或 3 小时长。

于 2015-06-29T16:08:41.390 回答
0

我找到了答案:

av_guess_frame_rate(a_AVFormatContext, a_AVStream, NULL)

有用!

于 2013-09-26T20:42:01.913 回答