it-swarm.dev

ffmpeg를 사용하여 고품질 비디오 인코딩

디렉토리에 이미지로 저장된 비디오 프레임 세트가 있으며이를 양질의 비디오로 인코딩하려고하지만 모든 설정과 형식에 따라 눈에 띄는 아티팩트가 생성됩니다.

기본 명령은 다음과 같습니다.

ffmpeg -r 25 -i %4d.png myvideo.mpg

그리고 minrate 및 maxrate 플래그를 시도했습니다. {mpg, avi, mov, flv} 형식이 가능합니다.

설정에 대한 제안 사항이 있습니까? 최종 파일 크기는 문제가되지 않습니다.

88
CakeMaster

몇 가지 :

  • 비디오 비트 전송률을 설정해야합니다. 최소 및 최대 속도를 사용한 적이 없으므로 정확히 어떻게 작동하는지 모르겠지만 -b 스위치를 사용하여 비트 전송률을 설정하면 고품질 비디오를 얻을 수 있습니다. 압축과 비디오 품질 사이의 좋은 균형을 제공하는 비트 전송률을 만들어야합니다. 비디오 콘텐츠의 프레임 크기, 프레임 속도 및 모션 양에 따라 달라지기 때문에이를 실험해야 할 수도 있습니다. DVD는 720x480에서 평균 4-5Mbit/s 정도 인 경향이 있으므로 보통 그곳에서 시작하여 어느 정도 필요한지 결정한 다음 실험 해보십시오. 예를 들어, 명령 줄에 -b 5000k를 추가하여 DVD 비디오 비트 전송률을 높이거나 낮출 수 있습니다.

  • 비디오 코덱을 지정해야합니다. 그렇지 않으면 ffmpeg는 기본적으로 MPEG-1로 설정되며 꽤 오래되어 압축 정도에 가까운 MPEG-4 또는 H.264)를 제공하지 않습니다. ffmpeg 버전이 빌드 ​​된 경우 libx264를 지원하는 경우 명령 줄의 일부로 -vcodec libx264를 지정할 수 있습니다. 그렇지 않으면 -vcodec mpeg4도 x264뿐만 아니라 MPEG-1보다 더 나은 작업을 수행합니다.

  • 가장 낮은 비트 전송률로 최상의 품질을 짜는 데 도움이되는 다른 고급 옵션이 많이 있습니다. 몇 가지 예를 보려면 here 을 살펴보십시오.

61
Jason B

비디오 비트 전송률을 높이려면 -vb 옵션을 지정해야합니다. 그렇지 않으면 더 작은 비디오를 생성하지만 더 많은 아티팩트가있는 기본값이 표시됩니다.

다음과 같이 해보십시오 :

ffmpeg -r 25 -i %4d.png -vb 20M myvideo.mpg

39
jeff7

비디오를 만들기 전에 PNG가 완전히 불투명한지 확인하십시오

예 : imagemagick를 사용하여 검정색 배경을 지정하십시오.

convert 0.png -background black -flatten +Matte 0_opaque.png

내 테스트에서 투명도가있는 ffmpeg PNG를 공급하면 비디오를보기에 충분한 비트 전송률 또는 코덱이 없습니다.

14
Oran Fry

사후 처리 작업을하지 않으면 비디오가 원래 프레임보다 나아지지 않습니다. 또한 플립 북처럼, 키 프레임 사이에 큰 "점프"가 있으면 재미있을 것입니다. 부드러운 애니메이션을 제공하려면 일반적으로 키 프레임 사이에 충분한 "트윈"이 필요합니다. HTH

0
JustBoo