C#通过FFmpeg获得视频参数
FFmpeg简介
FFmpeg is a complete, cross-platform solution to record, convert and stream audio and video(录制、转换 、音/视频,并可将其转换为音/视频流的完整的,跨平台的j解决方案).FFmpeg的开发是基于Linux操作系统,但是可以在大多数操作系统中编译和使用。
官网:http://ffmpeg.org/
在windows环境下,需要用到其Windows Builds。
下载地址: http://ffmpeg.zeranoe.com/builds/
可根据自己的环境(32位或64位)选择下载相应的static builds即可。
解压下载后的包会发现,里面都是.exe文件。我们在.net中用FFmpeg只能利用命令参数的形式来执行这些文件,为我们服务,极为不便。如果有一个能在.net环境中以对象的方式调用ffmpeg.exe的包装类就好了。还真有,php有,C#的也有,如:
http://nolovelust.com/post/Another-Simple-C-Wrapper-For-FFmpeg.aspx
具体的可到这个网页下载,ffmpeg.exe的包装类使用。如果对ffmpeg.exe在C#中的调用感兴趣,可学习下其源码。
使用非常简单,如下解析视频的相关信息:
1 /**2 * 支持视频格式:mpeg,mpg,avi,dat,mkv,rmvb,rm,mov.3 *不支持:wmv4 * **/5 6 VideoEncoder.Encoder enc =new VideoEncoder.Encoder();7 //ffmpeg.exe的路径,程序会在执行目录(....FFmpeg测试\bin\Debug)下找此文件,8 enc.FFmpegPath ="ffmpeg.exe";9 //视频路径 10 string videoFilePath ="d:\\纯粹瑜伽-混合课程.avi"; 11 VideoFile videoFile =new VideoFile(videoFilePath); 12 13 enc.GetVideoInfo(videoFile); 14 15 TimeSpan totaotp = videoFile.Duration; 16 string totalTime =string.Format("{0:00}:{1:00}:{2:00}", (int)totaotp.TotalHours, totaotp.Minutes, totaotp.Seconds); 17 18 Console.WriteLine("时间长度:{0}",totalTime); 19 Console.WriteLine("高度:{0}",videoFile.Height); 20 Console.WriteLine("宽度:{0}", videoFile.Width); 21 Console.WriteLine("数据速率:{0}",videoFile.VideoBitRate); 22 Console.WriteLine("数据格式:{0}", videoFile.VideoFormat); 23 Console.WriteLine("比特率:{0}", videoFile.BitRate); 24 Console.WriteLine("文件路径:{0}", videoFile.Path); 25 26 Console.ReadKey();
输出:
C#通过FFmpeg获得视频参数相关推荐
- C#通过FFmpeg获得视频文件参数
C#通过FFmpeg获得视频参数 FFmpeg简介 FFmpeg is a complete, cross-platform solution to record, convert and strea ...
- ffmpeg 参数_使用FFMPEG进行视频转码
Note: 此文章首发于我的个人博客zhi-hua.wang ,开放转载但需附上出处. 使用FFMPEG进行视频转码 - 日落孤城www.zhi-hua.wang FFMPEG 是一款开源的视频处理 ...
- 几个FFmpeg 视频参数 fps、tbr、tbn、tbc
几个FFmpeg 视频参数 fps.tbr.tbn.tbc 我们用Ffplay播放文件或者视频流命令行会出现fps.tbr.tbn.tbc等参数如下图所示 图1 ffplay 播放文件示意图 fps表 ...
- [技术杂谈][转载]ffmpeg压缩视频几个参数解析
Ffmpeg 视频压缩的几个关键参数 Ffmpeg的视频操作官网文档:FFmpeg Filters Documentation 视频压缩用到的参数主要为以下几个: 文件路径:-i 输入文件的路径 码率 ...
- ffmpeg制作视频播放器(十五)XPlay2 音视频参数获取和复制
XDemux.cpp //获取视频参数 返回的空间需要清理 avcodec_parameters_free AVCodecParameters *XDemux::CopyVPara() {mux.lo ...
- ffmpeg java linux水印,Linux环境用FFmpeg给视频加水印详细步骤
FFmpeg给视频添加水印,根据官方文档的介绍可以知道FFmpeg在编译安装的时候还需要加 –enable-libfreetype.–enable-libfontconfig. --enable-li ...
- ffmpeg的map参数
ffmpeg的map参数可以指定输入流和输出流的映射关系. 参数格式: 1 -map [-]input_file_id[:stream_specifier][?][,sync_file_id[:str ...
- ffmpeg入门及java操作ffmpeg对视频进行处理
一.ffmpeg 1.简介 FFmpeg是一个开源免费跨平台的视频和音频流方案,属于自由软件,采用LGPL或GPL许可证(依据你选择的组件).它提供了录制.转换以及流化音视频的完整解决方案.它包含了非 ...
- linux deepin使用FFmpeg处理视频格式、尺寸、播放速度
背景 deepin下的视频处理.剪辑软件可选择的比较少,没有Window下常用的PR.AE.格式工厂等,达芬奇由于依赖的问题不是很好安装.我们可以充分利用deepin系统自带的FFmpeg,完成常用的 ...
最新文章
- matlab怎么根据波宽度去波,使用Matlab图像处理(三)——图像滤波原理
- 【Java】类和对象
- CodeSign error: code signing is required for product type Application in SDK iOS XXX的解决办法
- 自己动手制作(DIY)一个Mini-Linux系统
- c++求矩阵的秩_线性代数复习(被玩坏的矩阵)
- 使用 npm 命令查看某个 npm 开发包明细
- 深入浅析HTML5中的article和section的区别
- mysql简单创建数据库权限(待修改备注)
- Linux中以单容器部署Nginx+ASP.NET Core
- 丘成桐:完全不懂数学,才会有“数学无用”的说法
- C++如何产生随机数
- python登录并关注公众号_python微信公众号之关注公众号自动回复
- 《深入理解OSGi:Equinox原理、应用与最佳实践》一3.4 事件监听
- exchange2007开启反垃圾邮件功能
- eclipse中新建JSP文件时的编码设置
- WIN7 7100+TOAD最新版本9.7.2.5切换到SCRIPT显示注释的时候是乱码。表数据中文显示正常!求解决方案。...
- 基于handsontable的web excel(上)
- 【电脑使用】插入SD卡图标是灰色的,点击显示“请将磁盘插入驱动器”
- spark3.0-spark入门-总结知识要点
- 网线水晶头接法分两种教程
热门文章
- List Label Enterprise Reporting
- tell网关arp包正常吗_网工知识角|如何理解ARP协议?防护有诀窍,网络工程师必读...
- 基于推荐算法的电影系统——理论介绍(1)
- [数据库]MySQL索引原理和深度优化
- Spark的shuffle
- Ubuntu下minicom的安装与使用
- 三菱PLC梯形图触点比较指令(><=)为什么加D
- KFold交叉验证的用法
- 人工智能翻译机到底能否取代真人翻译?这有两个高人的答案
- 用java获取360doc页面上的url地址并在浏览器中自动打开