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

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

结果:

解帧正确。

相关推荐
Eric.Lee20211 小时前
moviepy将图片序列制作成视频并加载字幕 - python 实现
开发语言·python·音视频·moviepy·字幕视频合成·图像制作为视频
却道天凉_好个秋1 小时前
音视频学习(二十四):hls协议
音视频·hls
-Mr_X-3 小时前
windows下srs流媒体服务器使用ffmpeg推流
ffmpeg
dvlinker4 小时前
C++开源项目 VLC 源代码的交叉编译以及库的裁剪方法详解
ffmpeg·mingw-w64·msys2·cygwin·开源vlc·vlc编译·vlc裁剪
darkdragonking14 小时前
FLV视频封装格式详解
音视频
元争栈道15 小时前
webview和H5来实现的android短视频(短剧)音视频播放依赖控件
android·音视频
元争栈道17 小时前
webview+H5来实现的android短视频(短剧)音视频播放依赖控件资源
android·音视频
因我你好久不见19 小时前
springboot java ffmpeg 视频压缩、提取视频帧图片、获取视频分辨率
java·spring boot·ffmpeg
MediaTea21 小时前
Pr:音频仪表
音视频
桃园码工21 小时前
13_HTML5 Audio(音频) --[HTML5 API 学习之旅]
音视频·html5·audio