영상에서 음성이 없는 구간을 자동으로 인식하고 제거하여 영상 길이를 줄여주는 CLI 오픈소스 도구입니다. npm에 배포하여 npx video-skipper로 바로 사용할 수 있습니다.
배경
강의 영상이나 발표 녹화를 보면 중간중간 침묵 구간이 꽤 많습니다. 이를 수동으로 편집하려면 시간이 오래 걸리는데, 음량 기반으로 자동 판별하면 빠르게 처리할 수 있겠다는 생각에서 시작했습니다.
주요 작업
- 영상의 오디오를 0.1초 단위로 잘라 볼륨을 측정했습니다.
- 전체 평균 볼륨을 기준으로 음성 유무를 이진 판별하도록 구현했습니다. (사용자가 -db 파라미터로 직접 지정할 수도 있습니다.)
- 이진화된 볼륨을 라운딩 처리하여 너무 자주 끊기지 않도록 보정했습니다.
- 최종 편집 포인트를 생성하고 FFmpeg로 무음 구간을 제거하는 파이프라인을 완성했습니다.
- FFmpeg 네이티브 엔진과 WASM 엔진 두 가지 모드를 지원하도록 구현했습니다.
성과
- npm에 배포하여 누적 다운로드 300회 이상을 달성했습니다.
- 강의 영상 테스트 시 약 25%의 시간 압축률을 기록했습니다.
사용법
npx video-skipper -i input.mp4 -o output.mp4 -db "-50"