Ошибка: путь не имеет допустимой формы при использовании NReco.VideoConverter

Я пытаюсь преобразовать.flac-файл в.wav-файл с помощью NReco.VideoConverter, но получаю сообщение об ошибке и не знаю почему. Это фрагмент кода, который я использую для преобразования:

        //Create the NReco.VideoConverter.FFMpegConverter object
        var ffmpeg = new FFMpegConverter();

        //inputFile will be something like this:
        //type: string, "C:\\some\\folder\\fullTrackName" + ".flac"
        var inputFile = Path.Combine(downloadFolder + fullTrackNameNoExtension + ".flac");

        //outputFile will be something like this:
        //type: string, "C:\\some\\folder\\musicfile" + ".wav"
        var outputFile = Path.Combine(downloadFolder + fullTrackNameNoExtension + ".wav");

        //Convert the file using NReco.VideoConverter.FFMpegConverter
        ffmpeg.ConvertMedia(inputFile, outputFile, null);

inputFile / outputFile будет выглядеть следующим образом: вот что я вижу, когда вставляю точку останова и проверяю значения в / outputFile:

string, inputFile / outputFile: "Z: \\ Downloads \\ Audio - Файл (Original Mix).flac" (или.wav)

И это ошибка, которую я получаю при запуске ffmpeg.ConvertMedia:

System.ArgumentException: The path is not of a legal form.
   at System.IO.Path.LegacyNormalizePath(String path, Boolean fullCheck, Int32 maxPathLength, Boolean expandShortPaths)
   at System.IO.Path.NormalizePath(String path, Boolean fullCheck, Int32 maxPathLength, Boolean expandShortPaths)
   at System.IO.Path.GetFullPathInternal(String path)
   at System.IO.File.InternalGetLastWriteTimeUtc(String path, Boolean checkHost)
   at NReco.VideoConverter.FFMpegConverter.EnsureFFMpegLibs()
   at NReco.VideoConverter.FFMpegConverter.ConvertMedia(Media input, Media output, ConvertSettings settings)
   at NReco.VideoConverter.FFMpegConverter.ConvertMedia(String inputFile, String inputFormat, String outputFile, String outputFormat, ConvertSettings settings)
   at NReco.VideoConverter.FFMpegConverter.ConvertMedia(String inputFile, String outputFile, String outputFormat)
   at APPLICATION_Name.APPLICATION_Class.ConvertFile(String downloadFolder, String fullTrackName, String fullTrackNameNoExtension, String downloadQuality, String downloadType) in X:\APPLICATION_Name\DownloadTrack.cs:line 244

1 ответ

Решение

Исключение выдается из метода "FFMpegConverter.EnsureFFMpegLibs", который извлекает двоичные файлы ffmpeg при первом использовании (по умолчанию в папку bin приложения), и я могу предположить, что по какой-то причине он определен неправильно (или, возможно, используется сетевой путь).

Вы можете попытаться изменить расположение файла ffmpeg.exe, указав свойство FFMpegConverter.FFMpegToolPath (приложение.net должно иметь достаточно прав для записи в эту папку).

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