将 mp4 语音文件转换为 WAV 流

Posted

技术标签:

【中文标题】将 mp4 语音文件转换为 WAV 流【英文标题】:Convert mp4 voice file to WAV stream 【发布时间】:2016-08-23 09:47:49 【问题描述】:

我使用此代码重新采样文件并保存它,但文件听起来像是快进录音:

using (MediaFoundationReader reader = new MediaFoundationReader(url))

    using (ResamplerDmoStream resampledReader = new ResamplerDmoStream(reader, new WaveFormat(16000, 16, 1)))
        
            using (WaveFileWriter waveWriter = new WaveFileWriter(@"c:\test.wav", resampledReader.WaveFormat))
                
                    resampledReader.CopyTo(waveWriter);
                
         

【问题讨论】:

【参考方案1】:

WaveFileWriter 必须与resampledReader 具有相同的WaveFormat。所以将resampledReader.WaveFormat 传递给WaveFileWriter 构造函数。

【讨论】:

如果我需要最终 WAV 为 16kHz、16 位、单声道,我是否应该再次重新采样以确保获得所需的 WAV? 您只需要重新采样一次。使用目标采样率,而不是源采样率。 我根据你的指示重写了代码(有问题的编辑),但它仍然听起来像 FF【参考方案2】:

我不确定重采样是什么意思,但如果您需要从视频中获取 wav,这可行...

using (var video = new MediaFoundationReader(file))

    file = TempWav;
    WaveFileWriter.CreateWaveFile(file, video);

【讨论】:

以上是关于将 mp4 语音文件转换为 WAV 流的主要内容,如果未能解决你的问题,请参考以下文章

使用 NAudio 将 WAV 流转换为 Opus

如何使用 python 将 .264 文件转换为 avi\wav

将 MP3 文件转换为 WAV

如何使用 Nodejs 将 wav 文件转换为 8000hz

如何使用 node.js 将 .pcm 文件转换为 wav 文件?

将 MP4 转换为 WAV