Конвертировать MP4 в Ogg с C # - PullRequest
1 голос
/ 22 июня 2010

Кто-нибудь знает простой способ преобразования файла mp4 в файл ogg?

Нужно это сделать, но я не очень хорошо знаю об этом, и все, что я могу найти, это программы, а не примеры или библиотеки.

Заранее спасибо

Ответы [ 3 ]

6 голосов
/ 22 июня 2010

Я бы порекомендовал отправить это в FFMPEG - http://www.ffmpeg.org/ - используя Process и аргументы командной строки. Вы можете перенаправить ввод / вывод, если вам нужно (например, ведение журнала). Просто сделайте что-то вроде process.WaitForExit () после того, как вы его запустили. Вы можете сделать это в фоновом потоке ( BackgroundWorker , ThreadPool и т. Д.), Если вам не нужно блокировать пользовательский интерфейс.

4 голосов
/ 13 ноября 2015

Расширяя ответ Чада, я использовал NReco.VideoConverter, который является полезной оболочкой для FFMPEG .Мой код для преобразования MP4 в OGG выглядит следующим образом.

1. Сохраните файл во временный файл в локальном хранилище.

var path = Path.GetTempPath() + name;
using (var file = File.Create(path))
{
 stream.Seek(0, SeekOrigin.Begin);
 await stream.CopyToAsync(file);
 file.Close();
 return path;
}

2. Теперь используйте конвертер видео для преобразованияфайл простой!

var output = new MemoryStream();
var ffMpeg = new FFMpegConverter();
ffMpeg.ConvertMedia(filePath, output, Format.ogg);
output.Seek(0, SeekOrigin.Begin);
return output;
1 голос
/ 31 января 2014
static void Mp4ToOgg(string fileName)
{
    DsReader dr = new DsReader(fileName);
    if (dr.HasAudio)
    {
        string waveFile = fileName + ".wav";
        WaveWriter ww = new WaveWriter(File.Create(waveFile),
            AudioCompressionManager.FormatBytes(dr.ReadFormat()));
        ww.WriteData(dr.ReadData());
        ww.Close();
        dr.Close();
        try
        {
            Sox.Convert(@"sox.exe", waveFile, waveFile + ".ogg", SoxAudioFileType.Ogg);
        }
        catch (SoxException ex)
        {
            throw;
        }

    }
}

из Как преобразовать файл mp4 в файл ogg

...