我正在研究一个研究项目,它要求我首先从浏览器录制音频(使用getuserMedia)并以wav格式保存。我的代码如下所示:
navigator.mediaDevices.getUserMedia({ audio: true }).then(stream => {
const chunks = [];
const recorder = new MediaRecorder(stream);
recorder.ondataavailable = e => {
chunks.push(e.data);
if (recorder.state == 'inactive') {
$scope.blob = new Blob(chunks, { type: 'audio/wav' });
$scope.file = new File([$scope.blob], "myFile.wav", {type: 'audio/wav', lastModified: Date.now()});
$scope.blobUrl = URL.createObjectURL($scope.blob);
createAudioElement($scope.blobUrl);
}
};
recorder.start(1000);
$scope.stop = function() {
recorder.stop();
};
}).catch(console.error);
在文件系统上保存$ scope.file后,我使用ffmpeg实用程序([https://www.ffmpeg.org/)将其转换为flac格式。
现在我的问题是ffmpeg工具有时会给我一个错误,说这个文件无法被识别为wav文件。 ffmpeg工具的确切输出是:
ffmpeg-user: Wav to Flac conversion: Invalid data found when processing input
ffmpeg version 3.3.3 Copyright (c) 2000-2017 the FFmpeg developers
built with Apple LLVM version 7.0.2 (clang-700.1.81)
configuration: --prefix=/usr/local/Cellar/ffmpeg/3.3.3 --enable-shared
--enable-pthreads --enable-gpl --enable-version3
--enable-hardcoded-tables
--enable-avresample --cc=clang --host-cflags= --host-ldflags=
--enable-libmp3lame --enable-libx264 --enable-libxvid --enable-opencl
--disable-lzma --enable-vda
libavutil 55. 58.100 / 55. 58.100
libavcodec 57. 89.100 / 57. 89.100
libavformat 57. 71.100 / 57. 71.100
libavdevice 57. 6.100 / 57. 6.100
libavfilter 6. 82.100 / 6. 82.100
libavresample 3. 5. 0 / 3. 5. 0
libswscale 4. 6.100 / 4. 6.100
libswresample 2. 7.100 / 2. 7.100
libpostproc 54. 5.100 / 54. 5.100
有谁知道我为什么会收到此错误?