Я пытаюсь передать вывод youtube-dl в ffmpeg в качестве входных данных, но не может показаться, что часть трубопровода работает. В нормальном cmd я могу сделать что-то вродеC# используя каналы для получения выходного потока
но в 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}
(где уг является имя процесса процесс youtube-dl и -i
задает входной файл/поток). Использование pipe: 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