fps 120 짜리 영상을 취득해야 하는데 가능한 카메라가 없어서 핸드폰 슬로우모션 기능으로 찍은 다음에
해당 영상의 재생속도를 늘리는 방법을 사용하려고 합니다.
근데 다른 설정 없이 재생 속도만 4배로 하여 인코딩을 진행하면 원본 파일보다 프레임수가 적어지는데
프레임 수는 유지하면서 재생 속도만 늘릴 수 있는 방법은 없나요?
대충 정리하면
핸드폰 원본 영상 - 5초 120fps
핸드폰 수정 영상(인코딩 대상) - 22초 28fps 616 frames
인코딩 결과 영상 - 5초 30fps 169 frames
삼성 슬로우모션 기능을 쓰면 어쩔 수 없이 수정을 해야 해당 프레임으로 볼 수 있어서 수정이 들어갑니다.
프레임을 120으로 변경도 해봤는데 최대 프레임은 30으로 되서 결과적으로 30 프레임짜리 영상이 됩니다.
제가 생각하는 변환 과정에 문제가 있는 걸까요?
아니면 방법을 모르는 걸까요?
도움 부탁드립니다.
비디오 쪽은 setpts, 오디오 쪽은 atempo 필터를 써서 재인코딩해야 합니다. (FFmpeg 쪽 매뉴얼 참고)
1. 비디오/오디오를 동시에 처리하려면 -filter_complex 옵션을 사용해야 합니다.
이 경우 스트림 매핑이 필요하기 때문에 샤나인코더에서 작업하기엔 문제가 있습니다.
따라서 빌드된 FFmpeg 바이너리를 다운로드(4.2.1 static 버전)하셔서 윈도우 도스창에서 실행할 수 있게 설정하신 후 도스창에서 아래와 같은 명령어로 진행하시면 되는데, 핸드폰 수정 영상 프레임 레이트가 28이라 이것 때문에 오디오 쪽 문제가 복잡해집니다.
만약 프레임 레이트가 30이라면 4배로 딱 떨어져서 아래와 같이 FFmpeg로 진행하시면 됩니다.
ffmpeg -i INPUT -r 120 -filter_complex "[0:v]setpts=0.25*PTS[v];[0:a]atempo=2.0,atempo=2.0[a]" -map "[v]" -map "[a]" -c:v libx264 -preset medium -crf 22 -c:a aac -ac 2 -b:a 128k -y OUTPUT
INPUT과 OUTPUT은 해당 파일 이름을 이용해 적절하게 치환하시고 인코딩 설정 부분도 적절하게 변경합니다.
2. 오디오는 없이 비디오만 처리하려면 샤나인코더에서도 작업 가능합니다.
샤나인코더 빠른 설정에서 프레임 레이트를 120으로 지정하고
F7을 눌러 비디오 필터에서 setpts를 추가한 후 옵션 설정을 아래와 같이 해서 인코딩하시면 됩니다.