将 ogg 音频文件转换为 opus 音频文件

问题描述

我正在用 Html5 录制 ogg 文件。记录的很好。但我想将 OGG 文件转换为 OPUS 格式的文件。我试过很多库都没有按预期工作。

以下代码返回如下错误

帧大小必须是以下之一:2.5、5、10、20、40 或 60。 参数名称:长度。

using (FileStream fileIn = new FileStream(@"C:\Users\Downloads\1.ogg",FileMode.Open))
using (MemoryStream pcmStream = new MemoryStream())
{
    short[] packets = new short[0];
    var decoder = Concentus.Structs.OpusDecoder.Create(48000,2);
    var oggIn = new Concentus.Oggfile.OpusOggReadStream(decoder,fileIn);
    while (oggIn.HasNextPacket)
    {
        short[] packet = oggIn.DecodeNextPacket();
        if (packet != null)
        {
            for (int i = 0; i < packet.Length; i++)
            {
                var oggbytes = BitConverter.GetBytes(packet[i]);
                pcmStream.Write(bytes,bytes.Length);
            }
            if (packets != null && packets.Length > 0)
                Combine(packets,packet);
            else
            {
                packets = new short[packet.Length];
                packets = packet;
            }
        }
    }
    pcmStream.Position = 0;

    using (var memoryStream = new MemoryStream())
    {
        pcmStream.copyTo(memoryStream);
        var encoder = new OpusDotNet.OpusEncoder(OpusDotNet.Application.Audio,48000,2);
        opbytes = new byte[packets.Length];
        var obytes = encoder.Encode(memoryStream.ToArray(),packets.Length,out int encodedLength);
        System.IO.File.WriteallBytes(@"C:\Users\Downloads\new.opus",memoryStream.ToArray());
    }
}

请帮我在 C# 中将 OGG 音频文件转换为 OPUS 音频文件

提前致谢, 摩尼

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)