FFmpeg 으로 동영상의 비디오 해상도를 변경하는 방법을 알아보자.
1. scale 필터
비디오 해상도를 변경할 때는 scale 필터를 쓴다.
ffmpeg -i input.mp4 -vf scale=w=640:h=480 output.mp4
w 옵션은 동영상의 가로 크기를 픽셀 단위로 지정한다.
h 옵션은 동영상의 세로 크기를 픽셀 단위로 지정한다.
2. 동영상 품질의 유지
해상도를 변경하면서 동영상의 품질을 최대한 유지하는 방법을 알아보자.
ffmpeg -i input.mp4 -vf scale=w=640:h=480 -preset slow -crf 18 output.mp4
-preset 옵션은 인코딩 속도를 지정할 때 쓴다. 속도가 느릴수록 동영상의 품질이 좋아진다.
-crf 옵션의 값은 0 ~ 51 범위 안에서 지정한다. 값이 작을수록 동영상의 품질이 좋아진다. 기본값은 23 이다. 17 또는 18 로 지정하면 무손실에 근접한 정도의 품질을 얻을 수 있다.
CRF 는 고정 비율 인자 (Constant Rate Factor) 를 의미한다.
3. 가로세로 비율의 유지
원래의 가로세로 비율 (aspect ratio) 을 유지하면서 비디오 해상도를 변경해 보자.
입력 파일인 input.mp4 의 비디오 해상도가 1920×1080 이라고 하자.
ffmpeg -i input.mp4 -vf scale=w=800:h=-1 output.mp4
가로 크기를 800 으로 지정하고 세로 크기는 -1 로 지정했다. 세로 크기는 원래의 가로세로 비율에 따라 자동으로 계산되어 다시 지정된다. 실제의 세로 크기는 450 이 된다.
ffmpeg -i input.mp4 -vf scale=w=-1:h=600 output.mp4
가로 크기를 -1 로 지정하고 세로 크기는 600 으로 지정했다. 가로 크기는 원래의 가로세로 비율에 따라 자동으로 계산되어 다시 지정된다. 실제의 가로 크기는 1067 이 된다.