ffmpeg - 如何提高由静态 PNG 图像制作的视频的质量?

标签 ffmpeg

我正在尝试从几百张 PNG 图像创建视频。 PNG图像对我来说看起来不错,例如这是 MacOS X Preview 中的两个:

two images

它们大约是 1200 像素正方形,16 位 RGB,没有透明度。

但是我尝试将其中的几百个制作成视频时遇到了以下问题 - 几乎每一帧都有这种黄色损坏(伪影?),你在劣质视频上看到的那种 block 状闪烁的东西:

video still

我正在使用的 ffmpeg 命令是这样的:

ffmpeg -f image2 -i /tmp/image-%07d.png -vcodec mpeg4 -vb 20M -r 20 poincare.mov

我尝试更改了一些参数,但我可能更改了错误的参数。知道我应该改变哪些参数,改变什么值吗?

控制台输出为:
 ffmpeg -f image2 -i /tmp/image-%07d.png -vcodec mpeg4 -vb 30M -r 30 poincare.mov
    FFmpeg version UNKNOWN, Copyright (c) 2000-2010 the FFmpeg developers
    built on Nov  9 2010 12:20:29 with gcc 4.2.1 (Apple Inc. build 5664)
    configuration: --prefix=/Users/worth/OtherApps/ffmpeg/ffmpeg/../local/x86_64 --enable-static --enable-shared --enable-gpl --enable-version3 --enable-libmp3lame --enable-pthreads --enable-libvorbis --enable-libx264 --enable-libxvid --enable-libspeex --enable-libopencore_amrwb --enable-libopencore_amrnb --enable-libvpx --enable-memalign-hack --disable-debug --disable-stripping --arch=x86_64
  libavutil     50.33. 0 / 50.33. 0
  libavcore      0.12. 0 /  0.12. 0
  libavcodec    52.94. 3 / 52.94. 3
  libavformat   52.84. 0 / 52.84. 0
  libavdevice   52. 2. 2 / 52. 2. 2
  libavfilter    1.59. 0 /  1.59. 0
  libswscale     0.12. 0 /  0.12. 0
    Input #0, image2, from '/tmp/image-%07d.png':
  Duration: 00:08:55.44, start: 0.000000, bitrate: N/A
    Stream #0.0: Video: png, rgb48be, 1200x1198, 25 fps, 25 tbr, 25 tbn, 25 tbc
File 'poincare.mov' already exists. Overwrite ? [y/N] y
[buffer @ 0x101301ae0] w:1200 h:1198 pixfmt:rgb48be
[ffsink @ 0x101301d50] auto-inserting filter 'auto-inserted scaler 0' between the filter 'src' and the filter 'out'
[scale @ 0x101302090] w:1200 h:1198 fmt:rgb48be -> w:1200 h:1198 fmt:yuv420p flags:0xa0000004
Output #0, mov, to 'poincare.mov':
  Metadata:
    encoder         : Lavf52.84.0
    Stream #0.0: Video: mpeg4, yuv420p, 1200x1198, q=2-31, 30000 kb/s, 30 tbn, 30 tbc
Stream mapping:
  Stream #0.0 -> #0.0
Press [q] to stop encoding
frame=13386 fps= 27 q=2.0 Lsize=  536132kB time=535.43 bitrate=8202.7kbits/s    
video:535981kB audio:0kB global headers:0kB muxing overhead 0.028261%

最佳答案

mp4 FFmpeg 应该默认为 libx264

ffmpeg -f image2 -i /tmp/image-%07d.png poincare.mp4

关于ffmpeg - 如何提高由静态 PNG 图像制作的视频的质量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9144292/

相关文章:

android - 在 Android 中使用 ffprobe

ffmpeg - 使用 ffmpeg 将文件转换为 file.aac

video - FFmpeg:合并具有不同开始时间的视频文件

ffmpeg - 任何人都知道这个视频输出可能是什么问题?

visual-studio-2010 - 从托管 c++ 中免费调用 FFMPEG avframe

FFmpeg - avcodec_receive_frame 返回 AVERROR(EAGAIN)

android - FFmpeg:无法在 Android Q 上使用文件描述符进行搜索

ffmpeg - 在 Centos 7 中安装 ffmpeg

ffmpeg - 是否可以增加剪辑持续时间?

flutter - 将视频剪辑至 5 分钟