$ ffmpeg -i source-file.foo -ss 0 -t 600 first-10-min.m4v
$ ffmpeg -i source-file.foo -ss 600 -t 600 second-10-min.m4v
$ ffmpeg -i source-file.foo -ss 1200 -t 600 third-10-min.m4v
...
이것을 반복해서 스크립트로 묶는 것은 어렵지 않습니다.
ffprobe
호출 시작 출력 시간을 기준으로 반복 횟수를 계산하려고 하면 클립 시작시의 평균 비트 전송률과 클립의 파일 크기에서 추정 되는 -count_frames
인수를 지정 하지 않는 한 클립의 파일 크기 로 추정 되므로 작업 속도가 상당히 느려집니다. .
알아야 할 또 다른 사항-ss
은 명령 행 에서 옵션 의 위치가 중요하다는 것 입니다. 내가 지금 가지고있는 곳은 느리지 만 정확합니다. 이 답변의 첫 번째 버전은 빠르지 만 부정확 한 대안을 제시했습니다. 링크 된 기사는 또한 매우 빠르지 만 여전히 정확한 대안을 설명합니다.
그 외에도, 각 클립마다 정확히 10 분을 자르고 싶지는 않습니다. 그것은 문장의 한가운데서, 심지어 단어까지도 잘릴 것입니다. 비디오 편집기 나 플레이어를 사용하여 10 분 간격으로 자연스러운 컷 포인트를 찾아야한다고 생각합니다.
파일이 YouTube에서 직접 사용할 수있는 형식으로되어 있다고 가정하면 세그먼트를 얻기 위해 다시 인코딩 할 필요가 없습니다. "cut ffmpeg
"코덱을 사용하여 자연 컷 포인트 오프셋을 로 전달하여 인코딩되지 않은 A / V를 건드리지 않도록 지시합니다.
$ ffmpeg -i source.m4v -ss 0 -t 593.3 -c copy part1.m4v
$ ffmpeg -i source.m4v -ss 593.3 -t 551.64 -c copy part2.m4v
$ ffmpeg -i source.m4v -ss 1144.94 -t 581.25 -c copy part3.m4v
...
이 -c copy
인수는 모든 입력 스트림 (오디오, 비디오 및 잠재적으로 자막과 같은 다른 것)을 그대로 출력으로 복사하도록 지시합니다. 간단한 A / V 프로그램의 경우 더 자세한 플래그 -c:v copy -c:a copy
또는 이전 스타일 플래그와 같습니다 -vcodec copy -acodec copy
. 스트림 중 하나만 복사하고 다른 스트림은 다시 인코딩하려는 경우 더 자세한 스타일을 사용합니다. 예를 들어, 몇 년 전 H.264 비디오로 비디오를 압축하지만 오디오를 비 압축 PCM 으로 남겨 두는 QuickTime 파일의 일반적인 관행이있었습니다 . 이러한 파일을 오늘 살펴본 경우 파일을 현대화 -c:v copy -c:a aac
하여 오디오 스트림 만 다시 처리하여 비디오를 그대로 유지할 수 있습니다.
첫 번째 이후 이후의 모든 명령에 대한 시작 지점은 이전 명령의 시작 지점에 이전 명령의 지속 시간을 더한 것입니다.