이 글의 점검은 무료 FFmpeg 명령으로 직접 실행할 수 있습니다.

핵심 답변 ffmpeg의 freezedetect 필터를 기본값으로 돌리면 ‘그림 한 장 + 움직이는 파형’ 영상을 놓칠 수 있습니다. 저희 140초 파일은 기본값에서 137.2초부터만 잡혔고, 허용치를 n=-40dB, 길이를 d=5로 바꾸자 0초부터 끝까지 잡혔습니다. 숫자만 믿지 말고 10초 간격 프레임을 한 장에 모아 눈으로도 봅니다.

왜 이 확인이 필요했나

2026년 9월 22일, 저희 채널에 140초짜리 AI 노래 ‘뮤직비디오’를 올렸습니다. 실제로는 창가에 선 인물 그림 한 장에 아래쪽 파형만 움직이는 영상이었고, 다음 날 아침(9월 23일 08시 57분) 채널에서 삭제했습니다. 업로드 전 점검이 길이·해상도·음량만 재고 화면이 움직이는지는 보지 않았기 때문입니다. 그 뒤로 아래 두 명령을 업로드 전에 돌립니다. 제작하면서 배운 점은 Higgsfield 쇼츠 제작 글에 따로 적었습니다.

명령 1: freezedetect 허용치 바꾸기

ffmpeg -hide_banner -nostats -i video.mp4 -vf freezedetect=n=-40dB:d=5 -map 0:v:0 -f null -

이 필터는 앞뒤 프레임의 평균 차이가 허용치(n)보다 작은 상태가 d초 넘게 이어지면 freeze_start를 찍습니다. 기본값은 -60dB(비율로 0.001), 2초입니다. -40dB는 비율로 0.01이니 기준이 열 배 느슨해집니다. 파형처럼 화면 일부만 움직이면 평균 차이가 작아서, 허용치를 올려야 ‘거의 멈춘’ 화면으로 잡힙니다. 아래는 저희 파일 3개로 잰 결과입니다(ffmpeg 9.0.1, macOS).

파일 -60dB·2초(기본값) -40dB·5초 -25dB·5초
그림 한 장+파형 뮤직비디오(140초) 137.2초부터 0초부터 끝까지 0초부터 끝까지
움직임 적은 인포그래픽 쇼츠(24초) 없음 없음 10.9~17.4초
인물이 걷는 음악 쇼츠(18초) 없음 없음 없음

결과에 freeze_end 줄이 없으면 멈춘 채로 파일이 끝났다는 뜻입니다. 공식 문서도 끝 표시는 멈춤이 끝난 뒤 첫 프레임에 찍힌다고 설명합니다.

명령 2: 프레임을 한 장에 모아 보기

ffmpeg -i video.mp4 -vf "fps=1/10,scale=320:-1,tile=5x3" -frames:v 1 sheet.jpg

10초마다 한 장씩 뽑아 5×3 격자 이미지 하나로 만듭니다. 140초 파일은 14칸이 모두 같은 그림이었고 파형 줄만 달랐습니다. 걷는 쇼츠(18초)는 1초 간격으로 18칸을 6×3 격자에 뽑았는데(ffmpeg -i short.mp4 -vf "fps=1,scale=160:-1,tile=6x3" -frames:v 1 sheet.jpg) 칸마다 장면이 달랐습니다. 격자 칸 수(가로×세로)는 뽑는 장 수와 맞춰야 합니다. 5×3에 18장을 넣으면 앞 15장만 담깁니다. 숫자가 애매할 때 이 한 장이 가장 빨리 답을 줍니다. 다만 격자는 표본입니다. 10초 간격이면 칸과 칸 사이 9초 동안의 움직임은 보이지 않으므로, 칸이 모두 같아 보여도 ‘영상 전체가 멈춰 있다’고 단정하지 말고 freezedetect가 잡은 구간을 실제로 재생해 한 번 더 확인하세요. 영상 길이에 맞춰 간격을 바꾸면 되는데, 예를 들어 3분짜리 영상은 fps=1/12로 뽑으면 15칸이 5×3 격자에 딱 맞습니다.

허용치를 너무 올리면

-25dB까지 올리자 멀쩡한 인포그래픽 쇼츠의 10.9~17.4초도 멈춤으로 나왔습니다. 글자와 화살표가 조금씩 움직이는 구간이었습니다. 그래서 저희는 -40dB·5초를 출발점으로 쓰고, 걸린 구간은 명령 2의 이미지로 직접 봅니다. 이 값은 저희 파일 3개로 정한 것이지 플랫폼 규칙이 아닙니다.

업로드 직전에 저희가 하는 순서는 이렇습니다.

  1. 명령 1을 -40dB·5초로 돌립니다.
  2. 걸린 구간이 있으면 명령 2로 그 파일의 격자 이미지를 한 장 뽑아 봅니다.
  3. 같은 그림이 계속 이어지면 장면을 더 넣기 전까지는 올리지 않습니다.

음량·끝부분도 함께 확인하기

화면 움직임 외에도 음량과 무음 구간, 같은 파일의 중복을 확인하려면 무료 명령을 정리한 업로드 전 점검 글(영문)을 함께 보세요. 한국어 설명은 AI 음악·영상 점검 글 모음에 모았습니다.

자주 묻는 질문

freeze_end 줄이 안 나오면 무슨 뜻인가요?

멈춘 상태가 파일 끝까지 이어졌다는 뜻입니다. 저희 140초 파일이 그랬습니다.

-40dB는 모든 영상에 맞나요?

아닙니다. 저희 파일 3개에서 움직이는 영상은 잡지 않고 정지 영상만 잡은 값일 뿐입니다. 화면 구성이 다르면 직접 다시 재 보세요.

Windows에서도 같은 명령이 되나요?

ffmpeg 명령 자체는 같습니다. 다만 저희는 macOS에서만 돌려 봤습니다.

참고 자료


이 글을 쓴 사람

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