刚才,咱在听歌的时候意外发现这个视频(因为咱都是从视频网站上下载的音乐)只有6帧,突发奇想ffmpeg能编码出的最小每秒帧率是多少
查询后发现-r可以设置为小数或分数,以下是实际测试的详细内容
原视频信息:
格式/信息 : Advanced Video Codec
格式配置 (Profile) : High@L4
格式设置 : CABAC / 3 Ref Frames
格式设置, 参考帧 : 3 帧
编解码器 ID : avc1
时长 : 5 分 5 秒
码率 : 720 kb/s
宽度 : 1 920 像素
高度 : 1 080 像素
画面比例 : 16:9
帧率模式 : 恒定帧率 (CFR)
帧率 : 6.000 FPS
色彩空间 : YUV
色度抽样 : 4:2:0
位深 : 8 位
扫描类型 : 逐行扫描 (连续)
数据密度 [码率/(像素*帧率)] : 0.058
流大小 : 26.2 MiB (85%)
使用的各软件及版本:
ffmpeg version 2025-05-12-git-8ce32a7cbb-essentials_build-www.gyan.dev Copyright (c) 2000-2025 the FFmpeg developers
ffplay version 2025-05-12-git-8ce32a7cbb-essentials_build-www.gyan.dev Copyright (c) 2003-2025 the FFmpeg developers
mpc-be 1.7.1 git 2024-05-07 - 9981d61d5(使用EVR渲染器)
vlc 3.0.20 Vetinari videolan@runner-sgapdqg-project-435-concurrent-1 Oct 30 2023 08:54:33
ffmpeg及ffplay部分:
实际测试后发现-r最小可以设置到0.000006,0.000005开始会报错Application provided duration: 3276800000 in stream 0 is invalid
-r为0.9的视频ffplay使用-autoexit无法自动退出,但可以正常显示单帧图像且音频能正常播放完成(等待一分钟后cmd信息:305.06 A-V:-63.615 fd= 0 aq= 0KB vq= 0KB sq= 0B)
-r为0.000006同上,但未进行等待测试(预计结果同上)
mpc-be部分:
-r为0.9的视频可以打开,视频总时长显示为05:07,可以显示单帧内容,但不会播放音频且会直接闪退
-r为0.000006的视频可以打开,视频总时长显示为92:35:33,无法显示单帧内容,不会自动播放音频,进度条、已播放时长不会增加但不会闪退;拖动进度条后可以播放,总时长显示不变,已播放时长从拖动后的位置开始增加,播放到结尾不会自动重播;拖动到开头可以播放音频,正常播放音频后再拖动到超过原视频时长(5 分 5 秒)后会自动跳转到开头重新播放;可以使用方向键调整进度条不超过原视频时长,拖拽亦可(缩放至全屏后微调位置可以稍微拉到2分钟左右)
-r为0.6的视频可以打开,视频总时长显示为05:08,无法显示单帧内容,不会自动播放音频,进度条、已播放时长不会增加但不会闪退;拖动进度条至原视频时长后可以播放,总时长显示不变,已播放时长从拖动后的位置开始增加,播放到结尾不会自动重播;拖动到开头可以播放音频,有可能会加载出单帧内容,但加载出后会卡死闪退,基本无法进行自动重播
vlc部分:
-r为0.9的视频可以打开,视频总时长显示为05:06,可以显示单帧内容,音频正常播放,播放到05:04位置后自动重播
-r为0.000006的视频可以打开,视频总时长显示为92:35:33,无法显示单帧内容,音频正常播放,进度条拖动至大约46:16:06后可能会自动重播,但无法确定具体时长
-r为0.6大致同-r为0.9,视频总时长显示为05:08,拖动至05:04后会自动重播
总结:
鉴于-r小于1后播放器兼容性很差,故一个视频最低帧率预计为1帧每秒
虽然有-frames:v 1 -t xxx这种方法,但是实际-t需要设置的秒数也是非常奇怪,且一样兼容性很差,故不进行更多测试(除非你想做着玩)
也欢迎大家帮忙测试(当然咱想不到还会有谁这么无聊做这种事情了。。。
这篇文章还没有人发言,快抢第一!