Преобразование MP3 в Opus ogg с помощью NAudio без ACM или DMO на сервере

Я попытался преобразовать MP3-файл в Opus Ogg, используя следующий код: Naudio float Sample и Concentus.OggFile short Sample, конвертируйте mp3 в opus ogg, используя:
концентрат.оггфайл и NAudio
когда отредактировано немного как ниже:

    using (var mp3Reader = new AudioFileReader(mp3file))
    using (var memo = new MemoryStream())
    {
        var bufferFloat = new float[mp3Reader.Length / (mp3Reader.WaveFormat.BitsPerSample / 8)];

        var count = mp3Reader.Read(bufferFloat, 0, bufferFloat.Length);

        var buffShort = new short[count];
        var scale = (float)(short.MaxValue);
        for (int i = 0; i < count; i++)
        {
            buffShort[i] = (short)(bufferFloat[i] * scale);
        }
        //encoder
        var encoder = OpusEncoder.Create(24000, mp3Reader.WaveFormat.Channels, OpusApplication.OPUS_APPLICATION_AUDIO);

        encoder.Bitrate = 65536;//64kbps

        //tags
        var tags = new OpusTags();
        tags.Fields[OpusTagName.Title] = "Title";
        tags.Fields[OpusTagName.Artist] = "Artist";

        //
        var oggOut = new OpusOggWriteStream(encoder, memo, tags, 24000);

        oggOut.WriteSamples(buffShort, 0, buffShort.Length);
        oggOut.Finish();
    }  

он работает отлично, но когда я запускаю код с удаленного сервера на общем хостинге, он не запускается из-за отсутствия кодеков ACM или DMO.
Поэтому, когда я пытаюсь использовать NLayer.NAudioSupport и должен изменить:

using (var mp3Reader = new AudioFileReader(mp3file))  

чтобы:

var builder = new Mp3FileReader.FrameDecompressorBuilder(wf => new Mp3FrameDecompressor(wf));
using (var mp3Reader = new Mp3FileReader(source, builder)) 

эта строка:

var count = mp3Reader.Read(bufferFloat, 0, bufferFloat.Length);

Независимо от того, что я делаю, считайте через это исключение: Попытка прочитать за концом потока!!

Поэтому, я буду очень признателен, если кто-нибудь покажет мне, как это достигается, поскольку у меня мало или нет звука.

0 ответов

Другие вопросы по тегам