gpt4 book ai didi

c++ - 在命令行中使用 dshow 时 CreateProcess 失败

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:27:33 25 4
gpt4 key购买 nike

尝试使用 CreateProcess 启动 ffmpeg。

问题:

1) 不能在命令行中使用dshow

2) 使用 STDIN 管道的 RTMP 流不显示流。

问题:

1) 与 CreateProcess api 有关的命令行中有哪些注意事项?

2) 什么是轮回?如何解决该问题?

此代码有效:

BOOL bSuccess = CreateProcess(NULL,
L"ffmpeg.exe -y -loop 1 -i kites.jpg out.mp4",
NULL,
NULL,
TRUE,
CREATE_NEW_CONSOLE,
NULL,
NULL,
&siStartInfo,
&piProcInfo);

使用 dshow 时 CreateProcess 失败。但是,它在控制台中用作命令行。

BOOL bSuccess = CreateProcess(NULL,
L"ffmpeg.exe -y -loop 1 -i kites.jpg -f dshow -i audio=\"Stereo Mix(Realtek High Definition Audio)\" out.mp4",
NULL,
NULL,
TRUE,
CREATE_NEW_CONSOLE,
NULL,
NULL,
&siStartInfo,
&piProcInfo);

已编辑:(有绝对路径,还是不行)

std::wstring cmdArgslistSetChannel = L"ffmpeg.exe -y -loop 1 -i c:\test\kites.jpg  -f dshow  -i audio=\"Stereo Mix(Realtek High Definition Audio)\"  out.mp4";
bSuccess = CreateProcess(NULL,
&cmdArgslistSetChannel[0],
NULL,
NULL,
TRUE,
CREATE_NEW_CONSOLE,
NULL,
NULL,
&siStartInfo,
&piProcInfo);

最佳答案

你快到了。您可以像这样指定绝对路径。确保文件夹名称中没有空格,否则 ffmpeg 命令可能会再次失败。如果 ffmpeg 位于另一个文件夹中,您也应该指定路径。

std::wstring cmdArgslistSetChannel = L"c:\test\ffmpeg.exe -y -loop 1 -i \"c:\\test\\kites.jpg\"  -f dshow  -i audio=\"Stereo Mix(Realtek High Definition Audio)\"  out.mp4";

关于c++ - 在命令行中使用 dshow 时 CreateProcess 失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56746326/

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