Делает у любого есть любой демонстрационный asp.net код C#, чтобы извлечь аудио из видеосвязи YouTube и сохранить его как mp3 файл. Кто-то рекомендовал использовать wget и ffmpeg, который я установил и пытаюсь окружить команду, но получить исключение ниже. Пример кода упоминается ниже.
System.Diagnostics.Process proc = new System.Diagnostics.Process();
proc.EnableRaisingEvents = false;
proc.StartInfo.FileName = "C:\\Program Files\\GnuWin32\\bin\\wget.exe http://www.youtube.com/get_video?video_id=... | ffmpeg -i - audio.mp3";
proc.Start();
Вы видите «файл не найден», потому что вы не указываете допустимое имя файла, например:
"C:\\Program Files\\GnuWin32\\bin\\wget.exe http://www.youtube.com/get_video?video_id=... | ffmpeg -i - audio.mp3"
Вышеупомянутое не является именем файла, это имя файла плюс некоторые аргументы, которые затем передается по конвейеру другому исполняемому файлу.
Поскольку вы пытаетесь запустить здесь два исполняемых файла (wget и ffmpeg), подход здесь будет заключаться в написании сценария (например, пакетного файла), который завершает эти два исполняемых вызова, а затем выполняет сценарий и передает аргумент url в Это.
Вы должны использовать класс WebClient
для загрузки файла и использовать ffmpeg-sharp для его перекодирования.
Метод Process.Start (string) предназначен для запуска процесса без аргументов. Таким образом, как сказал chibacity, вы получите исключение, потому что вся строка «C: \ Program Files \ GnuWin32 \ bin \ wget.exe http://www.youtube.com/get_video?video_id= ... | ffmpeg -i - audio.mp3 "рассматривается как имя исполняемого файла. Чтобы запустить процесс с аргументами, используйте метод Process.Start (string, string): http://msdn.microsoft.com/en-us/library/aa326952%28v=VS.71%29.aspx .