mit AudioContext von Javascript das Mischen von Audio ist chived und für den Export der Audio-Mix habe ich OfflineAudioContext und, n, lame js, um das decodierte Audio zu kodieren, jetzt das Expoort funktioniert gut, aber es ist sehr langsam, ich suche ein effizienter Weg, um das schneller zu machen als das aktuelle.Wie arrayBuffer in MP3-Audio konvertieren?
8
A
Antwort
0
https://github.com/TooTallNate/node-lame
Die oben ist der LAME-Encoder, die den Codierungsprozess Ihrer PCM-Daten der Fall ist.
2
prüfen diese [Thema] [1]
document.querySelector('input').onchange = function(){
var fileReader = new FileReader;
fileReader.onload = function(){
var arrayBuffer = this.result;
snippet.log(arrayBuffer);
snippet.log(arrayBuffer.byteLength);
}
fileReader.readAsArrayBuffer(this.files[0]);
var url = URL.createObjectURL(this.files[0]);
audio_player.src = url;
audio_player.play();
};
<!-- Provides the `snippet` object, see http://meta.stackexchange.com/a/242144/134069 -->
<script src="http://tjcrowder.github.io/simple-snippets-console/snippet.js"></script>
<input id="audio_file" type="file" accept="audio/*" />
<audio id="audio_player" />
Verwandte Themen
- 1. Wie gehen von Blob zu Arraybuffer
- 2. Binärdaten abrufen, ohne Arraybuffer
- 3. Bild von ArrayBuffer in Nodejs erstellen
- 4. Wie man einen ArrayBuffer in Scala flacht
- 5. Arraybuffer AngularJS POST-Anfrage
- 6. Fehler: ArrayBuffer ist undefined
- 7. Einstellwerte in Arraybuffer von Index in Scala
- 8. Wie bekomme ich Binär-String von ArrayBuffer?
- 9. JS: ArrayBuffer von unbekannter Größe
- 10. ArrayBuffer vs ArrayBuilder in der Scala
- 11. Wie lese ich Binärdaten in AngularJS in einem ArrayBuffer?
- 12. - = und ++ = Komplexität auf Scala ArrayBuffer
- 13. Haben ArrayBuffer eine maximale Länge?
- 14. javascript/gwt: Konvertierung von Uint8Array oder ArrayBuffer in ImageData Element
- 15. Ein ArrayBuffer in einen anderen ArrayBuffer mit einem Offset lesen/schreiben/kopieren
- 16. Verwenden Sie ArrayBuffer in sequentiell ausgeführten Threads?
- 17. Knoten js - Speichern großer Zahlen in Arraybuffer
- 18. wie ByteArray in AudioBuffer konvertieren und in Javascript
- 19. Lesen String von ArrayBuffer erhalten über Websocket
- 20. Laden Sie eine Sounddatei als arrayBuffer in Ionic
- 21. Fehlende Parametertyp für eine erweiterte Funktion in Scala Arraybuffer
- 22. Canvas-Inhalt in ArrayBuffer serialisieren und erneut deserialisieren
- 23. senden c-like struct als arrayBuffer über udp chrome socket
- 24. WebKit entspricht Firefox's "moz-chunked-arraybuffer" xhr responseType
- 25. Daten, die als ArrayBuffer gesendet werden, werden als Blob empfangen
- 26. Wie erstellt man einen ArrayBuffer und einen Daten-URI von Blob- und File-Objekten ohne FileReader?
- 27. eine idiomatische Möglichkeit, einen Scala ArrayBuffer zu initialisieren?
- 28. wie hexadezimal in RGB konvertieren
- 29. Wie HTML in XHTML konvertieren?
- 30. Wie XIB in Storyboard konvertieren?
Es gibt derzeit keinen besseren Cross-Browser-Weg, dies zu tun. Sie können stattdessen OGG verwenden ([Firefox kann nativ auf OGG aufnehmen] (https://www.webrc-experiment.com/RecordRTC/AudioVideo-on-Firefox.html), Chrome benötigen Sie [einen JS OGG Encoder] (https://github.com/astroza/chrome_ogg_encoder)). Der schnellste Weg, MP3 zu kodieren, ist [PNACL] (http://www.chromium.org/nativeclient/pnacl/introduction-to-portable-native-client) und [NACLPorts Lame] (https://github.com /anvio/naclports/tree/master/libraries/lame-3.99-5), aber es ist nur Chrome und nicht trivial! – CodingIntrigue
Ich habe es nicht selbst getestet, aber laut dem LameJS-Projekt sollte es "20 mal schneller als in Echtzeit" laufen. Beim Blick auf den Code scheint JavaScript 'Float32Array' zu verwenden. Ich würde prüfen, ob Ihr Browser diese Technologie unterstützt, und auch, ob WebGL für GPU-basierte Matrixmultiplikation unterstützt wird (wahrscheinlich). Wenn nicht, werde ich es mit einem Browser versuchen, der das macht und dann die Geschwindigkeit überprüfe. –
Sie könnten emscripten und die lame-Encoder-Quelle kompilieren. Keine Ahnung, wie das für Sie funktionieren würde und es könnte schwieriger sein, als es Ihnen wert ist. – Goblinlord