FFMPEG 범위 내에서 비디오를 임의의 지속 시간으로 분할

FFMPEG 범위 내에서 비디오를 임의의 지속 시간으로 분할

비디오를 여러 부분으로 나누고 싶지만 동일한 부분은 아닙니다.

각 클립의 길이는 15초에서 50초 사이가 되기를 바랍니다. 하지만 저는 각 클립의 길이를 무작위로 지정하고 싶습니다(15~50초 범위 내).

명령줄에서 ffmpeg를 사용하여 이 작업을 어떻게 수행합니까?

이것은 비디오를 동일한 부분으로 분할하는 데 사용한 명령입니다.

ffmpeg -i lutherceleb.mp4 -acodec copy -f segment -vcodec copy   -reset_timestamps 1 -map 0 OUTPUT%d.mp4

답변1

이것은 약간 해킹적이지만 임의의 스크립트 언어(예: Ruby)를 사용하여 분할 시간의 무작위 목록을 생성할 수 있습니다. 총 기간(여기서는 150)을 변경한 다음 해당 스크립트의 출력을 옵션에 할당하세요.-segment_times

$ times=$(ruby -e 's=[]; d=0; while d < 150 do t=rand(15..50); s << (d+t); d=d+t end; puts s.join(",")')
$ echo $times
15,53,96,124,168
$ ffmpeg -i lutherceleb.mp4 -f segment -segment_times $times -c copy -reset_timestamps 1 -map 0 OUTPUT%d.mp4

-acodec copy -vcodec copy로 단축할 수 있습니다 -c copy.

관련 정보