다시 인코딩하지 않고 FFmpeg에서 비디오의 특정 부분을 삭제하는 방법은 무엇입니까?

다시 인코딩하지 않고 FFmpeg에서 비디오의 특정 부분을 삭제하는 방법은 무엇입니까?

찾을 수 있었어요이 스레드파일에서 특정 부분을 잘라낼 때. 비디오의 선택된 부분을 제거하는 정반대의 작업을 수행하려고 하기 때문에 별로 유용하지 않습니다.

이 사용자의다시 인코딩하지 않고 부분을 추출하는 솔루션은 꽤 잘 작동합니다. 대신 선택 부분을 제거하는 것과 유사한 작업을 수행할 수 있습니까?

나는 다시 인코딩하지 않는 것을 선호하지만 어느 쪽이든 괜찮으므로 어떤 솔루션이든 가능합니다.

답변1

코덱으로 "복사" 옵션 -c:v copy -c:a copy를 사용하여 원하는 부분을 추출합니다.

6분 길이의 비디오가 있고 2~3분 및 4~5분 부분을 원하지 않는다고 가정해 보겠습니다.

ffmpeg -ss 00:00:00 -to 00:02:00 -i input.mp4 -c:v copy -c:a copy input_part1.mp4
ffmpeg -ss 00:03:00 -to 00:04:00 -i input.mp4 -c:v copy -c:a copy input_part2.mp4
ffmpeg -ss 00:05:00 -to 00:06:00 -i input.mp4 -c:v copy -c:a copy input_part3.mp4

추출한 파일에 대한 텍스트 파일(filelist.txt)을 만듭니다.

file 'input_part1.mp4'
file 'input_part2.mp4'
file 'input_part3.mp4'

그런 다음 이와 같이 결합하십시오.

ffmpeg -safe 0 -f concat -i filelist.txt -c 출력.mp4 복사

output.mp4에는 원하지 않는 부분이 없어야 합니다.

관련 정보