
m
매 분마다 2초짜리 비디오로 FFmpeg를 사용하여 비디오 클립을 만들고 싶습니다.
m = video_length / 5
예를 들어 10분 길이의 동영상이 있습니다. 비디오 클립의 총 길이는 10초(2초 x 5개 세그먼트)이며 다음 비디오 타임스탬프 범위로 구성됩니다.
00:00 - 00:02
02:00 - 02:02
04:00 - 04:02
06:00 - 06:02
08:00 - 08:02
이렇게 하면 비디오에서 일종의 예고편이 생성됩니다.
세그먼트를 사용하여 이를 달성할 수 있다는 것을 알고 있지만 전체 프로세스를 파악할 수는 없습니다.
답변1
선택 필터를 사용하면 한 번에 이 작업을 수행할 수 있습니다.
ffmpeg -i in.mp4
-vf select='lt(mod(t,120),2)',setpts=N/FRAME_RATE/TB
-af aselect='lt(mod(t,120),2)',asetpts=N/SR/TB
out.mp4
답변2
나는 당신이 하는 방법을 알고 있어요~할 것 같다사용. 하지만 조금 지저분합니다.
다음과 같은 명령을 사용하여 클립을 추출합니다.
ffmpeg -i -ss <time to start> -t <duration> <output clip filename>
당신이 하는 일은 이 형식으로 클립을 추출하는 것입니다. 여기서는 -ss
클립의 시작 부분이고 -t
클립의 지속 시간입니다. 추출한 후에는 다음과 같이 연결할 수 있습니다.
ffmpeg -i concat:"clip_file1|clip_file2|clip_file3" -c copy <your output file>
-bsf:a aac_adtstoasc
이러한 형태의 연결은 모든 비디오 형식에서 작동하지 않으며 MP4 파일과 같은 다른 인수를 입력해야 할 수도 있습니다 . 하지만 이렇게 하면 원하는 비디오를 얻을 수 있습니다.