【发布时间】:2015-01-04 07:32:30
【问题描述】:
我正在使用这样的命令行将静止图像编码为兼容 dvd 的 mpeg 流:
ffmpeg.exe -y -loop 1 -t 00:00:30 -r 1 -i "image.jpg" -target pal-dvd -b:v 6000000 video.mpg
这会生成一个 30 秒的视频,显示单个静止图像。 观看视频时,我注意到大约在每个 GOP 结束时出现的奇怪(且丑陋)的“泵送”伪影。 使用流分析器工具,我注意到 IPPPPPPPPPPPPPIPPPPPPPPPPPPPPP 序列中的两个连续 I 帧...看起来与我预期的不一样,因为编码器应该没有理由更改影响质量的编码参数。
我还使用命令行对相同的图像进行了编码
ffmpeg.exe -y -loop 1 -t 00:00:30 -r 1 -i "image.jpg" -f dvd -pix_fmt yuv420p -r 25 -s 720x576 -aspect 16:9 -vcodec mpeg2video -b:v 6000000 -maxrate 9000000 -bufsize 1835008 -muxrate 10080000 -minrate 0 -packetsize 2048 -g 15 video.mpg
它或多或少地应用了上面 -target pal-dvd 所隐含的相同参数。 结果和预期的一样。
注意:非静止材料显示较少或没有“泵送”。当将 vbv 缓冲区大小设置为更高的值(如 3670016 字节)时,它也几乎消失,有效地加倍。 不幸的是,这不是选项,因为流应该是 dvd 兼容的,它强制执行 vbv 缓冲区大小,就像上面的命令行一样。
那么我怎样才能避免这些视觉伪影并获得(真正)显示静止图像的流?
【问题讨论】:
标签: video encoding ffmpeg dvd mpeg-2