ffmpeg
U&L을 검색하는 동안 다음과 같은 명령줄 생성을 스크립팅하는 방법을 묻는 질문이 상당히 많이 발견되었습니다 .
ffmpeg -i video.mp4 -ss 00:00:00 -t 00:10:00 -c copy 01.mp4
ffmpeg -i video.mp4 -ss 00:10:00 -t 00:10:00 -c copy 02.mp4
ffmpeg -i video.mp4 -ss 00:20:00 -t 00:10:00 -c copy 03.mp4
이에 대한 솔루션을 조사하던 중 문제 추적기에서 다음과 같은 제목의 티켓을 우연히 발견했습니다 ffmpeg
.입력 비디오를 여러 출력 비디오 청크로 분할.
이 티켓은 다음과 같은 단일 명령줄을 사용하여 비디오를 더 작은 섹션으로 자르기 위한 시점 목록을 제공할 수 있는 패치를 강조합니다.
$ ffmpeg -i input.avi -f segment -segment_times 10,20,40,50,90,120,180 \
-vcodec copy output02%d.avi
패치는 이 코드 저장소 개정판에서 릴리스된 것으로 보입니다.
commit 2058b52cf8a4eea9bf046f72b98e89fe9b36d3e3
Author: Stefano Sabatini <[email protected]>
Date: Sat Jan 28 22:36:38 2012 +0100
lavf/segment: add -segment_times option
Address trac ticket #1504.
나는 이 정적으로 구축된 버전을 다운로드했습니다 ffmpeg
.ffmpeg.static.64bit.2013-10-05.tar.gz~로부터ffmpeg 사이트, 그러나 해당 스위치는 포함되지 않은 것 같습니다.
$ ./ffmpeg --help |& grep segment
$
이 새로운 스위치를 작동시킬 수 있는 사람이 있나요?
답변1
누락되었기 때문인가-map
옵션, 입력 스트림을 출력 파일의 소스로 지정합니다. 저는 ffmpeg 2.6.1을 사용하고 있으며 다음을 사용하여 비디오를 분할할 수 있습니다 -segment_times
.
ffmpeg -i foo.mp4 -segment_times 10,20,30,40 -c copy -map 0 -f segment %03d.mp4
보다 정교한 분할이 필요한 경우 OpenCV를 사용하여 원본 비디오를 읽고 원하는 프레임을 새 분할에 쓸 수 있습니다. 다음을 확인하세요:"OpenCV로 영상 만들기"그리고"여러 시작 및 끝 프레임 인덱스에 따라 비디오를 여러 청크로 분할합니다"