이것은 두 개의 비디오 파일 간의 차이를 시스템이 얼마나 잘 표현할 수 있는지에 달려 있습니다. 두 개의 비디오 파일의 차이점은 비디오 파일의 저장 방법에 달려 있습니다.
대부분의 버전 제어 시스템은 이진 파일을 처리 할 수 있습니다. 그들은 그것들을 얼마나 잘 다룰 지에 따라 다릅니다. 아마 일부는 각 버전을 완전히 포기하고 저장할 것입니다.
아마도 압축 형식을 사용하고 있습니다 (즉, 모든 프레임의 모든 픽셀이 명시 적으로 저장되지는 않음). 비디오가 X
이고 비디오를 약간 변경하여 Y
을 생성하는 경우 X
과 Y
은 동일한 바이트 시퀀스를 길게 늘리거나 모든 것을 스크램블링하는 압축 구성표입니까? 전자의 경우, 괜찮은 이진 diff 알고리즘은 동일한 시퀀스를 찾아서 저장할 수 있어야합니다. 그렇지 않은 경우 비디오 형식의 내부를 특별히 인식하지 않는 한 이러한 알고리즘을 사용할 수 없습니다.
데이터를 매우 적극적으로 압축하지 않는 형식을 사용하면 실제로 더 나은 결과를 얻을 수 있으므로 비교 알고리즘이 작동 할 수있는 것이 남습니다. [EDIT : 이것은 내 부분에 대한 추측입니다. 나는 그것을 뒷받침 할 실제 데이터가 없다. 그러나 합리적인 추측처럼 보인다.]
나는 이것이 실제로 질문에 대답하지 않지만 아마도 당신이나 다른 누군가를위한 출발점을 제공 할 수 있다는 것을 알고있다.
잘 모르겠지만 공간 제한이 있습니까? 어쨌든, 당신은 파일의 관리 유형을 강제 할 수 있습니다 (바이너리를 텍스트로 관리하고 diff를 수행하십시오). 어쩌면 당신은 git에 넣는 것보다 다른 방법을 찾을 수 있습니다. 그것은 많은 것을 느리게 할 것이다 (왜냐하면 자식은 파일을 검사하기 위해 sha1 해시를 수행하기 때문이다 ...) – ykatchou
답장을 보내 주셔서 감사합니다. 바이너리를 텍스트로 관리하고 diff를 수행하는 방법을 알고 싶습니다. –
git gc를 실행하면 git가 diff 만 저장합니다. –