오디오 파일을 브라우저에서 무손실로 자르는 실무 방법
좋아하는 노래의 특정 하이라이트 구간만 스마트폰 벨소리로 만들거나, 팟캐스트 녹음본의 불필요한 공백을 잘라내고, 유튜브 동영상에 들어갈 짧은 효과음을 추출해야 할 때가 많습니다.
본 도구는 복잡하고 무거운 DAW 프로그램(Audacity, Premiere 등) 설치 없이, 크롬이나 사파리 같은 웹 브라우저에서 마우스 드래그 몇 번으로 즉시 오디오를 자를 수 있는 초경량 온라인 오디오 편집기입니다.
Web Audio API를 통해 오디오 파형(Waveform)을 픽셀 단위로 시각화하여 음량의 피크(Peak)를 보며 정확한 비트 시작점을 찾을 수 있으며, 페이드 인/아웃 효과를 적용한 고음질 무손실 WAV 파일로 즉시 다운로드할 수 있습니다.
실시간 시각적 파형(Waveform) 뷰어
오디오 진폭을 정확한 파형 그래프로 시각화하여 비트와 음절의 시작점을 한눈에 확인하며 드래그합니다.
밀리초(ms) 단위 초정밀 타임코드 제어
0.01초 단위의 정밀한 시작/종료 시간 직접 입력과 실시간 선택 구간 미리듣기를 지원합니다.
자연스러운 페이드 인 & 페이드 아웃 지원
음악이 시작되거나 끝날 때 볼륨을 부드럽게 키우고 줄여주는 크로스페이드 음량 곡선을 제공합니다.
1. 오디오 자르기 도구는 어떤 상황에서 유용할까요? (주요 활용 분야)
2. 브라우저 Web Audio API의 비파괴 PCM 버퍼 슬라이싱 원리
3. 주요 오디오 포맷별 특성 및 권장 규격 비교표
용도에 맞는 최적의 오디오 포맷과 샘플레이트 설정 가이드입니다.
| 오디오 포맷 | 압축 방식 및 음질 | 대표 샘플레이트 / 비트레이트 | 추천 활용 분야 | |
|---|---|---|---|---|
| WAV (Waveform Audio) | 비압축 무손실 PCM 원음 포맷 | 44.1kHz / 48kHz (16-bit / 24-bit) | 음원 편집 원본, 효과음 소스, 방송 오디오 마스터링 | |
| MP3 (MPEG-1 Layer 3) | 고호환성 범용 손실 압축 포맷 | 128kbps ~ 320kbps (44.1kHz) | 스마트폰 벨소리, 일상 음악 감상, 웹 스트리밍 BGM | |
| OGG / Vorbis | 오픈소스 고효율 손실 압축 포맷 | VBR 160kbps ~ 256kbps (48kHz) | 웹 브라우저 네이티브 재생, 인디 게임 BGM 리소스 | |
| AAC / M4A | Apple 표준 고음질 고효율 압축 포맷 | 192kbps ~ 256kbps (44.1kHz / 48kHz) | 아이폰 벨소리(M4R), 애플 뮤직, 유튜브 동영상 오디오 트랙 | |
| FLAC (Free Lossless) | 가역 압축 무손실 고해상도 포맷 | 48kHz ~ 96kHz (24-bit Hi-Res) | 고음질 하이파이(Hi-Fi) 음원 보관, 스튜디오 레코딩 |
4. 깔끔하고 자연스러운 음원 자르기를 위한 3대 실무 요령
개발자를 위한 언어별 오디오 자르기(Trim) 구현 스니펫
웹 프론트엔드 Web Audio API, 파이썬 pydub, Node.js ffmpeg, CLI 표준 구현 코드입니다.
| 1 | // Web Audio API를 활용한 순수 브라우저 오디오 슬라이스 함수 |
| 2 | function sliceAudioBuffer(audioBuffer, startTime, endTime) { |
| 3 | const sampleRate = audioBuffer.sampleRate; |
| 4 | const startOffset = Math.floor(startTime * sampleRate); |
| 5 | const endOffset = Math.floor(endTime * sampleRate); |
| 6 | const frameCount = endOffset - startOffset; |
| 7 | |
| 8 | const audioCtx = new (window.AudioContext || window.webkitAudioContext)(); |
| 9 | const slicedBuffer = audioCtx.createBuffer( |
| 10 | audioBuffer.numberOfChannels, |
| 11 | frameCount, |
| 12 | sampleRate |
| 13 | ); |
| 14 | |
| 15 | for (let ch = 0; ch < audioBuffer.numberOfChannels; ch++) { |
| 16 | const fromChannel = audioBuffer.getChannelData(ch); |
| 17 | const toChannel = slicedBuffer.getChannelData(ch); |
| 18 | for (let i = 0; i < frameCount; i++) { |
| 19 | toChannel[i] = fromChannel[startOffset + i]; |
| 20 | } |
| 21 | } |
| 22 | |
| 23 | return slicedBuffer; |
| 24 | } |
| 1 | from pydub import AudioSegment |
| 2 | |
| 3 | # 1. 오디오 파일 로드 |
| 4 | audio = AudioSegment.from_file("song.mp3") |
| 5 | |
| 6 | # 2. 밀리초(ms) 단위 구간 자르기 (예: 30초 ~ 60초) |
| 7 | start_ms = 30 * 1000 |
| 8 | end_ms = 60 * 1000 |
| 9 | trimmed_audio = audio[start_ms:end_ms] |
| 10 | |
| 11 | # 3. 페이드 인 (1초) & 페이드 아웃 (2초) 적용 후 저장 |
| 12 | final_audio = trimmed_audio.fade_in(1000).fade_out(2000) |
| 13 | final_audio.export("trimmed_output.wav", format="wav") |
| 14 | print("오디오 자르기 완료") |
| 1 | const ffmpeg = require('fluent-ffmpeg'); |
| 2 | |
| 3 | // 00:00:30부터 30초 길이만큼 자르고 페이드 적용 |
| 4 | ffmpeg('input.mp3') |
| 5 | .setStartTime('00:00:30') |
| 6 | .setDuration(30) |
| 7 | .audioFilters(['afade=t=in:ss=0:d=1', 'afade=t=out:st=28:d=2']) |
| 8 | .output('output_trimmed.mp3') |
| 9 | .on('end', () => console.log('오디오 자르기 완료')) |
| 10 | .run(); |
| 1 | # 30초 지점부터 30초 동안 음원을 복사하여 자르기 (초고속 스트림 복사) |
| 2 | ffmpeg -ss 00:00:30 -to 00:01:00 -i input.mp3 -c copy cut_output.mp3 |
| 3 | |
| 4 | # 페이드 인(1초) 및 페이드 아웃(2초) 필터 적용하여 WAV로 변환 |
| 5 | ffmpeg -i input.mp3 -ss 30 -to 60 -af "afade=t=in:ss=0:d=1,afade=t=out:st=28:d=2" output.wav |
자주 묻는 질문 (FAQ)
Q.업로드한 음악이나 녹음 파일이 서버로 전송되거나 저장되나요?
아니요. 브라우저 내부 Web Audio API를 통해 로컬 메모리에서만 디코딩과 편집이 이루어지므로, 개인 소장 음원이나 기밀 음성 녹음본도 안심하고 편집할 수 있습니다.
Q.지원하는 오디오 파일 포맷은 무엇인가요?
MP3, WAV, OGG, AAC, M4A, FLAC, WEBM 등 브라우저가 지원하는 거의 모든 주요 디지털 오디오 포맷을 업로드하여 편집할 수 있습니다.
Q.페이드 인(Fade-in)과 페이드 아웃(Fade-out)은 왜 사용하나요?
음악이 갑자기 큰 소리로 시작되거나 중간에 뚝 끊기면 듣기 거북할 수 있습니다. 페이드 효과를 적용하면 볼륨이 0에서 서서히 커지고 끝날 때 부드럽게 줄어들어 전문 음원처럼 자연스러워집니다.
Q.스마트폰 벨소리로는 몇 초 정도가 가장 적당한가요?
통상적으로 25초에서 35초 사이의 후렴구 구간이 가장 적당하며, 시작 1초 페이드 인과 끝 2초 페이드 아웃을 함께 적용하시는 것을 권장합니다.
Q.자른 오디오는 어떤 파일 형식으로 다운로드되나요?
음질 손실이 전혀 없는 16-bit 44.1kHz 표준 무손실 WAV 파일로 다운로드됩니다. 필요에 따라 당사 오디오 포맷 변환기를 통해 MP3나 M4A로 즉시 변환하실 수도 있습니다.
Q.시작 시간과 종료 시간을 키보드로 직접 입력할 수 있나요?
네, 마우스로 파형 영역을 드래그하는 것 외에도 하단의 [시작 시간], [종료 시간] 입력창에 소수점 둘째 자리(0.01초)까지 밀리초 단위로 정확히 타이핑하여 보정할 수 있습니다.
Q.아이폰이나 안드로이드 스마트폰에서도 자를 수 있나요?
네, 모바일 Safari 및 모바일 Chrome에서도 터치 제스처를 통해 파형 구간을 선택하고 오디오를 자를 수 있습니다.
Q.대용량 오디오 파일도 지원하나요?
브라우저 메모리 한도 내에서 최대 100MB 및 1시간 이상의 긴 음원 파일도 원활하게 불러와서 작업할 수 있습니다.