2014-11-07 13 views
0

를 사용하는 경우 아티팩트를 펌핑 방지하는 방법 :MPEG-2 비디오로 인코딩 스틸 이미지 나는이 같은 명령 줄을 사용하여 DVD 규격 MPEG 스트림에 정지 영상을 인코딩하고있어는 FFmpeg

ffmpeg.exe -y -loop 1 -t 00:00:30 -r 1 -i "image.jpg" -target pal-dvd -b:v 6000000 video.mpg

이를 하나의 정지 영상을 보여주는 30 초의 비디오를 생성합니다. 비디오를 볼 때 각 GOP의 끝 부분에 이상한 (그리고 추악한) "펌핑 (pumping)"인공물이 나타납니다. 스트림 분석기 도구를 사용하여 IPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP ...의 시퀀스에서 두 개의 연속 I 프레임이 품질에 영향을 미치는 인코딩 매개 변수를 변경해야 할 이유가 없으므로 기대했던 것과 동일하게 보이지 않습니다.

은 또한 상기 -target PAL-DVD에 적용되던 다소 동일한 파라미터를 적용하는 명령 행

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

를 이용하여 동일한 화상을 부호화. 결과가 예상과 같습니다.

참고 : 여전히 재료가 적 으면 "펌핑"이 적다. 또한 vbv 버퍼 크기를 3670016 바이트와 같이 더 높은 값으로 설정하면 효과가 두 배가됩니다. 불행히도 위의 명령 줄에서와 같이 vbv 버퍼 크기를 적용하는 스트림은 DVD 호환이어야하므로이 옵션이 없습니다.

이렇게 시각적 인 결함을 피하고 (실제로) 정지 이미지를 보여주는 스트림을 얻으려면 어떻게해야합니까?

답변

1

나는 당신의 문제를 재현 할 수 있었다과 같이 양자화 스케일 (최대 품질로 설정)을 지정하여 고정 : 0시 0분 30초 -t

ffmpeg.exe -y -loop 1 - r 1 -i "image.jpg"-q : v 2 -target pal-dvd -b : v 6000000 video.mpg