나는 종종 reddit, instagram, gfycat 등에 업로드하기 위해 비디오 형식으로 변환해야 하는 .png 형식(최소 압축)의 모든 프레임을 준비하여 디지털 애니메이션을 만듭니다.
저는 다양한 압축 표준에 대해 잘 모르고 이러한 사이트에서는 어떤 형식을 허용하는지 잘 모릅니다. 하지만 일반적으로 나에게 적합한 방법을 찾아 이러한 사이트에서 허용하는 파일을 만들었습니다.
# step 1
mencoder mf://frame*.png -mf w=$WIDTH:h=$HEIGHT:fps=$FPS:type=png \
-ovc lavc -lavcopts vcodec=msmpeg4v2:vbitrate=16000:keyint=15:mbd=2:trell \
-oac copy -o step1.avi
# step 2
mencoder step1.avi -o step2.mp4 -of lavf -lavfopts format=mp4 -ovc x264 -sws 9 \
-x264encopts nocabac:level_idc=30:bframes=0:bitrate=2048:threads=auto:turbo=1:global_header:threads=auto:subq=5:frameref=6:partitions=all:trellis=1:chroma_me:me=umh
하지만 그것이 무엇을 하는지는 잘 모르기 때문에* 다음과 같은 작업을 수행할 수 없습니다.
지시로 삼아
압축 비율을 조정합니다.
사실 저는 일반적으로 덜 압축된 결과를 선호합니다.
PNG 프레임에서 어떤 경로로 이동할 수 있나요?웹 친화적인 비디오 파일(내 생각으로는H.264/MPEG-4 MP4) 이를 통해 압축을 조정할 수 있나요?
* 예: 샘플 프레임워크입니다.
(참고: 솔직히 말해서 VLC 도구를 통해 스냅샷을 찍을 때보다 VLC에서 볼 때 훨씬 더 나빠 보입니다. 이로 인해 문제를 이해하기 쉽고 결과를 비교하기가 어렵습니다.)
일지라도1 단계$WIDTH
원본 이미지 와 일치하도록 을 지정했는데 $HEIGHT
둘 다 분명히 변경되었으며 종횡비가 유지되지 않았습니다. 최종 이미지도 더 흐릿해졌는데, 이는 크기 조정으로 인한 결과일 수 있습니다.
편집하다:아래에서 mplayer 창의 실제 시스템 스크린샷을 참조하세요(VLC와 동일). 타일 그라우트가 PNG 소스 및 VLC "내부" 스크린샷 기능에 비해 매우 흐릿합니다.
세부 사항:
답변1
ffmpeg
의견에서 지적했듯이 간단한 "질량" 매개변수 또는 "일정 비율 인자"(읽기)를 ffmpeg
사용하여 좋은 1단계 솔루션이 제공됩니다.crf
이 게시물crf)를 설명하세요.
바라보다이 게시물ffmpeg를 사용하여 PNG에서 H.264로 변환하는 간단한 지침입니다.
간단히 말해서:
# Assuming the frames are called frame0000.png, frame0001.png ...
#
# set $FPS, $WIDTH, $HEIGHT, $FIRSTFRAME,
# $CRF (see above) to the desired value, then run:
ffmpeg -r $FPS -f image2 -s ${WIDTH}x$HEIGHT -start_number $FIRSTFRAME \
-i frame%04d.png -vcodec libx264 -crf $CRF -pix_fmt yuv420p output.mp4
$CRF
기본값은 23입니다. 23보다 작은 값은 더 나은 품질과 더 큰 파일을 제공하고 23보다 큰 값은 압축을 증가시킵니다.