저는 플래시 빌더(액션 스크립트 3)에서 ffmpeg를 사용하여 비디오를 타임 랩스로 변환하고 있습니다. 이 작업을 수행하기 위해 setpts를 사용하는 방법을 연구했지만 결과 출력 파일의 길이는 입력과 길이가 같습니다(시간 경과 후 마지막 프레임만 표시됨). 전달된 설정에 따라 지속 시간을 변경하고 싶습니다. ffmpeg로.
먼저 명령줄을 통해 아래를 시도하고 있습니다.
ffmpeg -i input.mp4 -filter:v "setpts=0.5*PTS" output.mp4
어떤 도움이라도 대단히 감사하겠습니다!
답변1
문제 해결됨. 나는 오디오를 제거하지 않았기 때문에 아마도 비디오 전체 시간 동안 거의 비어 있는 오디오 파일을 재생하고 있었을 것입니다.
ffmpeg -i input.mp4 -filter:v "setpts=0.5*PTS" -an output.mp4
-an
비디오에서 오디오를 제거합니다.
답변2
오디오 속도 향상에 대한 자세한 내용은 여기를 참조하세요. 최대 2배까지 할 수 있지만 속도를 더 높이기 위해 속일 수도 있습니다(원천):
오디오 속도 높이기/느리기
속도를 높이거나 낮출 수 있습니다오디오atempo 오디오 필터를 사용하세요. 오디오 속도를 두 배로 높이려면:
ffmpeg -i input.mkv -filter:a "atempo=2.0" -vn output.mkv
atempo 필터는 0.5에서 2.0 사이의 값을 사용하도록 제한됩니다(따라서 원래 속도의 절반 이상으로 속도를 늦추고 입력의 두 배 이하로 속도를 높일 수 있습니다). 필요한 경우 여러 개의 atempo 필터를 함께 연결하여 이 제한을 해결할 수 있습니다. 다음은 오디오 속도를 4배로 높이는 것입니다:
ffmpeg -i input.mkv -filter:a "atempo=2.0,atempo=2.0" -vn output.mkv
복잡한 필터 그래프를 사용하면 비디오와 오디오의 속도를 동시에 높일 수 있습니다.
ffmpeg -i input.mkv -filter_complex "[0:v]setpts=0.5*PTS[v];[0:a]atempo=2.0[a]" -map "[v]" -map "[a]" output.mkv