如何将OGG音频文件打包到RIFF容器?

时间:2011-09-30 08:27:14

标签: c# .net audio ogg riff

我有一个ogg音频文件和一些保存为字节序列的信息。我需要将这些音频和信息打包在一个容器中,例如RIFF或其他东西。我正在搜索可以在.NET下编写的解决方案。

2 个答案:

答案 0 :(得分:1)

Ogg是一种容器格式。您可能需要的是使用一些Ogg格式工具将数据直接附加到现有文件,或者将数据重新流式传输到不同的容器格式,您可以使用工具将数据附加到其中。

格式可能是WAV / RIFF,Matroska,MP4。它也可能取决于这些附加数据究竟是什么,更像是缩略图或其他流(带有时间戳的用户评论等)。

.NET中这种操作的流行框架是DirectShow.NET库,但是当您澄清需求时,最终可能会使用不同的工具。

另请参阅带有代码段的相邻主题:Ogg to Riff/Wave encoding with acm

答案 1 :(得分:0)

How to move Ogg file to Wav file with Ogg Vorbis data in C#

    static void OggToWavWithOgg()
    {
        string fileName = @"e:\Down\fortuna.ogg";
        using (DsReader dr = new DsReader(fileName))
        {
            if (dr.HasAudio)
            {
                short oggFormatTag = 26479;
                IntPtr format = dr.ReadFormat();
                WaveFormat waveFormat = AudioCompressionManager.GetWaveFormat(format);
                IntPtr formatOgg = AudioCompressionManager.GetCompatibleFormat(format, oggFormatTag);
                using (WaveWriter ww = new WaveWriter(File.Create(fileName + ".wav"),
                    AudioCompressionManager.FormatBytes(formatOgg)))
                {
                    AudioCompressionManager.Convert(dr, ww, true);
                }
            }
        }
    }