• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >C#教程 > C#读取视频的宽度和高度等信息的方法

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

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-28

通过本文主要向大家介绍了c#获取屏幕宽度,c#datagridview宽度,c#textbox高度,c#获取任务栏高度,c#combobox高度等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

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

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

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

运行效果如下图所示:

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

接下来的事情就简单了。构造一个命令,然后执行就ok。我并未测试过所有视频格式,估计常见的格式应该都支持。

执行命令的代码如下:
/// 执行一条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;
    }
}</div>

获取高度的宽度的代码如下:(这里假设ffmpeg存在于应用程序目录)
/// 获取视频的帧宽度和帧高度
/// </summary>
/// <param name="videoFilePath">mov文件的路径</param>
/// <returns>null表示获取宽度或高度失败</returns>
public static void GetMovWidthAndHeight(string videoFilePath, out int? width, out int? height)
{
    try
    {
 //判断文件是否存在
 if (!File.Exists(videoFilePath))
 {
     width = null;
     height = null;
 }

 //执行命令获取该文件的一些信息
 string ffmpegPath = new FileInfo(Process.GetCurrentProcess().MainModule.FileName).DirectoryName + @"\ffmpeg.exe";

 string output;
 string error;
 Helpers.ExecuteCommand("\"" + ffmpegPath + "\"" + " -i " + "\"" + videoFilePath + "\"",out output,out error);
 if(string.IsNullOrEmpty(error))
 {
     width = null;
     height = null;
 }

 //通过正则表达式获取信息里面的宽度信息
 Regex regex = new Regex("(\\d{2,4})x(\\d{2,4})", RegexOptions.Compiled);
 Match m = regex.Match(error);
 if (m.Success)
 {
     width = int.Parse(m.Groups[1].Value);
     height = int.Parse(m.Groups[2].Value);
 }
 else
 {
     width = null;
     height = null;
 }
    }
    catch (Exception)
    {
 width = null;
 height = null;
    }
}</div>

希望本文所述对大家的C#程序设计有所帮助。

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • C#读取视频的宽度和高度等信息的方法
  • 解决C#全屏幕截图的实现方法
  • C#实现类似qq的屏幕截图程序

相关文章

  • 2017-05-28C#正则表达式的递归匹配分析
  • 2017-05-28C#泛型集合Dictionary<K,V>的使用方法
  • 2017-05-28WinForm生成验证码图片的方法
  • 2017-05-28C#中的文件路径获取函数和文件名字获取函数小结
  • 2017-05-28C#实现将网页保存成图片的网页拍照功能
  • 2017-05-28c#二进制逆序方法详解
  • 2017-05-28测试stringbuilder运行效率示例
  • 2017-05-28C#语法新特性之元组实例详解
  • 2017-05-28浅谈C# 类的继承
  • 2017-05-28WinForm天猫双11自动抢红包源码分享

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • Winform之TextBox输入日期格式验证yyyy-mm-dd
    • C#类的访问修饰符用法分析
    • c#3.0实现延迟赋值示例
    • C#实现快捷键的几种常用方法汇总
    • c# 可选参数、命名参数
    • 用 C# 编写一个停放在任务栏上的图标程序
    • 用C#编写ActiveX控件(三)
    • 如何在UpdatePanel中调用JS客户端脚本
    • C#中创建PDF网格并插入图片的方法
    • C#给picturebox控件加图片选中状态的2个方法

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有