gpt4 book ai didi

c# - ffmpeg 将命令的输出写入文本文件不适用于 C#

转载 作者:行者123 更新时间:2023-12-04 22:47:57 26 4
gpt4 key购买 nike

我在 C# 进程中使用 ffmpeg 命令。我使用命令来更改视频的音频并且它正在工作,但我还想将输出写入文本文件。新命令从 cmd 工作,但显然,它在使用 C# 进程时不起作用。
不适用于进程的命令是:

ffmpeg -i videoPath -i audioPath -c:v copy -map 0:v:0 -map 1:a:0 -shortest newVideoPath > textFilePath 2>&1
没有最后一部分,工作命令是相同的:
ffmpeg -i videoPath -i audioPath -c:v copy -map 0:v:0 -map 1:a:0 -shortest newVideoPath
这是 C# 代码:
 Process proc = new Process();
proc.StartInfo.FileName = ffmpegPath;
proc.StartInfo.RedirectStandardError = true;
proc.StartInfo.RedirectStandardOutput = true;
proc.StartInfo.UseShellExecute = false;
proc.StartInfo.CreateNoWindow = true;
proc.StartInfo.Arguments = "-i " + videoPath + " -i " + newAudioPath + " -c:v copy" + " -map" + " 0:v:0 " + "-map 1:a:0 " + "-shortest " + newVideoPath + " > " + @"F:\Videos\log.txt"+ " 2>&1";
proc.EnableRaisingEvents = true;
proc.Exited += UpdateVideoSource;
proc.Start();
我一遍又一遍地检查论点,寻找缺失的空格,但没有任何效果。
可能是什么问题?

最佳答案

ffmpeg 有选项 -report :

Dump full command line and log output to a file named program-YYYYMMDD-HHMMSS.log in the current directory.


默认情况下,生成的文件遵循部分 program-YYYYMMDD-HHMMSS.log .要指定文件,您可以设置环境变量变量 FFREPORT :
FFREPORT=file=ffreport.log:level=verbose
在 C# 中,您可以通过 ProcessStartInfo.EnvironmentVariables 启动具有特定环境变量的进程。 :
Process proc = new Process();
proc.StartInfo.FileName = ffmpegPath;
proc.StartInfo.RedirectStandardError = false; // Don't redirect the output
proc.StartInfo.RedirectStandardOutput = false;
proc.StartInfo.UseShellExecute = false;
proc.StartInfo.CreateNoWindow = true;
//Add the argument -report
proc.StartInfo.Arguments = "-i " + videoPath + " -i " + newAudioPath + " -c:v copy" + " -map" + " 0:v:0 " + "-map 1:a:0 " + "-shortest " + newVideoPath + " -report";
//Set the output file and the log level
proc.StartInfo.EnvironmentVariables["FFREPORT"] = "file=ffreport.log:level=verbose";
proc.EnableRaisingEvents = true;
proc.Exited += UpdateVideoSource;
proc.Start();
我还没有测试,但这是一个好的开始。

关于c# - ffmpeg 将命令的输出写入文本文件不适用于 C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66030026/

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