ffmpeg视频转jpg帧质量不佳

时间:2019-12-23 08:49:29

标签: ffmpeg

由ffmpeg从mp4提取的JPG的质量比从视频播放器(vlc)暂停的帧要差得多。我正在寻找ffmpeg cmd选项来提高输出质量。

使用以下cmd:

/home/tools/bin/ffmpeg -i Merkurtransit_20191111_crf20_8fps_crop.mp4 Merkurtransit_20191111_crf20_8fps_crop_%04d.jpg -hide_banner

ffmpeg cmd来自于此处的说明:     https://www.bugcodemaster.com/article/extract-images-frame-frame-video-file-using-ffmpeg

比较屏幕副本在这里:     http://skywatcher.space/download/vlc_player_vs_ffmpeg_bug.png

一些注意事项。我是使用ffmpeg从高分辨率png(实际上最初是从16bit的tiff)创建的mp4的:

/home/tools/bin/ffmpeg -framerate 8.0 -i ./AS_P10_RS6_png_reg/Merkurtransit_20191111_%03d.png -vf "crop=760:560:20:40" -pix_fmt yuv420p -crf 20 -r 24 -y ./Video/Merkurtransit_20191111_crf20_8fps_crop.mp4

crf 20的质量很高,接近100%,恢复的镜框应该接近原始画框。视频播放器的暂停帧显示足够的质量。 (尽管我不能说它是否在关键帧上)

ffmpeg版本信息:

home/tools/bin/ffmpeg -v
ffmpeg version N-80251-g0c7fa15 Copyright (c) 2000-2016 the FFmpeg developers
  built with gcc 4.8 (Ubuntu 4.8.4-2ubuntu1~14.04.3)
  configuration: --prefix=/home/tools/ffmpeg_build --pkg-config-flags=--static --extra-cflags=-I/home/tools/ffmpeg_build/include --extra-ldflags=-L/home/tools/ffmpeg_build/lib --bindir=/home/tools/bin --enable-gpl --enable-libass --enable-libfdk-aac --enable-libfreetype --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libx265 --enable-nonfree
  libavutil      55. 24.100 / 55. 24.100
  libavcodec     57. 45.100 / 57. 45.100
  libavformat    57. 37.101 / 57. 37.101
  libavdevice    57.  0.101 / 57.  0.101
  libavfilter     6. 46.101 /  6. 46.101
  libswscale      4.  1.100 /  4.  1.100
  libswresample   2.  0.101 /  2.  0.101
  libpostproc    54.  0.100 / 54.  0.100

1 个答案:

答案 0 :(得分:0)

FFmpeg主要是一个 video 转换器,而JPEG输出是MJPEG编码器生成单个图像的结果。如果未设置任何速率控制参数,则会选择默认的200 kbps比特率。

要获得更好的输出质量,请使用

ffmpeg -i in.mp4 -q:v 1 -qmin 1 -qmax 1 out%d.jpg

量化器精确地固定为1。