Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何将OGG音频文件打包到RIFF容器?_C#_.net_Audio_Ogg_Riff - Fatal编程技术网

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

C# 如何将OGG音频文件打包到RIFF容器?,c#,.net,audio,ogg,riff,C#,.net,Audio,Ogg,Riff,我有一个ogg音频文件和一些以字节顺序保存的信息。我需要将这些音频和信息打包在一个容器中,比如RIFF或其他东西。我正在搜索可以在.NET下编写的解决方案。Ogg是一种容器格式。您可能想要的是使用一些Ogg格式的工具将数据直接附加到现有文件,或者将数据重新流化到不同的容器格式中,您可以在其中使用工具将数据附加到不同的容器格式 格式可能是WAV/RIFF、Matroska、MP4。它还可能取决于这些附加数据的确切内容,更像是缩略图,或附加流(带有时间戳的用户注释等) 在.NET中,这种操作的一个流

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

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

格式可能是WAV/RIFF、Matroska、MP4。它还可能取决于这些附加数据的确切内容,更像是缩略图,或附加流(带有时间戳的用户注释等)

在.NET中,这种操作的一个流行框架是DirectShow.NET库,但当您阐明您的需求时,您可能会使用另一种工具

另请参见带有代码段的相邻线程:

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