我的公司对用户发送的视频进行转码(通过我们自己的屏幕录制软件记录)
我使用FFMpeg使用此命令执行工作:
/ffmpeg/ffmpeg -i in.mov -vcodec libx264 -fpre /ffmpeg/ffpresets/libx264-slower.ffpreset -y out.flv
目的是准备视频以便在浏览器中查看。
问题是前10个左右的质量非常差。
预设设置:
coder=1
flags=+loop
cmp=+chroma
partitions=+parti8x8+parti4x4+partp8x8+partb8x8
me_method=umh
subq=8
me_range=16
g=250
keyint_min=25
sc_threshold=40
i_qfactor=0.71
b_strategy=2
qcomp=0.6
qmin=0
qmax=69
qdiff=4
bf=3
refs=5
directpred=3
trellis=1
flags2=+bpyramid+mixed_refs+wpred+dct8x8+fastpskip
wpredp=2
rc_lookahead=50
输入视频的例子
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '84f42bcb67ac616635ef6f99057bbbc46d418295.mov':
Metadata:
major_brand : qt
minor_version : 537199360
compatible_brands: qt
creation_time : 2012-03-07 13:45:16
Duration: 00:15:56.00, start: 0.000000, bitrate: 4108 kb/s
Stream #0.0(eng): Video: qtrle, rgb24, 1680x945, 3401 kb/s, 13.61 fps, 1k tbr, 1k tbn, 1k tbc
Metadata:
creation_time : 2012-03-07 13:45:16
Stream #0.1(eng): Audio: pcm_s16be, 44100 Hz, 1 channels, s16, 705 kb/s
Metadata:
creation_time : 2012-03-07 13:45:16
答案 0 :(得分:1)
看起来您使用的是较早版本的FFMPEG,尝试更新并使用lbx264(安慰剂=最高质量)内的预设而不是FFMPEG预设。
答案 1 :(得分:0)
您需要考虑几个问题:
从rgb24到yuv420p会引入质量损失。那没有 你可以做很多事情。
您的ffmpeg可能使用错误的默认设置。但是你没有提供控制台输出所以我只能猜测。较旧的ffmpeg使用了不理想的设置。最近的ffmpeg使用了理智的默认设置。由于您未声明速率控制方法,因此将使用默认设置(-b 200k
或-crf 23
,具体取决于您的ffmpeg版本)。
您似乎手动指向预设。 FFmpeg不能神奇地使用任何和所有随机预设。您必须使用ffmpeg版本附带的预设,但我不确定这是否适用于您,因为您没有提供输入ffmpeg命令后出现的完整的未切割控制台输出。