有没有人有任何示例asp.net C#代码从youtube视频链接中提取音频并将其另存为mp3文件。有人建议使用我安装的wget和ffmpeg并尝试shell命令,但下面会得到一个例外。示例代码如下所示。
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();
答案 0 :(得分:3)
您应该使用WebClient
class下载文件,并使用ffmpeg-sharp对其进行转码。
答案 1 :(得分:3)
您看到“找不到文件”,因为您没有指定有效的文件名,例如:
"C:\\Program Files\\GnuWin32\\bin\\wget.exe http://www.youtube.com/get_video?video_id=... | ffmpeg -i - audio.mp3"
上面不是文件名,它是一个文件名加上一些参数,然后用管道输送到另一个可执行文件。
当你试图在这里运行两个可执行文件(wget和ffmpeg)时,这里的一种方法是编写一个包装这两个可执行调用的脚本(例如批处理文件),然后执行脚本并将url参数传递给它
答案 2 :(得分:0)
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。