作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 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/
我是一名优秀的程序员,十分优秀!