gpt4 book ai didi

ffmpeg - 为什么将帧速率加倍会产生不一致的帧?

转载 作者:行者123 更新时间:2023-12-04 23:14:44 26 4
gpt4 key购买 nike

所以我有一个恒定的 59.94 fps (i.e. 60000/1001)视频,当我尝试提取一秒钟时:

ffmpeg -y -i input60fps.avi -ss 0 -t 1 -c:v huffyuv -an output60fps.avi
ffprobe -v error -show_entries format=duration -of default=noprint_wrappers=1:nokey=1 ./output60fps.avi

它返回 1.001 秒,我现在明白这是合适的,因为它是视频帧时间的倍数 (60000/1001 seconds)最接近请求的持续时间。

在之前从 29.97 fps 源转换的 59.94 fps 视频上重复此实验,我希望得到类似的结果,但我发现情况并非如此:
ffmpeg -i input30fps.avi -vcodec huffyuv -r 60000/1001 -an output60fps.avi
ffmpeg -i ./output60fps.avi -ss 0 -t 1 -c:v huffyuv -an test.avi
ffprobe -v error -show_entries format=duration -of default=noprint_wrappers=1:nokey=1 ./test.avi

这实际上导致 0.984317 秒。

为什么这种行为不同?我有什么方法可以控制总帧数如何均匀分布,以使每个边界每 60000/1001 毫秒发生一次?我的期望是,由于我只是将帧速率提高一倍,因此我应该期望每 1001/60000 秒有一帧。

最佳答案

AVI 是一个可变帧率复用器。除了-r ,您需要启用恒定帧速率,以便

ffmpeg -i input30fps.avi -vcodec huffyuv -r 60000/1001 -vsync cfr -an output60fps.avi

关于ffmpeg - 为什么将帧速率加倍会产生不一致的帧?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49962939/

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