Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Video 如何避免在使用ffmpeg将静止图像编码到mpeg-2视频中时产生伪影_Video_Encoding_Ffmpeg_Dvd_Mpeg 2 - Fatal编程技术网

Video 如何避免在使用ffmpeg将静止图像编码到mpeg-2视频中时产生伪影

Video 如何避免在使用ffmpeg将静止图像编码到mpeg-2视频中时产生伪影,video,encoding,ffmpeg,dvd,mpeg-2,Video,Encoding,Ffmpeg,Dvd,Mpeg 2,我正在使用如下命令行将静态图像编码为符合dvd的mpeg流: ffmpeg.exe-y-loop 1-t 00:00:30-r 1-i“image.jpg”-目标pal dvd-b:v 6000000 video.mpg 这将生成一个显示单个静止图像的30秒视频。 在观看视频时,我注意到奇怪的(和丑陋的)“泵送”工件,大约在每个GOP结束时。 使用流分析器工具,我注意到在一个序列IPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP

我正在使用如下命令行将静态图像编码为符合dvd的mpeg流:

ffmpeg.exe-y-loop 1-t 00:00:30-r 1-i“image.jpg”-目标pal dvd-b:v 6000000 video.mpg

这将生成一个显示单个静止图像的30秒视频。 在观看视频时,我注意到奇怪的(和丑陋的)“泵送”工件,大约在每个GOP结束时。 使用流分析器工具,我注意到在一个序列IPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP。。。不要像我期望的那样,因为编码器没有理由改变影响质量的编码参数

我还使用命令行对相同的图像进行了编码

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-g15 video.mpg

它或多或少地应用了上面-target pal dvd所暗示的相同参数。 结果与预期一致

注:非静止材料显示较少或无“泵送”。当将vbv缓冲区大小设置为更高的值(如3670016字节)时,它几乎消失,有效地将其加倍。 不幸的是,这不是一个选项,因为流应该是dvd兼容的,它强制执行vbv缓冲区大小,如上面的命令行所示


那么,如何避免这些视觉伪影并获得(真正)显示静态图像的流呢?

我能够重现您的问题,并通过指定量化器比例(设置为最大质量)来修复它,如下所示:

ffmpeg.exe-y-loop 1-t00:00:30-r1-i“image.jpg”-q:v2-target pal dvd-b:v6000000 video.mpg