이름만 바꾼 복사 파일은 내용이 완전히 같고, 다시 저장한 영상은 저장 방식에 따라 파일은 달라도 화면은 같을 수도, 달라질 수도 있습니다. 그래서 중복 정리를 파일 이름이나 용량만 보고 하면 지워도 되는 파일과 남겨야 할 파일을 헷갈리기 쉽습니다. 이 글에서는 같은 영상 하나로 네 가지 파일을 만들어 해시와 프레임 비교값을 직접 확인했습니다.

직접 확인한 결과: 같은 영상에서 만든 파일 4개

2026년 10월 9일 FFmpeg 9.0.1로 6초짜리 시험 영상을 하나 만들었습니다. 320×568, 초당 10프레임, H.264(yuv420p), 소리 없음, 60프레임입니다. 실제 촬영분이 아니라 FFmpeg의 시험 패턴(testsrc2)이며, 이 원본에서 아래 네 파일을 만들어 비교했습니다.

  • 이름만 바꾼 복사: cp로 복사한 파일입니다.
  • 컨테이너만 다시 저장(remux): -c copy -movflags +faststart. 영상 데이터는 그대로 두고 껍데기만 다시 씁니다.
  • 무손실 재인코딩: libx264 -qp 0.
  • 손실 재인코딩: libx264 -crf 28.
원본과 비교한 결과(자체 시험 파일, 같은 조건)
파일 용량 파일 SHA-256 (앞 12자) 디코딩 프레임 해시 일치 SSIM / PSNR
원본 394,161바이트 ba9c68ccd8c2 기준 기준
이름만 바꾼 복사 394,161바이트 ba9c68ccd8c2 (같음) 일치 1.000000 / 무한대(차이 없음)
remux 394,161바이트 55e2dc7c81a8 (다름) 일치 1.000000 / 무한대
무손실 재인코딩 1,012,978바이트 ad10fd6d592b (다름) 일치 1.000000 / 무한대
손실 재인코딩 179,603바이트 4eb7162c590a (다름) 불일치 0.990787 / 41.0dB

여기서 확인한 것은 세 가지입니다. 첫째, 이름만 바꾼 복사본은 파일 해시까지 같아서 파일 비교 도구가 바로 중복으로 잡습니다. 둘째, remux 파일은 용량이 같은데도 해시가 달랐습니다. 파일 해시만 보면 다른 파일이지만 화면 데이터는 같았습니다. 셋째, 무손실 재인코딩은 용량이 두 배 넘게 커졌는데도 디코딩한 프레임이 원본과 모두 같았습니다. 용량이 크게 다르다는 이유만으로 다른 영상이라고 단정할 수 없다는 뜻입니다.

손실 재인코딩은 용량이 절반 아래로 줄었고 프레임 해시도 달라졌습니다. SSIM 0.99, PSNR 41dB이면 눈으로는 비슷해 보이는 경우가 많지만, 픽셀 단위로는 다른 파일입니다. 이 값은 이 시험 패턴과 이 설정에서 나온 수치이며, 다른 영상이나 다른 인코더 설정에서 같은 값이 나온다고 일반화하지 않습니다.

중복 정리를 할 때는 이렇게 구분하세요

파일 해시가 같으면 바이트 단위로 같은 파일일 가능성이 매우 높으므로 하나만 남겨도 됩니다. 해시가 다르다고 해서 다른 영상이라는 뜻은 아닙니다. 위 시험처럼 remux나 무손실 재저장은 해시만 달라지고 화면은 같을 수 있습니다. 반대로 손실 재저장본은 눈으로 구분하기 어려워도 원본과는 다른 데이터입니다. 원본 보존이 목적이라면 손실 재저장본을 먼저 지우지 말고, 가장 먼저 만든 원본을 남기세요.

다음 명령으로 직접 확인할 수 있습니다. 두 번째 명령은 디코딩한 프레임마다 해시를 출력하며 파일을 수정하지 않습니다.

shasum -a 256 original.mp4 copy.mp4
ffmpeg -hide_banner -loglevel error -i "copy.mp4" -map 0:v:0 -f framehash -hash sha256 -
ffmpeg -hide_banner -nostats -i original.mp4 -i copy.mp4 -lavfi "[0:v][1:v]ssim;[0:v][1:v]psnr" -f null -

프레임 해시를 비교할 때는 두 파일에 같은 출력 옵션을 써야 합니다. 자세한 조건은 FFmpeg framehash 문서에서 확인할 수 있습니다.

이 결과로 말할 수 없는 것

파일이나 프레임이 같다는 것은 데이터가 같다는 뜻일 뿐, 장면이 독창적인지, 쓰는 데 권리 문제가 없는지를 알려 주지는 않습니다. 반대로 해시가 달라도 다른 사람이 만든 영상의 재업로드일 수 있습니다. 이번 시험은 소리가 없는 합성 영상 한 개로만 했고, 오디오 포함 파일이나 서로 다른 코덱, 길이가 긴 실사 영상은 확인하지 않았습니다. 유튜브가 중복이나 재사용 콘텐츠를 어떻게 판단하는지도 이 시험으로는 알 수 없습니다.

자주 찾는 질문

용량이 다르면 다른 영상인가요? 이 시험에서는 아닙니다. 무손실 재인코딩본은 용량이 2.6배였지만 프레임이 모두 같았습니다.

해시가 다르면 지워도 되나요? 해시가 다르다는 사실만으로는 어느 쪽이 원본인지 알 수 없습니다. 생성일, 제작 기록, 프레임 비교값을 함께 보고 원본을 먼저 확인하세요.

쇼츠 소재 정리에도 쓸 수 있나요? 같은 소재를 여러 번 내보낸 파일을 정리하는 용도로는 쓸 수 있습니다. 다만 남의 영상을 쓸 때의 권리 확인은 별개입니다.

샘플 파일부터 직접 만들어 확인하기

위 표의 원본 없이도 같은 비교 절차를 실행할 수 있습니다. 아래는 FFmpeg가 설치된 macOS 터미널용 명령입니다. 기존 영상이 없는 새 빈 폴더에서 실행하세요. mkdir가 폴더가 이미 있다고 알리면 다른 새 폴더 이름으로 시작합니다. 합성 패턴 파일 다섯 개와 프레임 해시 텍스트를 만들며, 실제 촬영 파일을 수정하거나 삭제하지 않습니다.

mkdir ffmpeg-duplicate-demo
cd ffmpeg-duplicate-demo

# 소리 없는 6초 합성 패턴: 타인의 영상이 필요하지 않습니다.
ffmpeg -hide_banner -loglevel error -f lavfi -i "testsrc2=size=320x568:rate=10" -t 6 -an -c:v libx264 -crf 18 -pix_fmt yuv420p original.mp4
cp original.mp4 renamed_copy.mp4
ffmpeg -hide_banner -loglevel error -i original.mp4 -c copy -movflags +faststart remux_copy.mp4
ffmpeg -hide_banner -loglevel error -i original.mp4 -an -c:v libx264 -qp 0 -pix_fmt yuv420p lossless_resave.mp4
ffmpeg -hide_banner -loglevel error -i original.mp4 -an -c:v libx264 -crf 28 -pix_fmt yuv420p lossy_resave.mp4

# 파일 자체의 해시를 봅니다.
shasum -a 256 original.mp4 renamed_copy.mp4 remux_copy.mp4 lossless_resave.mp4 lossy_resave.mp4

# 각 프레임의 해시만 추려, 서로 비교할 파일로 만듭니다.
for name in original renamed_copy remux_copy lossless_resave lossy_resave; do
  ffmpeg -hide_banner -loglevel error -i "$name.mp4" -map 0:v:0 -f framehash -hash sha256 - | awk -F, '!/^#/ && NF {gsub(/ /,"",$NF); print $NF}' > "$name.frames.sha256"
done

# 끝의 숫자 0은 같음, 1은 다름입니다.
cmp -s original.frames.sha256 remux_copy.frames.sha256; echo $?
cmp -s original.frames.sha256 lossless_resave.frames.sha256; echo $?
cmp -s original.frames.sha256 lossy_resave.frames.sha256; echo $?

2026년 10월 12일, 본문의 명령을 FFmpeg 9.0.1에서 별도 합성 샘플로 실행해 핵심 관계를 다시 확인했습니다. 이름만 바꾼 복사는 파일 해시가 같았고, remux와 무손실 재인코딩은 원본의 60개 프레임과 같았습니다. 손실 재인코딩은 프레임 해시가 달랐습니다. 위 세 cmp 명령의 반환값은 각각 0, 0, 1이었습니다. 이 점검은 비교 절차가 실행되는지 확인한 것이며, 위 표의 10월 9일 원측정을 오늘의 측정으로 바꾼 것은 아닙니다.

FFmpeg·libx264 빌드, 운영체제, 인코더 옵션이 달라지면 파일 크기와 해시, SSIM·PSNR 수치는 달라질 수 있습니다. 표에 있는 특정 숫자를 맞추는 대신, 복사·컨테이너 재저장·무손실·손실을 어떤 증거로 구분하는지 확인하세요. 이 짧은 무음 합성 패턴에서 확인한 관계를 모든 실사 영상·오디오 파일이나 플랫폼의 재사용 콘텐츠 판정에 일반화하지 않습니다.

참고 자료와 범위

FFmpeg framehash · FFmpeg ssim 필터 · FFmpeg psnr 필터. 시험 파일과 수치는 2026년 10월 9일 직접 만들어 측정했고, 측정 기록은 별도 파일로 보관했으며 글에는 첨부하지 않았습니다. 위 명령은 독자가 같은 방식의 샘플로 비교 절차를 직접 실행하도록 제공합니다. 글 정리에는 AI 도구를 사용했습니다. 관련 글: FFmpeg 무음 기준 비교 · AI 캐릭터 숏폼 올리기 전 확인 · AI 뮤직비디오가 정지 화면인지 확인하는 법


이 글을 쓴 사람

작성·검토 방식 · 오류 제보·문의