1 동영상 고르기
- 파일
- —
- 크기
- —
- 길이
- —
- 소리
- —
- 샘플레이트
- —
이 파일은 어떤 레이트로 녹음됐는지 밝히지 않아서 48 kHz로 읽었습니다. 소리는 맞고, 샘플 수만 디스크에 있는 값과 다릅니다.
2 소리 가져가기
채널 모노는 파일을 절반으로 줄여 주고, 전사나 음성 녹음이 원하는 것이 바로 이쪽입니다. 한쪽을 버리는 대신 두 채널의 평균을 냅니다.
index.html을 폴더에서 바로 열면 브라우저가 JavaScript 모듈을 막습니다. 그래서 동영상 하나를 골라도 아무 일도 일어나지 않아요. 폴더를 http로 띄워서 여세요:
powershell -ExecutionPolicy Bypass -File serve.ps1
그런 다음 http://localhost:8080/을 여세요.
동영상을 놓으면 소리만 가져갑니다. 화면은 한 번도 디코딩되지 않고, 아무것도 업로드되지 않습니다.
디코더는 브라우저에 이미 들어 있는 그 디코더입니다. 파일을 <video> 요소에서 재생할 때와 똑같은 코드 경로이고, 여기서 요청하는 것은 오디오 트랙 하나뿐입니다. WAV를 쓴다는 것은 샘플 앞에 마흔네 바이트짜리 헤더를 붙이는 일이고, src/shared/wav.js에 그렇게 적혀 있습니다. 중간에 인코더가 없고, 업로드 단계도 없으며, 이 페이지에는 네트워크 기능 자체가 없습니다.
실시간 확인: 확인 중…
오프라인: 확인 중…
말을 믿으실 필요는 없습니다. 개발자 도구를 열고 네트워크 탭을 보면서 동영상을 놓아 보세요. 어느 요청에도 그 파일의 1바이트조차 실리지 않습니다. 아니면 인터넷을 끊고 그대로 소리를 꺼내 보셔도 됩니다.
decodeAudioData에 바이트를 건네면 소리가 돌아올 뿐이고, src/에는 실행할 영상 디코더가 없습니다. 직접 확인해 보세요. 위에 적은 어느 것도 그냥 믿으실 필요는 없습니다. 이 페이지는 저장소 안의 템플릿과 설정을 빌드 스크립트가 찍어 낸 결과이고, 그 스크립트는 누구나 읽고 직접 돌려 볼 수 있습니다. 결과물은 dist 브랜치에 그대로 올라가 있고요. 그래서 실제로 제공되는 파일과 소스를 빌드한 결과를 나란히 놓고 비교해 보실 수 있습니다:
github.com/A-Box-of-Tools/website
먼저 읽어 볼 파일을 꼽자면, Content-Security-Policy는 config/site.toml, 여기 있는 단 하나의 디코더와 화면이 왜 한 번도 요청되지 않는지는 src/shared/audio-decode.js를, 녹음이 조용히 리샘플링되는 것을 막는 헤더 확인은 src/shared/samplerate.js를 보세요.
회사 보안 소프트웨어가 업로드를 경고한다면. 그것은 브라우저에서 파일이 선택되는 순간을 지켜보며, 페이지가 그것을 보낼 생각인지는 알 수 없습니다 — 그래서 고르는 순간에 경고합니다. 여기서는 아무것도 보내지 않습니다. 브라우저 개발자 도구를 열고 네트워크 탭으로 옮긴 뒤 파일을 골라 보세요. 그것을 실어 나르는 요청은 없고, 이 페이지 자체의 로컬 미리보기 말고는 요청 자체가 없습니다. 같은 확인을 IT 팀도 삼십 초면 할 수 있습니다.
이 파일은 어떤 레이트로 녹음됐는지 밝히지 않아서 48 kHz로 읽었습니다. 소리는 맞고, 샘플 수만 디스크에 있는 값과 다릅니다.
채널 모노는 파일을 절반으로 줄여 주고, 전사나 음성 녹음이 원하는 것이 바로 이쪽입니다. 한쪽을 버리는 대신 두 채널의 평균을 냅니다.
원하는 결과가 나왔나요?
무엇이 잘못됐나요?
고맙습니다 — 큰 도움이 됩니다.
보내지는 것은 답변뿐이고, 그것도 버튼을 눌렀을 때만입니다. 파일도, 파일 이름도, 파일에 관한 어떤 정보도 보내지 않습니다.
# 동영상에서 오디오 추출 — 소리만 따로, 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`를 보세요.
아닙니다. 디코딩도 쓰기도 모두 사용자의 브라우저에서, 사용자의 하드웨어 위에서 이뤄집니다. 이 도구에는 네트워크 기능 자체가 없어서 무언가를 가져오지도, 보내지도 않습니다. 페이지의 Content-Security-Policy에는 연결할 수 있는 모든 주소가 적혀 있고 그중 우리 것은 하나도 없습니다. 듣기보다 확인하고 싶으시면 인터넷을 끊은 채로 소리를 꺼내 보세요.
아닙니다. 그런 척도 하지 않습니다. MP3 인코더를 싣고 오는 브라우저는 없고, 인코더에 닿는 유일한 길은 동영상을 인코더가 있는 서버로 보내는 것인데 그것이야말로 이 사이트가 하지 않으려고 존재하는 단 한 가지입니다. 받으시는 것은 WAV, 곧 샘플 앞에 마흔네 바이트짜리 헤더를 붙인 것으로 인코더가 전혀 필요 없고 품질을 깎을 수도 없습니다. 대신 큽니다. 스테레오 기준 1분에 10메가바이트 남짓이고, 어떤 재생기든 휴대폰이든 편집기든 열립니다. MP3가 필요한 쪽에서는 이 파일로 1초면 만들 수 있습니다.
아닙니다. 그럴 수 있는 것이 여기에는 없습니다. 브라우저의 디코더에 파일을 건네고 오디오 트랙을 달라고 할 뿐이고, 영상 트랙은 한 번도 디코딩되지 않고 그려지지도 않으며 이 페이지의 코드에 닿지조차 않습니다. src/에는 실행할 영상 디코더가 없습니다. 나오는 파일에 들어 있는 것은 소리뿐입니다.
그렇다면 그 동영상에는 거의 틀림없이 오디오 트랙이 없습니다. 마이크를 고르지 않고 찍은 화면 녹화는 무음이고, 편집기에서 소리를 음소거한 채 내보낸 클립도 무음입니다. 둘 다 보여 줄 화면이 있으니 문제없이 재생됩니다. 메시지가 이 경우를 먼저 말하는 것은 둘 중 더 잦은 쪽이기 때문이고, 다른 하나는 이 브라우저가 읽지 못하는 형식인 경우입니다. 파일을 재생기에서 열고 움직여도 아무 반응이 없는 음량 조절을 찾아보세요. 어느 쪽인지 가리는 가장 빠른 방법입니다.
브라우저가 디코딩하는 것이면 무엇이든, 실제로는 MP4, M4V, MOV, WebM을 뜻하고 오디오 형식은 전부 됩니다. 빠지는 것은 이 사이트 어디서나 같은 짧은 목록, 곧 AVI와 WMV, 그리고 대부분의 MKV입니다. 브라우저가 읽지 못할 파일은 도중에 실패하는 대신 그렇다고 말하는 메시지와 함께 거절됩니다.
그 동영상이 만들어질 때 자기 오디오에 이미 한 일 말고는 더 떨어지지 않습니다. 디코더가 돌려준 샘플은 있는 그대로 적힙니다. 두 번째 인코딩이 없으니 두 번째 세대의 손실도 없습니다. 알아 두실 것은 샘플레이트 하나뿐입니다. 파일 자신의 샘플레이트를 헤더에서 먼저 읽고 그 레이트로 디코딩하기 때문에 녹음이 조용히 리샘플링되지 않습니다. 파일이 아무것도 밝히지 않았다면 어떤 레이트로 보았는지 페이지가 말해 줍니다.
WAV는 압축되지 않았고 동영상의 오디오 트랙은 압축돼 있었기 때문입니다. CD 품질의 소리는 내용이 무엇이든 스테레오 기준 1분에 10메가바이트쯤 되고, MP4 안의 AAC 트랙은 그 10분의 1쯤입니다. 모노로 합치면 절반이 됩니다. 다시 인코딩하지 않는 대가이고, 한 번만 치르면 됩니다. 이 파일을 다음에 무엇으로 열든 그쪽에서 압축할 수 있습니다.
여기에 걸어 둔 제한은 없습니다. 그 값을 치를 서버가 없기 때문입니다. 실제 한계는 사용자 기기의 메모리입니다. 파일을 읽어 들이고 오디오 트랙 전체를 샘플로 들고 있기 때문에, 작은 기기에서 아주 긴 녹음을 다루면 자리가 모자랄 수 있습니다. 몇 시간짜리 동영상은 대개 괜찮고, 휴대폰은 노트북보다 짧은 데서 한계에 닿습니다.
네, 다만 여기서는 아닙니다. 이 페이지는 한 가지 일만 합니다. 결과가 나오면 내려받기 옆에 링크 줄이 생겨서, 저장하지 않은 채로 오디오 자르기나 오디오 편집기로 곧장 옮겨 줍니다. 그 둘도 업로드하지 않습니다.
무료이고 계정도, 로그인도, 체험 기간도 없으며 동영상을 몇 개 열든 제한이 없습니다. 이 사이트에는 광고가 있고 그것이 비용을 댑니다. 광고에는 파일에 관한 것이 아무것도 주어지지 않습니다.
됩니다. 페이지를 한 번 불러온 뒤 인터넷을 끊어도 계속 동작합니다. 이것이 아무것도 업로드되지 않는다는 가장 간단한 증명이기도 합니다. 동영상을 처리하러 밖으로 보내는 도구라면 선을 뽑는 순간 멈췄을 것입니다.