2014-04-01 2 views
0

나는 우리 서버에 사용자의 오디오 파일을 업로드하기 위해 recorder.js를 사용하고 있습니다. 이것은 크롬과 파이어 폭스 둘 다에서 작동하고 있습니다. 그러나 우리의 오디오 파일은 약 1 분이고 1 분 오디오 파일은 약 8MB 크기의 파일을 생성하는데 너무 커서 서버에 업로드하기에는 크지 않습니다.wav를 줄이는 방법 Recorder.js로 만든 파일 크기

나는 recorderWorker.js 파일 :

업데이트 인터리브 방식

function interleave(inputL, inputR) 
{ 
    var result = new Float32Array(inputL.length); 
    for (var i = 0; i < inputL.length; ++i) 
    result[i] = 0.5 * (inputL[i] + inputR[i]); 
    return result; 
} 

로 내 파일이 있었다이 위의 코드에 의해

/* channel count */ 
view.setUint16(22, 1, true); 

로 설정 채널 수 4MB 크기의 절반 크기로 생성됩니다. 이 파일을 크롬에서 재생할 때 작동하지만 firefox 및 windows 미디어 플레이어에서이 파일을 시도 할 때 작동하지 않습니다. Firefox에서 파일을로드하지 못하고 Windows Media Player에서 "Windows Media Player에 문제가 발생했습니다. 파일을 재생하는 동안. " 메시지.

내가이 개 샘플을 만들었습니다

http://216.245.194.124/recorduploadsample.com/ 
http://216.245.194.124/recorduploadsample2.com/ 

첫 번째 샘플은 모두 크롬에서 작동하며 파이어 폭스와 기록 아무것도 후 우리가 녹음 된 사운드를 재생할 수 있습니다 ..

(이 큰 파일의 크기가 원래의 코드입니다)

두 번째 샘플은 firefox이 아닌 크롬에서만 작동합니다 (파일 크기를 줄이기 위해 위의 코드를 업데이트 함).

오디오 파일의 해상도를 변경하여 파일 크기를 줄여야하고, 둘 다 firefox에서 작동해야합니다. .. 누구든지 졸을 제안 할 수 있니? 이것을 위해 ution? 사전에

덕분에

+0

당신은 찾을 수이 관련 : 나는 비트 레이트를 변경하는 데 필요한 http://stackoverflow.com/questions/16296645/decrease-bitrate-on-wav-file-created-with-recorderjs, 물론 파일 크기도 줄어 듭니다. – icedwater

+0

@icedwater 예 그 게시 및 그 기반으로 채널 수를 변경하고 interleave 메서드를 업데이트하지만 파이어 폭스가 아닌 크롬에서만 작동합니다 ... 또한 저해상도로 오디오를 녹음하여 파일 크기를 줄이려고합니다. 이걸 위해 무엇을 바꿔야합니까? – aagrawal

+0

제 추측하세요? recorder.js 또는 firefox. 그러나 그것은 야생의 추측입니다. – icedwater

답변

1

WAV의 문제는 파일이 때문에 그들은 단지 기록 1 분만큼 10 메가 바이트를 취할 수, 디스크 공간을 많이 차지, 압축되지 않은 점이다 .

이 해결책은? 음, wav 파일을 mp3로 변환 해 봅시다. wav 파일을 저장 한 다음 변환하면됩니다. 우리는 녹음을 mp3로, 브라우저에서 실시간으로 변환해야합니다.

https://nusofthq.com/blog/recording-mp3-using-only-html5-and-javascript-recordmp3-js/

관련 문제