[c++] 동영상 파일에서 슬로우 모션 효과 적용하기

동영상 파일에서 슬로우 모션 효과를 적용하는 방법에는 두 가지가 있습니다. 첫 번째 방법은 각 프레임의 재생 시간을 조절하는 것이며, 두 번째 방법은 프레임을 건너뛰어 일부 프레임만 처리하는 것입니다.

OpenCV를 사용한 슬로우 모션 효과 적용

#include <opencv2/opencv.hpp>

int main() {
    cv::VideoCapture video("input.mp4");
    cv::VideoWriter slowMotionVideo("output_slow_motion.mp4", 
                                    cv::VideoWriter::fourcc('m','p','4','v'), 
                                    video.get(cv::CAP_PROP_FPS) / 2, 
                                    cv::Size(video.get(cv::CAP_PROP_FRAME_WIDTH),
                                             video.get(cv::CAP_PROP_FRAME_HEIGHT)));

    cv::Mat frame;
    while (true) {
        video >> frame;
        if (frame.empty()) break;
        slowMotionVideo.write(frame);
        slowMotionVideo.write(frame);  // 같은 프레임을 두 번 쓸 경우 느린 속도로 재생됨
    }

    video.release();
    slowMotionVideo.release();
    return 0;
}

위 예시는 OpenCV 라이브러리를 사용하여 간단한 방법으로 동영상 파일에 슬로우 모션 효과를 적용하는 코드입니다.

FFmpeg를 사용한 슬로우 모션 효과 적용

또 다른 방법으로는 FFmpeg를 사용하는 것입니다. FFmpeg를 사용하면 명령줄에서 다음과 같이 간단하게 슬로우 모션 효과를 적용할 수 있습니다.

ffmpeg -i input.mp4 -vf "setpts=2.0*PTS" output_slow_motion.mp4

위 명령은 입력 동영상 파일에서 각 프레임의 재생 시간을 2배로 늘려서 출력 동영상 파일에 슬로우 모션 효과를 적용합니다.

언급된 방법 중에서 원하는 방법을 선택하여 동영상 파일에서 슬로우 모션 효과를 적용해 보시기 바랍니다.