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

发布于 2024-12-07 02:49:05 字数 90 浏览 4 评论 0原文

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

I have an ogg audio file and some information which is saved as sequence of bytes. I need to pack this audio and information in a single container such as RIFF or something else. I'm searching solutions which can be written under .NET.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

刘备忘录 2024-12-14 02:49:05

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

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

.NET 中进行此类操作的流行框架是 DirectShow.NET 库,但当您明确自己的需求时,您可能最终会使用不同的工具。

另请参阅带有代码片段的相邻线程: Ogg 使用 acm 进行 Riff/Wave 编码

Ogg is a container format. What you perhaps will want is either use some Ogg format tools to attach your data directly to existing file, or re-stream the data into different container format where you have tools to attach your data to.

The formats might be WAV/RIFF, Matroska, MP4. It also perhaps depends what is exactly this additional data, more like a thumbnail, or additional stream (user comments with timestamps etc).

A popular framework for such manipulation in .NET is DirectShow.NET library, but as you clarify your need, you might end up using a different tool.

See also a neighboring thread with a code snippet: Ogg to Riff/Wave encoding with acm

在你怀里撒娇 2024-12-14 02:49:05

如何将 Ogg 文件移动到 Wav 文件C# 中的 Ogg Vorbis 数据

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

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);
                }
            }
        }
    }
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文