我想管youtube-dl輸出到ffmpeg作爲輸入,但似乎無法讓管道部分工作。在正常的CMD,我可以做類似於c#使用管道來獲得輸出流
C:\YT\youtube-dl.exe -o - https://www.youtube.com/watch?v=L4aLQ0ki9Tk | ffmpeg -i pipe:0 -f asf pipe:1
但在c#中這是行不通的。目前,我已C#創建2個進程:
一個YouTube的-DL
C:\YT\youtube-dl.exe -o - https://www.youtube.com/watch?v=L4aLQ0ki9Tk
,另一個用於FFmpeg的
ffmpeg -i {yt.StandardOutput} -f s16le -ar 48000 -ac 2 pipe:1
的問題是與{yt.StandardOutput}
(其中YT是的進程名youtube-dl進程和-i
指定輸入文件/流)。使用管道:0也不起作用,我不知道如何將第一個管道的輸出連接到第二個管道的輸入。
見[該SO](http://stackoverflow.com/questions/13806153/example-of-named-pipes.aspx)。然而,命名管道有很多開銷;你應該閱讀這個[msdn文章](https://msdn.microsoft.com/en-us/library/bb546102(v = vs.110).aspx)關於使用C#演示代碼的匿名管道。 – RamblinRose