비디오를 여러 부분으로 나누고 싶지만 동일한 부분은 아닙니다.
각 클립의 길이는 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
.