ffmpeg를 사용하여 비디오를 X초 부분으로 분할

ffmpeg를 사용하여 비디오를 X초 부분으로 분할

1분 35초 길이의 동영상이 하나 있습니다. 여러 개의 30초 세그먼트로 분할할 수 있습니다. (저는 비디오를 분할하는 다른 방법을 잘 알고 있지만 특별한 이유로 이 방법을 선택했습니다.) 그러나 이렇게 하면 30초 길이의 동영상 3개와 5초 길이의 동영상 1개가 생성됩니다. 15초 미만의 뒤떨어진 비디오를 제거하고 세그먼트에 추가하는 가장 좋은 방법은 무엇입니까?

세그먼트로 분할

ffmpeg -i test.mp4 -codec:v copy -codec:a copy -segment_time 30 test-%03d.mp4

지속

ffprobe -i test.mp4 -show_format -v quiet | grep '.=.'

답변1

ffmpeg 자체로는 그렇게 할 수 없습니다. 최소 기간을 지정할 수 있는 방법이 없으므로 개별 세그먼트의 기간을 직접 파악해야 합니다.

이를 위해 아마도 비디오의 전체 길이를 두 번 반복할 것입니다. 첫 번째 실행에서 세그먼트의 길이를 결정합니다. 마지막 세그먼트가 15초보다 짧은 경우 두 번째 세그먼트의 길이를 마지막 세그먼트로 조정하기만 하면 됩니다. 이는 스크립팅 언어를 사용하여 쉽게 수행할 수 있습니다.

일단 그것을 가지고 나면, 당신은 그것을 말해야 합니다segment먹서개별 세그먼트 기간:

-segment_times 0,30,60,80

관련 정보