# 동영상에서 오디오 추출 — 소리만 따로, WAV로

동영상을 놓으면 소리만 가져갑니다. 화면은 한 번도 디코딩되지 않고, 아무것도 업로드되지 않습니다.

> MP4, MOV, WebM에서 소리를 꺼내 WAV로 저장합니다. 동영상은 기기를 떠나지 않고 화면은 한 번도 디코딩되지 않습니다. 모든 작업이 사용자의 브라우저 안에서 이뤄집니다.

이 페이지는 브라우저 안에서만 동작하는 대화형 도구입니다(https://abox.tools/ko/동영상-오디오-추출/). 도구에 넘긴 어떤 것도 업로드되지 않습니다. 아래는 이 페이지가 도구에 대해 글로 설명하는 내용 전부입니다. 도구를 쓰려면 이 주소를 여세요.

## 동영상은 **절대 업로드되지 않습니다**. 서버가 아예 없으니까요.

디코더는 브라우저에 이미 들어 있는 그 디코더입니다. 파일을 `<video>` 요소에서 재생할 때와 똑같은 코드 경로이고, 여기서 요청하는 것은 오디오 트랙 하나뿐입니다. WAV를 쓴다는 것은 샘플 앞에 마흔네 바이트짜리 헤더를 붙이는 일이고, `src/shared/wav.js`에 그렇게 적혀 있습니다. 중간에 인코더가 없고, 업로드 단계도 없으며, 이 페이지에는 네트워크 기능 자체가 없습니다.

- ✗ 업로드 없음
- ✗ 가입 없음
- ✗ 용량 제한 없음
- ✓ 오프라인 동작
- ✓ 오픈 소스

## 동영상을 업로드하지 않고 오디오를 꺼내는 방법

1. **동영상을 놓으세요.** 휴대폰, 카메라, 화면 녹화기, 내려받은 파일에서 온 MP4, MOV, M4V, WebM이면 됩니다. 읽는 것은 사용자의 브라우저이고, 건너뛸 업로드 단계 자체가 없습니다.
2. **무엇을 찾았는지 읽어 보세요.** 길이, 채널 수, 샘플레이트가 파일에서 그대로 나옵니다. 파일이 자기 샘플레이트를 밝히지 않았다면, 조용히 리샘플링해 놓고 아무것도 건드리지 않았다고 주장하는 대신 페이지가 그렇다고 말합니다.
3. **더 작게 하고 싶으면 모노를 고르세요.** 채널을 그대로 두면 녹음은 있던 그대로 남습니다. 모노로 합치면 파일이 절반이 되고, 전사나 음성 녹음이 원하는 것이 바로 이쪽입니다. 한쪽을 버리는 대신 두 채널의 평균을 냅니다.
4. **저장하기 전에 들어 보세요.** 재생되는 것은 곧 내려받게 될 바로 그 파일이지 동영상이 아닙니다. 그러니 소리가 맞으면 내려받는 것도 맞습니다.
5. **가져가거나, 이어서 넘기세요.** WAV를 내려받거나, 저장하지 않은 채로 자르기나 편집으로 곧장 보내세요.

## 상자 속 다른 도구

- [오디오 자르기](https://abox.tools/ko/오디오-자르기/): 재생하면서 남길 곳에 표시하십시오. 표시한 만큼이 한 파일로, 말한 자리에서 잘려 돌아옵니다.
- [오디오 편집](https://abox.tools/ko/오디오-편집/): 거꾸로 돌리고, 배속을 바꾸고, 작게 녹음된 소리를 키웁니다. 전부 내 기기 안에서.
- [PDF 합치기 & 나누기](https://abox.tools/ko/pdf-합치기/): 서버를 한 바퀴 돌지 않고 페이지를 옮깁니다.
- [PDF 압축](https://abox.tools/ko/pdf-용량-줄이기/): 문서를 어디에도 보내지 않고 가볍게 만듭니다.

## 자주 묻는 질문

### 제 동영상이 어딘가로 업로드되나요?

아닙니다. 디코딩도 쓰기도 모두 사용자의 브라우저에서, 사용자의 하드웨어 위에서 이뤄집니다. 이 도구에는 네트워크 기능 자체가 없어서 무언가를 가져오지도, 보내지도 않습니다. 페이지의 `Content-Security-Policy`에는 연결할 수 있는 모든 주소가 적혀 있고 그중 우리 것은 하나도 없습니다. 듣기보다 확인하고 싶으시면 인터넷을 끊은 채로 소리를 꺼내 보세요.

### MP3로 받을 수 있나요?

아닙니다. 그런 척도 하지 않습니다. MP3 인코더를 싣고 오는 브라우저는 없고, 인코더에 닿는 유일한 길은 동영상을 인코더가 있는 서버로 보내는 것인데 그것이야말로 이 사이트가 하지 않으려고 존재하는 단 한 가지입니다. 받으시는 것은 WAV, 곧 샘플 앞에 마흔네 바이트짜리 헤더를 붙인 것으로 인코더가 전혀 필요 없고 품질을 깎을 수도 없습니다. 대신 큽니다. 스테레오 기준 1분에 10메가바이트 남짓이고, 어떤 재생기든 휴대폰이든 편집기든 열립니다. MP3가 필요한 쪽에서는 이 파일로 1초면 만들 수 있습니다.

### 화면을 들여다보기는 하나요?

아닙니다. 그럴 수 있는 것이 여기에는 없습니다. 브라우저의 디코더에 파일을 건네고 오디오 트랙을 달라고 할 뿐이고, 영상 트랙은 한 번도 디코딩되지 않고 그려지지도 않으며 이 페이지의 코드에 닿지조차 않습니다. `src/`에는 실행할 영상 디코더가 없습니다. 나오는 파일에 들어 있는 것은 소리뿐입니다.

### 소리를 읽을 수 없다는데 동영상은 잘 재생됩니다.

그렇다면 그 동영상에는 거의 틀림없이 오디오 트랙이 없습니다. 마이크를 고르지 않고 찍은 화면 녹화는 무음이고, 편집기에서 소리를 음소거한 채 내보낸 클립도 무음입니다. 둘 다 보여 줄 화면이 있으니 문제없이 재생됩니다. 메시지가 이 경우를 먼저 말하는 것은 둘 중 더 잦은 쪽이기 때문이고, 다른 하나는 이 브라우저가 읽지 못하는 형식인 경우입니다. 파일을 재생기에서 열고 움직여도 아무 반응이 없는 음량 조절을 찾아보세요. 어느 쪽인지 가리는 가장 빠른 방법입니다.

### 어떤 동영상 형식을 열 수 있나요?

브라우저가 디코딩하는 것이면 무엇이든, 실제로는 MP4, M4V, MOV, WebM을 뜻하고 오디오 형식은 전부 됩니다. 빠지는 것은 이 사이트 어디서나 같은 짧은 목록, 곧 AVI와 WMV, 그리고 대부분의 MKV입니다. 브라우저가 읽지 못할 파일은 도중에 실패하는 대신 그렇다고 말하는 메시지와 함께 거절됩니다.

### 품질이 떨어지나요?

그 동영상이 만들어질 때 자기 오디오에 이미 한 일 말고는 더 떨어지지 않습니다. 디코더가 돌려준 샘플은 있는 그대로 적힙니다. 두 번째 인코딩이 없으니 두 번째 세대의 손실도 없습니다. 알아 두실 것은 샘플레이트 하나뿐입니다. 파일 자신의 샘플레이트를 헤더에서 먼저 읽고 그 레이트로 디코딩하기 때문에 녹음이 조용히 리샘플링되지 않습니다. 파일이 아무것도 밝히지 않았다면 어떤 레이트로 보았는지 페이지가 말해 줍니다.

### WAV가 왜 동영상보다 훨씬 큰가요?

WAV는 압축되지 않았고 동영상의 오디오 트랙은 압축돼 있었기 때문입니다. CD 품질의 소리는 내용이 무엇이든 스테레오 기준 1분에 10메가바이트쯤 되고, MP4 안의 AAC 트랙은 그 10분의 1쯤입니다. 모노로 합치면 절반이 됩니다. 다시 인코딩하지 않는 대가이고, 한 번만 치르면 됩니다. 이 파일을 다음에 무엇으로 열든 그쪽에서 압축할 수 있습니다.

### 얼마나 긴 동영상까지 다룰 수 있나요?

여기에 걸어 둔 제한은 없습니다. 그 값을 치를 서버가 없기 때문입니다. 실제 한계는 사용자 기기의 메모리입니다. 파일을 읽어 들이고 오디오 트랙 전체를 샘플로 들고 있기 때문에, 작은 기기에서 아주 긴 녹음을 다루면 자리가 모자랄 수 있습니다. 몇 시간짜리 동영상은 대개 괜찮고, 휴대폰은 노트북보다 짧은 데서 한계에 닿습니다.

### 짧게 자르거나 소리를 키울 수 있나요?

네, 다만 여기서는 아닙니다. 이 페이지는 한 가지 일만 합니다. 결과가 나오면 내려받기 옆에 링크 줄이 생겨서, 저장하지 않은 채로 [오디오 자르기](https://abox.tools/ko/오디오-자르기/)나 [오디오 편집기](https://abox.tools/ko/오디오-편집/)로 곧장 옮겨 줍니다. 그 둘도 업로드하지 않습니다.

### 무료인가요? 가입해야 하나요?

무료이고 계정도, 로그인도, 체험 기간도 없으며 동영상을 몇 개 열든 제한이 없습니다. 이 사이트에는 광고가 있고 그것이 비용을 댑니다. 광고에는 파일에 관한 것이 아무것도 주어지지 않습니다.

### 오프라인에서도 되나요?

됩니다. 페이지를 한 번 불러온 뒤 인터넷을 끊어도 계속 동작합니다. 이것이 아무것도 업로드되지 않는다는 가장 간단한 증명이기도 합니다. 동영상을 처리하러 밖으로 보내는 도구라면 선을 뽑는 순간 멈췄을 것입니다.

## 이 약속을 직접 확인하는 방법

- **동영상이 나갈 곳이 없습니다.** Content-Security-Policy에는 이 페이지가 연결할 수 있는 모든 주소가 적혀 있고, 그중 우리 것은 하나도 없습니다. 파일이 수집될 만한 엔드포인트가 여기에는 없고, 설령 있다 해도 그리로 보낼 코드가 없습니다.
- **화면은 아예 디코딩되지 않습니다.** 요청하는 것은 오디오 트랙뿐입니다. 프레임은 읽지도, 디코딩하지도, 그리지도, 들여다보지도 않습니다. 이 페이지에는 그럴 수 있는 코드가 없기 때문입니다. 나오는 파일에 들어 있는 것은 소리뿐입니다. 이것은 자제하겠다는 약속이 아닙니다. `decodeAudioData`에 바이트를 건네면 소리가 돌아올 뿐이고, `src/`에는 실행할 영상 디코더가 없습니다.
- **디코더는 브라우저에 이미 들어 있는 그 디코더입니다.** 사용자의 형식을 읽으려고 여기서 무언가를 내려보내는 일도 없고, 읽으려고 이 페이지 바깥의 무언가에 부탁하는 일도 없습니다. 어떤 파일이 열리는지는 결국 브라우저가 이미 재생할 수 있는 것과 같습니다.
- **샘플은 그대로 적힐 뿐, 다시 인코딩되지 않습니다.** WAV란 디코더가 돌려준 샘플 앞에 헤더를 붙인 것입니다. 중간에서 녹음에 대해 판단을 내리는 인코더가 없고, 그런 일이 벌어질 만한 업로드라 부를 것도 없습니다.
- **구글이 불러오는 것과, 구글에 주지 않는 것.** 광고와 측정 스크립트는 구글에서, 후원 버튼은 Buy Me a Coffee에서 옵니다. 그 어느 쪽에도 동영상에 관한 것은 아무것도 건네지지 않습니다. 파일도, 샘플도, 이름도, 크기도, 길이도 마찬가지입니다.
- **오프라인에서 동작합니다.** 네트워크를 끊어도 이 도구는 그대로입니다. 애초에 네트워크 단계가 없었기 때문입니다. 가장 간단한 증명입니다.

**직접 확인해 보세요.** 위에 적은 어느 것도 그냥 믿으실 필요는 없습니다. 이 페이지는 저장소 안의 템플릿과 설정을 빌드 스크립트가 찍어 낸 결과이고, 그 스크립트는 누구나 읽고 직접 돌려 볼 수 있습니다. 결과물은 `dist` 브랜치에 그대로 올라가 있고요. 그래서 실제로 제공되는 파일과 소스를 빌드한 결과를 나란히 놓고 비교해 보실 수 있습니다: https://github.com/A-Box-of-Tools/website

먼저 읽어 볼 파일을 꼽자면, Content-Security-Policy는 `config/site.toml`, 여기 있는 단 하나의 디코더와 화면이 왜 한 번도 요청되지 않는지는 `src/shared/audio-decode.js`를, 녹음이 조용히 리샘플링되는 것을 막는 헤더 확인은 `src/shared/samplerate.js`를 보세요.
