ffmpeg-video-qa-gates
ffmpeg로 짧은 영상을 기계 검수합니다. 정지 화면, 무음, 음량, 피크, 해상도, 오프닝 밀도와 자막 타이밍을 봅니다.
어떤 문제를 푸나The problem
AI가 만든 영상은 올리기 전까지 아무도 보지 않는 방식으로 실패합니다. 6초 동안 멈춘 화면, 중간의 무음, 엉뚱한 음량이 대표적입니다. 이 게이트들은 그것을 측정해서 0이 아닌 종료 코드로 알려 줍니다.
qa_video.py는 오디오 유무, 가장 긴 정지 구간(끝까지 이어지는 정지 포함), 무음 구간, 통합 음량과 트루 피크, 해상도와 길이를 확인합니다. opening_density.py와 subtitle_lint.py는 오프닝의 시각 밀도와 자막이 읽을 수 있는 속도인지 확인합니다.
이런 분께 맞습니다Who it is for
숏폼 영상을 자동으로 만들어 내보내는 사람, 업로드 직전의 기계 점검이 필요한 사람.
무엇을 하나What it does
- 정지 구간 감지는 10fps로 줄인 사본에서 수행해 배경 노이즈의 영향을 줄입니다.
- ffmpeg가 영상을 읽지 못하거나 오디오 전용 파일이면 통과가 아니라 측정 불가(3)입니다.
- 자막은 줄 수, 한 줄 글자 수, 표시 시간, 초당 글자 수를 검사합니다(VTT).
- 파일이 없으면 종료 코드 3입니다.
직접 돌려 본 출력Real output
저장소의 examples 폴더를 실행한 결과입니다.
$ bash examples/demo.sh
# Test clips are generated with ffmpeg (a real clip, one with a 6 s frozen picture, one with no audio track)
$ python3 scripts/qa_video.py .demo-tmp/good.mp4
[PASS] has-audio: audio stream present
[PASS] no-long-freeze: longest near-still stretch 0.00s (limit 4.0s)
[PASS] no-dead-air: 0 silent segment(s) (>=0.3s below -50 dB)
[PASS] loudness: -13.8 LUFS (target -14.0+-1.5)
[PASS] true-peak: -9.0 dBFS (limit -1.0)
all measured checks pass
[exit 0]
$ python3 scripts/qa_video.py .demo-tmp/frozen.mp4
[PASS] has-audio: audio stream present
[FAIL] no-long-freeze: longest near-still stretch 6.00s (limit 4.0s)
[PASS] no-dead-air: 0 silent segment(s) (>=0.3s below -50 dB)
[PASS] loudness: -13.8 LUFS (target -14.0+-1.5)
[PASS] true-peak: -9.0 dBFS (limit -1.0)
FAIL: no-long-freeze
[exit 1]
알아둘 한계Limits
- ffmpeg와 ffprobe가 필요합니다.
- 기준은 세로 숏폼에 맞춘 시작점입니다. 영상이 좋은지는 판단하지 않고 측정만 합니다.
받아서 쓰기Get it
# 저장소를 받습니다
git clone https://github.com/Kein-chronicle/ffmpeg-video-qa-gates.git
# Claude Code 스킬로 쓰려면 이 폴더 이름으로 받습니다
git clone https://github.com/Kein-chronicle/ffmpeg-video-qa-gates.git ~/.claude/skills/video-qa-gates
정보Info
- 분류Category
- 게임·미디어 제작Games & media
- 형태Type
- 명령줄 도구Command-line tool
- 라이선스License
- MIT
- 필요한 것Requires
- Python 3.10 이상, ffmpeg, Pillow
- 저장소Repository
- ffmpeg-video-qa-gates
- 토픽Topics
ffmpegvideoqaloudnesssubtitlesshortsautomationclaude-skills
2026-10-18 기준: 저장소의 테스트를 로컬에서 실행해 통과했고, 예제 출력은 저장소의 examples 폴더를 실제로 실행한 결과입니다.