gpt4 book ai didi

c# 使用管道获取输出流

转载 作者:行者123 更新时间:2023-12-04 23:27:07 26 4
gpt4 key购买 nike

我正在尝试将 youtube-dl 输出作为输入传输到 ffmpeg,但似乎无法让管道部分正常工作。在正常的cmd中,我可以做类似的事情

 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 指定输入文件/流)。使用 pipe:0 也不起作用,我不确定如何将第一个的管道输出链接到第二个的输入。

最佳答案

在进行处理而不是开始 youtube-dl.exe 时和 ffmpeg作为单独的进程,使用 cmd.exe /C 从您的代码中启动命令 shell。这将允许您使用管道将上下文从一个程序流向另一个程序。

var proc = Process.Start("cmd.exe", 
"/C C:\YT\youtube-dl.exe -o - https://www.youtube.com/watch?v=L4aLQ0ki9Tk | ffmpeg -i pipe:0 -f asf pipe:1");

关于c# 使用管道获取输出流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41417552/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com