일부를 잘라내려고 합니다..avi명령을 사용하여 파일
ffmpeg -ss 346 -i input.avi -t 5 -c copy -y output.avi
출력 영상의 전체 길이는 약 13초로, 필요한 것보다 8초가 더 길어졌습니다. 그러나 출력 파일의 확장자가 다음과 같이 지정되면.mp4, 그러면 절단이 정확합니다. 왜 이런 일이 발생하는지 이해하고 싶습니다.
도움을 주시면 감사하겠습니다.
답변1
AVI 및 MP4는 데이터 스트림을 위한 컨테이너이며 MP4는 훨씬 더 많은 기능을 제공합니다.
MP4 컨테이너를 사용하면 내부적으로목록 편집.
예를 들어 소스 비디오에서 346초~351초(현재 수행 중인 작업)를 복사하려고 한다고 가정해 보겠습니다. 346초 이전의 가장 가까운 키프레임이 338초인 경우 ffmpeg는 실제로 338초에서 시작하는 비디오를 복사하지만 MP4의 편집 목록 매직을 사용하여 미디어 플레이어에게 처음 8초를 건너뛰도록 지시합니다.
같은 논리~할 것 같다컷의 끝 부분에도 적용됩니다(확실하지 않으며 테스트해야 함). 그렇다면 편집 목록은 미디어 플레이어에게 더 일찍 재생을 중지하도록 지시합니다.
AVI는 MP4처럼 편집 목록을 지원하지 않으므로 AVI 컨테이너를 사용하면 전체 13초 컷을 볼 수 있습니다.
이것이 의미가 있기를 바랍니다. 질문이 있는 경우 댓글을 남겨주시면 명확하게 설명하도록 노력하겠습니다.
편집하다ffmpeg가 수행하는 작업을 시각적으로 보여주기 위해 다이어그램을 만들었습니다.