网上资源有很多

时间:2021-12-11 08:28:19

读取方法:使用ffmpeg读取,所以需要先下载ffmpeg。网上资源有很多。

通过ffmpeg执行一条CMD命令可以读取出视频的帧高度和帧宽度信息。

运行效果如下图所示:

网上资源有很多

蓝线框中可以看到获取到的帧高度和帧宽度。

接下来的工作就简单了。结构一个命令,然后执行就ok。我并未测试过所有视频格局,预计常见的格局应该都撑持。

执行命令的代码如下:


代码如下:

/// <summary>

/// 执行一条command命令

/// </summary>

/// <param name=”command”>需要执行的Command</param>

/// <param name=”output”>输出</param>

/// <param name=”error”>错误</param>

public static void ExecuteCommand(string command,out string output,out string error)

{

try

{

//创建一个进程

Process pc = new Process();

pc.StartInfo.FileName = command;

pc.StartInfo.UseShellExecute = false;

pc.StartInfo.RedirectStandardOutput = true;

pc.StartInfo.RedirectStandardError = true;

pc.StartInfo.CreateNoWindow = true;

//启动进程

pc.Start();

//筹备读出输出流和错误流

string outputData = string.Empty;

string errorData = string.Empty;

pc.BeginOutputReadLine();

pc.BeginErrorReadLine();

pc.OutputDataReceived += (ss, ee) =>

{

outputData += ee.Data;

};

pc.ErrorDataReceived += (ss, ee) =>

{

errorData += ee.Data;

};

//期待退出

pc.WaitForExit();

//*进程

pc.Close();

//返回流功效

output = outputData;

error = errorData;

}

catch(Exception)

{

output = null;

error = null;

}

}