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

本文关键字:RIFF 容器 文件 OGG 音频 | 更新日期: 2023-09-27 18:10:02

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

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

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

格式可能是WAV/RIFF、Matroska、MP4。这也可能取决于这个额外的数据到底是什么,更像是一个缩略图,或者额外的流(带时间戳的用户评论等)。

在。net中,DirectShow是一个流行的框架。. NET库,但是当您明确您的需要时,您可能最终会使用不同的工具。

参见相邻线程的代码片段:Ogg to Riff/Wave encoding with acm

如何在c#中使用Ogg Vorbis数据将Ogg文件移动到Wav文件

    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);
                }
            }
        }
    }