使用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"之前,否则不生效。

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

结果:

解帧正确。

相关推荐
mortimer1 天前
只需三步,动手搭建一个本地免费【实时语音转录】工具WhisperLiveKit
ffmpeg·github·openai
EasyCVR1 天前
视频融合平台EasyCVR:构建智慧化城市/乡镇污水处理厂综合安防与运营监管方案
音视频
菠萝加点糖1 天前
Android 使用MediaMuxer+MediaCodec编码MP4视频异步方案
android·音视频·编码
EasyCVR1 天前
视频汇聚平台EasyCVR:构建通信基站“可视、可管、可控”的智慧安防体系
服务器·数据库·音视频
顾道长生'2 天前
(Arxiv-2025)BINDWEAVE:通过跨模态整合实现主体一致性的视频生成
音视频
2301_764441332 天前
Streamlit搭建内网视频通话系统
python·https·音视频
xiaohai@Linux2 天前
STM32上使用HAL库完美实现驱动MAX98357声卡模块(I2S+DMA+音频环形缓冲区)
stm32·单片机·嵌入式硬件·音视频
EasyCVR2 天前
构筑码头数字防线:视频汇聚平台EasyCVR全方位码头海岸线监管方案
音视频
TG:@yunlaoda360 云老大2 天前
谷歌发布 Veo 3.1 视频生成模型:有声电影、长视频叙事与人物定制的实测与展望
人工智能·音视频·googlecloud
听雨~の(>^ω^<2 天前
OSTrack视频单目标跟踪
人工智能·目标跟踪·音视频