由ffmpeg从mp4中提取的JPG的质量比从视频播放器(vlc)中的暂停帧差得多。我正在寻找ffmpeg cmd选项,以提高输出质量。
使用以下命令:
/home/tools/bin/ffmpeg -i Merkurtransit_20191111_crf20_8fps_crop.mp4 Merkurtransit_20191111_crf20_8fps_crop_%04d.jpg -hide_bannerffmpeg 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 (实际上最初是从16位的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.mp4crf 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发布于 2019-12-23 17:01:04
FFmpeg主要是一个视频转换器,而JPEG输出是一个MJPEG编码器生成单个图像的结果。未设置码率控制参数时,默认码率选择为200kbps。
要获得更高质量的输出,请使用
ffmpeg -i in.mp4 -q:v 1 -qmin 1 -qmax 1 out%d.jpg量化器被钳位到恰好1。
https://stackoverflow.com/questions/59452389
复制相似问题