Ffmpeg 如何在视频开始时防止质量损失?

Ffmpeg 如何在视频开始时防止质量损失?,ffmpeg,h.264,transcoding,Ffmpeg,H.264,Transcoding,我的公司转码用户发送的视频(通过我们自己的屏幕录制软件录制) 我使用FFMpeg使用以下命令执行工作: /ffmpeg/ffmpeg -i in.mov -vcodec libx264 -fpre /ffmpeg/ffpresets/libx264-slower.ffpreset -y out.flv 其目的是准备在浏览器中观看视频 问题是,前10秒左右的时间质量非常差。 这是什么原因造成的?我怎样才能修好它? 预设设置: coder=1 flags=+loop cmp=+chroma

我的公司转码用户发送的视频(通过我们自己的屏幕录制软件录制)

我使用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

您有几个问题需要考虑:

  • 从rgb24到yuv420p可能会导致质量损失。没有 对此你可以做很多

  • 您的ffmpeg可能使用了错误的默认设置。但是,您没有提供控制台输出,所以我只能猜测。较旧的ffmpeg使用了不理想的设置。最近的ffmpeg使用正常的默认设置。由于您没有声明速率控制方法,因此将使用默认设置(取决于您的ffmpeg版本,
    -b 200k
    -crf 23

  • 看起来您正在手动指向预设。FFmpeg不能神奇地使用任何和所有随机预设。您必须使用ffmpeg版本附带的预设,但我不确定这是否适用于您,因为您没有提供输入ffmpeg命令后显示的完整、未剪切的控制台输出


看起来您使用的是旧版本的FFMPEG,请尝试更新并使用lbx264(安慰剂=最高质量)中的预设,而不是FFMPEG预设