저는 비디오에서 특정 작은 부분을 잘라내는 애플리케이션을 구축하려고 합니다. 좀 더 정확하게 말하면 자막의 타임스탬프에 따라 사람이 말하는 내용을 잘라냅니다. 다음 명령으로 자르기
ffmpeg -ss 346 -i input.avi -t 5 -c copy -y output.mp4
매우 빠르고 정확하지만 MP4가 수행하는 "위장"으로 인해 메모리 효율성이 떨어지는지는 확실하지 않습니다. 또한 다음 명령을 사용하여 잘라내기를 시도했습니다.
ffmpeg -i input.avi -ss 346 -t 5 -c copy output.mp4
이 경우 ffmpeg는 키프레임이 아닌 부분을 잘라낼 수 있으므로 비디오가 처음에 제대로 재생되지 않는 경우가 많으며 이는 나에게 매우 중요합니다.
내 응용 프로그램이 한 번에 여러 비디오를 처리해야 하므로 이렇게 하면 너무 느릴 수 있기 때문에 디코딩 및 인코딩을 피하려고 했습니다. ffmpeg가 필요한 섹션의 시작 부분에 키프레임을 강제로 만든 다음 첫 번째 명령을 사용하도록 하는 것에 대해 이미 생각해 보았지만 그것이 빠를지는 잘 모르겠습니다. 제가 아는 한, 키프레임을 만드는 것은 쉬운 작업이 아닙니다. 그리고 제가 가장 중요하게 생각하는 것은 시간 효율성과 상대적 정확성입니다. 이제 이러한 옵션 중 어느 것이 내 경우에 가장 적합한지 알 수 없습니다. 도움을 주시면 감사하겠습니다.
답변1
도망가야 할 시간이 몇 분밖에 남지 않았기 때문에 빠르게 처리하겠습니다(필요한 경우 나중에 편집합니다).
나는 나의 "철학"이라는 접근 방식을 취할 것입니다. 주어진 문제에 대해 먼저 원하는 결과를 제공하는 솔루션을 찾으십시오. 가장 효율적이거나 깨끗한 솔루션은 아닐 수 있지만 원하는 결과를 제공한다면 정의상 좋은 솔루션입니다.
그리고 당신은 자신의 질문에 거의 대답했습니다. 당신의 말을 인용하자면:
나의 최우선 순위는 시간 효율성과 상대적 정확성입니다.
당신의 우선순위를 알게 되어 기쁘네요! 그렇다면 이러한 우선순위를 충족하기 위해 약간의 파일 크기를 기꺼이 교환하시겠습니까? 그렇다면 첫 번째 예를 살펴보십시오. 말씀하신 대로 매우 빠르고, 충분히 정확하며, 유일한 비용은 약간의 파일 크기뿐입니다.
이것이 도움이 되기를 바랍니다 :-) M