使用ffmpeg将视频解码为帧时,图像质量很差

当使用ffmpeg库自带的ffmpeg.exe对对视频进行解帧或合并时,结果质量很差。导致这种原因的是在使用ffmpeg.exe指令进行解帧或合并时使用的是默认的视频码率:200kb/s。

如解帧指令:

复制代码
ffmpeg.exe -i 600×600pixels.avi -r 2 -f image2 img/%03d.jpg

其中:

-i:指明需要解帧的视频;

-r 或-framerate :代表帧率,表示每秒取出2张图;

特别需要注意:-r选项是属于图片的属性,因此在指令中需要放在图片命令之前,即放到"-f image2 img/%03d.jpg"之前;

-f image2:表示输出格式为图像格式,后面的3d表示图片编号3位数,%03d表示不够位数的补零;

解帧后的图:

可以看到有明显的信息丢失,图像质量变得很差(马赛克严重)。

再看视频的文件信息:

或者从解帧日志上可以看到:

解决办法:指定视频的帧率

指令:

复制代码
ffmpeg.exe -i 600×600pixels.avi -r 2 -b:v 3193k -f image2 600x600/%03d.jpg

其中

-b:v 3193k 表示指定视频帧率为3193kb/s

同样的需要特别注意:-b:v选项在指令中需要放在图片命令之前,即放到"-f image2 img/%03d.jpg"之前,否则不生效。

解帧日志上可以看到截帧的帧率变为了我们指定的帧率了:

结果:

解帧正确。

相关推荐
彷徨而立3 小时前
【win32】FFmpeg 硬件解码器
windows·ffmpeg
mit6.8245 小时前
[Sora] 视频自动编码器(VAE) | `encode_`&`decode`
音视频
Jeled6 小时前
Kotlin 实现社交 App 音视频模块:语音录制、播放、暂停与进度控制全流程封装
android·kotlin·android studio·音视频
努力犯错11 小时前
AI视频修复技术入门:从Sora水印谈起,我们如何“抹去”未来影像的瑕疵?
大数据·人工智能·语言模型·开源·音视频
dddddppppp12311 小时前
linux sdl图形编程之helloworld.
linux·运维·ffmpeg
1024小神16 小时前
xr-frame微信小程序xr-ar-tracker实现video视频竖屏或横屏播放
ar·音视频·xr
我血条子呢16 小时前
[HTML]播放wav格式音频
前端·html·音视频
zzfive16 小时前
Ovi-音视频生成模型
论文阅读·人工智能·深度学习·音视频
给大佬递杯卡布奇诺17 小时前
FFmpeg 基本API avio_read函数内部调用流程分析
c++·ffmpeg·音视频
深圳市青牛科技实业有限公司17 小时前
在电力系统、电子设备制造等领域,变压器测试感量,电桥内阻如何选择
嵌入式硬件·音视频·制造·立体声收录机·盒式录音机·电子烟