如何防止视频开头的质量损失?

时间:2012-03-23 09:45:43

标签: 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
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

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

您需要考虑几个问题:

  • 从rgb24到yuv420p会引入质量损失。那没有 你可以做很多事情。

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

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