Web Audio API - запіс у фармаце MP3?

Я пытаюся, таму што я не мог знайсці адказ у любым месцы. Я паспяхова рэалізаваны RecorderJS , каб запісаць мікрафоны ўваход у JS. Тым не менш, запісаны файл WAV, які прыводзіць да стварэння вялікіх файлаў. Я шукаю спосаб запісу з JS непасрэдна ў MP3, або кадзіраваць біты неяк MP3 замест WAV.

Як гэта можна зрабіць? Ёсць Web Audio API функцыя, якая можа зрабіць гэта ці JS MP3 кодэр нейкі?

16
Дзякуй, я гляджу ў Emscripten, але я да гэтага часу не разумею, як гэта можа дапамагчы.
дададзена аўтар Light, крыніца
Дзякуй, я гляджу ў Emscripten, але я да гэтага часу не разумею, як гэта можа дапамагчы.
дададзена аўтар Light, крыніца
Я ведаю толькі наадварот дэкадавання, што азначае пераход ад MP3 ў WAV - github.com/audiocogs/mp3 .js . Вы, верагодна, трэба капацца ў github.com/kripken/emscripten , каб атрымаць WAV ў MP3 кодэр ў JS.
дададзена аўтар Stasik, крыніца
Ну што вам трэба, каб атрымаць C-Пісьмовае WAV-MP3-дэкодэр, і чым дэкадаваць WAV ў MP3 у браўзэры :)
дададзена аўтар Stasik, крыніца
Ну што вам трэба, каб атрымаць C-Пісьмовае WAV-MP3-дэкодэр, і чым дэкадаваць WAV ў MP3 у браўзэры :)
дададзена аўтар Stasik, крыніца

12 адказы

There's a library written in pure javascript, called lamejs. To encode mp3s from raw audio. It is much faster than emscripten compile of libmp3lame. https://github.com/zhuker/lamejs

Прыклад выкарыстання:

lib = new lamejs();
mp3encoder = new lib.Mp3Encoder(1, 44100, 128); //mono 44.1khz encode to 128kbps
samples = new Int16Array(44100); //one second of silence
var mp3 = mp3encoder.encodeBuffer(samples); //encode mp3
6
дададзена
lamejs працаваў добра для мяне. Гэта, здаецца, няма ніякіх праблем з падтрыманнем з рэальным часам, ухіляючы неабходнасць у працоўных патоках. Я стварыў тэставую старонку на мой сайт з падрабязным тлумачэннем.
дададзена аўтар TeasingDart, крыніца

There's a library written in pure javascript, called lamejs. To encode mp3s from raw audio. It is much faster than emscripten compile of libmp3lame. https://github.com/zhuker/lamejs

Прыклад выкарыстання:

lib = new lamejs();
mp3encoder = new lib.Mp3Encoder(1, 44100, 128); //mono 44.1khz encode to 128kbps
samples = new Int16Array(44100); //one second of silence
var mp3 = mp3encoder.encodeBuffer(samples); //encode mp3
6
дададзена
lamejs працаваў добра для мяне. Гэта, здаецца, няма ніякіх праблем з падтрыманнем з рэальным часам, ухіляючы неабходнасць у працоўных патоках. Я стварыў тэставую старонку на мой сайт з падрабязным тлумачэннем.
дададзена аўтар TeasingDart, крыніца

I have found a nice library with live demos: MediaStreamRecorder

One of demos is here: Audio Recording

RecordRTC is also can be useful but MSR it seems is easier to start with.

2
дададзена

I have found a nice library with live demos: MediaStreamRecorder

One of demos is here: Audio Recording

RecordRTC is also can be useful but MSR it seems is easier to start with.

2
дададзена

Я быў засмучаны з гэтай праблемай, і існуючыя рашэння, так што я прыдумаў што-небудзь прасцей:

https://github.com/sb2702/audioRecord.js

<�Моцны> Выкарыстанне

Стварэнне аб'екта магнітафона (асінхронны, таму што патрабуе дазволаў карыстальніка)

    Recorder.new(function(recorder){ 

    }); 

пачаць запіс

         recorder.start();        

прыпынак запісу

         recorder.stop();    

Экспарт у фармаце mp3

         recorder.exportMP3(function(mp3Blob){ 

            console.log("Here is your blob: " + URL.createObjectURL(mp3Blob));

          });

У асноўным на аснове RecorderJS, але змяніў некаторыя рэчы вакол, каб экспартаваць у mp3 файлы, а не бадзяцца вакол з AudioContext/navigator.getUs

2
дададзена

Я быў засмучаны з гэтай праблемай, і існуючыя рашэння, так што я прыдумаў што-небудзь прасцей:

https://github.com/sb2702/audioRecord.js

<�Моцны> Выкарыстанне

Стварэнне аб'екта магнітафона (асінхронны, таму што патрабуе дазволаў карыстальніка)

    Recorder.new(function(recorder){ 

    }); 

пачаць запіс

         recorder.start();        

прыпынак запісу

         recorder.stop();    

Экспарт у фармаце mp3

         recorder.exportMP3(function(mp3Blob){ 

            console.log("Here is your blob: " + URL.createObjectURL(mp3Blob));

          });

У асноўным на аснове RecorderJS, але змяніў некаторыя рэчы вакол, каб экспартаваць у mp3 файлы, а не бадзяцца вакол з AudioContext/navigator.getUs

2
дададзена

Кадаваньне ў меншыя фарматы ў цяперашні час падтрымліваецца толькі Firefox:

<�Код> Chrome Firefox (Gecko) Internet Explorer Opera Safari (WebKit) Не падтрымліваецца 25,0 (25,0) не падтрымліваецца не падтрымліваецца не падтрымліваецца

AFAIK толькі OGG падтрымліваецца. Але лепш, чым OGG WAV.

1
дададзена

Кадаваньне ў меншыя фарматы ў цяперашні час падтрымліваецца толькі Firefox:

<�Код> Chrome Firefox (Gecko) Internet Explorer Opera Safari (WebKit) Не падтрымліваецца 25,0 (25,0) не падтрымліваецца не падтрымліваецца не падтрымліваецца

AFAIK толькі OGG падтрымліваецца. Але лепш, чым OGG WAV.

1
дададзена

Запіс mp3 з дапамогай JavaScript без якіх-небудзь іншых рамак з дапамогай вэб-працаўніка, вы можаце выкарыстаць гэты праект: https://GitHub. кім/nusofthq/Recordmp3js , які таксама вельмі добра растлумачана тут:

http://audior.ec/blog/запісы-mp3-выкарыстоўваючы толькі-html5-і-Javascript-recordmp3-JS/

Пры гэтым, гэта таксама можна запісаць у файл .mp3 і зрабіць яго загружаным.

1
дададзена

Запіс mp3 з дапамогай JavaScript без якіх-небудзь іншых рамак з дапамогай вэб-працаўніка, вы можаце выкарыстаць гэты праект: https://GitHub. кім/nusofthq/Recordmp3js , які таксама вельмі добра растлумачана тут:

http://audior.ec/blog/запісы-mp3-выкарыстоўваючы толькі-html5-і-Javascript-recordmp3-JS/

Пры гэтым, гэта таксама можна запісаць у файл .mp3 і зрабіць яго загружаным.

1
дададзена