파일을 빠르고 효율적으로 압축하는 방법은 무엇입니까?

파일을 빠르고 효율적으로 압축하는 방법은 무엇입니까?

인터넷 연결이 불안정한 사람과 공유할 수 있도록 압축하고 싶은 다양한 동영상이 포함된 폴더가 있습니다. 나는 노력했다7z, gzip, 타르, lzma, xz, 압축을 위한 더 많은 기능이 있지만 크기는 20-30mb만 줄일 수 있습니다. 영상을 압축하고 다시 인코딩 해서 사용해봤는데 ffmpeg정말 느립니다.

나는 또한.iso파일을 보냈으나 결과는 동일했습니다.

압축에 필요한 작업이 많다는 것은 알고 있지만, 파일 크기를 최소화하기 위한 간단한 접근 방식은 무엇입니까? Linux 명령줄 도구가 선호됩니다.

답변1

압축하려는 대상에 따라 다릅니다.

문제의 비디오 파일이 이미 압축된 형식인 경우 더 낮은 데이터 속도(비디오 해상도 감소 또는 오디오 kbps 속도 감소)로 다시 인코딩하는 것 외에는 더 이상 할 수 있는 일이 없습니다. 다시 한번 말씀드리지만 재인코딩이 너무 느리기 때문에 아마도 옵션이 아닐 수도 있습니다.

압축 알고리즘은 데이터의 반복 시퀀스에 크게 의존합니다. 일반적인 계획에는 반복 시퀀스를 단축하기 위해 사전을 구축하는 것이 포함됩니다.

예를 들어 "eabcdabcdabcd"라는 문자열을 생각해 보세요.

사전 규칙 "f = abcd"를 설정한 다음 문자열을 "efff"로 표현하여 압축할 수 있습니다.

이제 문자열 "abcdefghijkl"을 고려해보세요.

반복되는 시퀀스가 ​​없으므로 사전적 접근 방식으로 압축하는 것은 불가능합니다.

압축 파일 형식에는 이미 많은 반복이 제거되었습니다. 그러므로 그것들을 더 압축해도 더 이상의 이점을 얻지 못할 것입니다. 어떤 경우에는 압축 파일을 압축하면 크기가 커질 수 있습니다(ZIP 형식에서 잘 알려진 현상).

답변2

이미지와 비디오를 압축하는 것은 예를 들어 텍스트 파일을 압축하는 것보다 "더 복잡"합니다. 왜냐하면 zip 등과 같은 일반 압축 방법은 스스로 알아차린 것처럼 좋은 결과를 제공하지 않기 때문입니다(user1258361의 의견은 여기에서 약간의 통찰력을 제공합니다).

해상도를 줄이는 것이 좋습니다. 이는 간단하고 크기가 크게 줄어들지만 단점은 사진과 비디오의 품질이 저하된다는 것입니다. CLI(명령줄 인터페이스)를 통해 해상도를 줄이는 다양한 도구가 있으며 이 질문은 여러 번 요청되었습니다.이건 이미지용이야. 검색을 시작하고 시도해 보세요. 특정 문제가 발생하면 (다른) 질문을 할 수 있습니다. 참고: HW에 따라 속도가 그리 빠르지 않을 수도 있습니다. 그러나 "좋은" 압축 알고리즘도 아니며 압축이 많을수록 더 많은 계산이 수행되어야 합니다(일반인의 관점에서).

품질에 대한 (상당한) 손실 없이 압축하는 것은 압축 방법 선택이 품질 요구 사항과 관련하여 이미지/비디오의 콘텐츠에 따라 달라지기 때문에 더 복잡합니다. 다른 압축 형식으로 파일을 다시 인코딩해야 합니다. 몇 가지가 있습니다무손실 압축하지만 아마도 충분한 결과를 얻지 못할 것입니다. 내가 아는 한 여기에는 일반적인 대답이 없습니다.

추신. 소프트웨어 제안은 여기 수퍼유저의 범위를 벗어납니다.

관련 정보