C#读取视频的宽度和高度等信息的方法

本文实例讲述了C#读取视频的宽度和高度等信息的方法。分享给大家供大家参考。具体实现方法如下:

读取方式:使用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;

}

}

除声明外,跑步客文章均为原创,转载请以链接形式标明本文地址
  C#读取视频的宽度和高度等信息的方法

本文地址:  http://www.paobuke.com/develop/c-develop/pbk23307.html

相关内容

c#动态类型,及动态对象的创建,合并2个对象,map实例

C#中for循环、while循环循环执行的方法

LZW压缩算法 C#源码

C# ComboBox的联动操作(三层架构)


C#隐式/显示实现接口方法详解

C#线程同步的三类情景分析

C#中使用Lambda表达式自定义比较器实现两个列表合并实例

C#网络编程基础之进程和线程详解

时间: 2024-10-03 20:10:17

C#读取视频的宽度和高度等信息的方法的相关文章

C#:读取视频的宽度和高度等信息

读取方式:使用ffmpeg读取,所以需要先下载ffmpeg.网上资源有很多. 通过ffmpeg执行一条CMD命令可以读取出视频的帧高度和帧宽度信息. 如图: 蓝线框中可以看到获取到的帧高度和帧宽度. 接下来的事情就简单了.构造一个命令,然后执行就ok.我并未测试过所有视频格式,估计常见的格式应该都支持. 执行命令的代码如下: /// <summary> /// 执行一条command命令 /// </summary> /// <param name="command

Android下在onCreate中获取控件的宽度和高度(通过回调)

有时候需要在onCreate方法中知道某个View组件的宽度和高度等信息, 而直接调用View组件的getWidth().getHeight().getMeasuredWidth().getMeasuredHeight().getTop().getLeft()等方法是无法获取到真实值的,只会得到0. 这是因为View组件布局要在onResume回调后完成. 下面提供实现方法: 第一种: onGlobalLayout回调会在布局完成时自动调用 img1.getViewTreeObserver().

opencv学习之路(2)、读取视频,读取摄像头

一.介绍 视频读取本质上就是读取图像,因为视频是由一帧一帧图像组成的.1秒24帧基本就能流畅的读取视频了. ①读取视频有两种方法: A. VideoCapture cap; cap.open("1.avi"); B. VideoCapture cap("1.avi"); ②循环显示每一帧: while(1) { Mat frame; //定义Mat变量,用来存储每一帧 cap>>frame; //读取当前帧方法一 //cap.read(frame); /

有两种分别用&lt;bgsound&gt;和&lt;embed&gt;&lt;/embed&gt;标签,当用&lt;embed&gt;插入背景音乐时可以设置宽度和高度为0,隐藏播放器。

<bgsound>: <bgsound> 是用来插入背景音乐,但只适用于 ie,其参数设定不多.如下 <bgsound src="your.mid" autostart=true loop=infinite> src="your.mid"设定 midi 档案及路径,可以是相对或绝对.autostart=true是否在音乐档下载完之后就自动播放.true 是,false 否 (内定值).loop=infinite是否自动反复播放.l

获取图像的宽度、高度

string file = "D:\\QQ截图20141205121451.png"; //new一个Image实例,并读取图片 System.Drawing.Image insusImage = System.Drawing.Image.FromFile(file); //实例就可以取得宽度与高度了. Response.Write(insusImage.Width.ToString()+" "+insusImage.Height.ToString()); retu

HTML连载39-外边距合并现象、盒子模型以及宽度和高度

一. 在默认布局的垂直方向上,默认情况下外边距是是不会叠加的,会出现合并现象,谁的外边距较大,就听谁的:但是在水平方向就不会出现这种状况,我们举个例子 span{ display: inline-block; width:100px; height:100px; border:1px solid red; } div{ width:100px; height:100px; border:1px solid green; } /*我们让span的两个盒子,相距100px*/ .hezi1{ mar

设置单元格的宽度和高度

NPOI官方网站:http://npoi.codeplex.com/ 在Excel中,单元格的宽度其实就是列的宽度,因为Excel假设这一列的单元格的宽度肯定一致.所以要设置单元格的宽度,我们就得从列的宽度下手,HSSFSheet有个方法叫SetColumnWidth,共有两个参数:一个是列的索引(从0开始),一个是宽度. 现在假设你要设置B列的宽度,就可以用下面的代码: HSSFWorkbook hssfworkbook = new HSSFWorkbook(); HSSFSheet shee

web前端入门到实战:外边距合并现象、盒子模型以及宽度和高度

一. 在默认布局的垂直方向上,默认情况下外边距是是不会叠加的,会出现合并现象,谁的外边距较大,就听谁的:但是在水平方向就不会出现这种状况,我们举个例子 span{ display: inline-block; width:100px; height:100px; border:1px solid red; } div{ width:100px; height:100px; border:1px solid green; } /*我们让span的两个盒子,相距100px*/ .hezi1{ mar

动态设置图片的宽度和高度

动态设置图片控件的宽度和高度: imageView.getLayoutParams().width=600;imageView.getLayoutParams().height=400; 设置图片(src): imageView.setImageResource(resId); android获得屏幕高度和宽度: 1.WindowManager wm = (WindowManager) getContext()                     .getSystemService(Cont