开源好代码 音视频
来源:互联网 发布:中国石油大学 知乎 编辑:程序博客网 时间:2024/05/18 08:04
VirtualDub
一、简介
图1VirtualDub主界面
VirtualDub是一款开源的音视频捕获、处理软件。VirtualDub也可称为一款多媒体编辑软件,因为它包含了多媒体输入、编辑、处理、输出等各个环节,但是作者并未将它定位为一款多媒体编辑软件(参见官网:http://www.virtualdub.org/),事实上VirtualDub在音视频编辑上的确没有Adobe Premiere等软件那么专业。VirtualDub的特点是,在音视频捕获和处理上的功能非常强大,而且处理速度非常快。
VirtualDub的亮点是音视频捕获和处理,但其在多媒体编辑整个流程上的功能模块是full的。下图2是VirtualDub多媒体数据处理的一个流程。从图2可以看出,视频自上而下的处理流程包括:视频回放或者捕获,统计层,音视频重同步,捕获参数的调节,视频处理,视频显示,视频压缩,流选择,写入磁盘等。音频的处理流程也类似。
图2VirtualDub处理流程
二、源码获取途径
VirtualDub官网:
http://www.virtualdub.org
下载地址:
http://virtualdub.sourceforge.net/
技术论坛:
http://forums.virtualdub.org/
三、使用指南
1.VirtualDub编译指南
支持Windows平台
编译工具ms visual studio 2005 + yasm.exe
从sourcforge下载的VirtualDub可以在vs2005上顺畅编译。
四、典型应用
直接改造VirtualDub源码工程的应用比较窄,而VirtualDub中高效率的音视频处理和捕获模块可以有很广泛的应用,下面就介绍VirtualDub音视频处理和转换具备的功能。
1.视频处理
VirtualDub中的视频处理包括以下功能:
视频处理模块
描述
resize
调整大小
blur
模糊
Brightness/contrast
调整亮度和对比度
deinterlace
去隔行效应
emboss
浮雕
flip
翻转
Convolution
变换
grayscale
求取灰度
HSV adjust
调整色调、饱和度、亮度
Invert
反色
logo
添加logo图像
rotate
任意角度旋转
sharpen
锐化
Smoother
平滑
threshold
根据阈值转换成黑白图
warp
扭曲
2.视频色彩空间转换
VirtualDub支持以下色彩空间之间的互转:
RGB555,RGB565, RGB24, RGB32,
UYVY(4:2:2), YUY2(4:2:2), YV12(4:2:0), YV16(4:2:2),YVU9(4:1:0), Y8(灰度)
3.音频处理
VirtualDub中的音频处理包括以下功能:
音频处理模块
描述
Stereo split
分离一个声道的数据
Gain
调整音强
Highpass
高通滤波
lowpass
低通滤波
mix
混音多路音频
resample
调整采样率
timstretch
调整音频段的占用时长
五、相关源码
在视频处理方面,除了VirtualDub,avisynth也包含了功能非常全面的视频处理滤镜。Avisynth官方网址:http://www.avisynth.org/。后期还会具体介绍Avisynth工程及其应用。
How to Compile mpc
http://download.microsoft.com/download/d/9/1/d91c44b9-fbac-4e8e-bee1-4a75777923ec/dxsdk_feb2005_extras.exe
the original MPC project:
http://sourceforge.net/projects/guliverkli/
2006.5月后,mpc工程基本上就停止更新了。
注:mpc全称meida playerclassic,是一个万能播放器核心引擎,目前流行的万能播放器,如暴风影音,kmp,klc等,或多或少都采用mpc的核心。mpc是gabest创建和主力维护开发的,gabest同时是著名字幕插件vobsub的作者。
http://sourceforge.net/projects/guliverkli2/
该工程是基于最新的原mpc工程(应该是2006.5月版),主要是对mpc的程序问题进行修补,功能上的增加比较少。主要维护者:clsid2
一、简介
Mpc是一个非常流行的开源播放器,国外的K-LiteCodec,国内的幻想影音、终极解码、完美解码等播放工具都捆绑了mpc播放器程序。另外,暴风、kmplayer等播放器程序也都或多或少地参考及使用了mpc中的功能和代码。Mpc开源工程开始于2003年,是一款较早的开源万能播放器程序,基于directshow架构,只要有可用的解码filter,mpc可以支持任意的媒体格式。Mpc的作者gabest,同时也是著名的外挂字幕插件vobsub的作者。
遗憾的是Mpc工程在2006年04月停止了更新,同时所幸的是有两个开源工程在mpc的基础上继续更新,一个是mpc2,主要是clsid2在维护,主要是修正mpc原工程中的一些bug,不添加新功能;另一个mpc-homecinema比较强了,在mpc的基础上,添加了Antitearing,抖动测试,字幕同步,ShuttlePN31远程控制支持,OSD屏幕显示,vistaReady等不少实用的功能。
Mpc主界面截图
二、源码获取途径
1. mpc原工程gabest
http://sourceforge.net/projects/guliverkli2/
https://guliverkli.svn.sourceforge.net/svnroot/guliverkli
gabest 2006.04停止更新
2.mpc2(clsid2)
http://sourceforge.net/projects/guliverkli2/
https://guliverkli2.svn.sourceforge.net/svnroot/guliverkli2
3.mpc-hc
mpc-home cinema Registered : 2006-06-21 12:10
http://tibrium.neuf.fr/
http://sourceforge.net/project/showfiles.php?group_id=170561
https://mpc-hc.svn.sourceforge.net/svnroot/mpc-hc/trunk
三、使用指南
OS: windows平台
编译平台:vs2003, vs2005 orvs2008
另外需要安装directX9.0sdk及windows media formatsdk9
关于mpc的具体编译方法参见《How to Compilempc》:
http://blog.csdn.net/sunshine1314/archive/2006/12/13/1442103.aspx
二、典型应用
Mpc最常见的应用是:在windows平台上构建多格式支持的媒体播放程序。另外,用mpc构建针对自定义格式的播放程序也是很方面的。
另外,mpc工程中除了包含播放器主程序,还包含了不少开源的filter,特别是splitterfilter,如mp3, mpeg, mp4, mov, flv,real等splitter。利用mpc的工程有很多功能完善的filter基类,对于构建自主的splitter,decoder等filter非常方便。
三、更多资料
如果要在非windows平台上构建多格式支持的媒体播放程序,可以使用另外两个开源工程,vlc和mplayer。具体内容见本站的相应文章。
一、简介
MediaInfo用来分析视频和音频文件的编码和内容信息。
MediaInfo可以获得多媒体文件的哪些信息?
内容信息:标题,作者,专辑名,音轨号,日期,总时间……
视频:编码器,长宽比,帧频率,比特率……
音频:编码器,采样率,声道数,语言,比特率……
文本:语言和字幕
段落:段落数,列表
MediaInfo支持哪些文件格式?
视频:MKV, OGM, AVI,DivX, WMV, QuickTime, Real, MPEG-1, MPEG-2, MPEG-4, DVD (VOB)...(编码器:DivX, XviD,MSMPEG4, ASP, H.264, AVC...)
音频:OGG, MP3, WAV,RA, AC3, DTS, AAC, M4A, AU, AIFF...
字幕:SRT, SSA, ASS,SAMI...
MediaInfo有哪些主要功能和特点?
支持众多视频和音频文件格式
多种查看方式:文本,表格,树形图,网页……
自定义查看方式
信息导出:文本,CSV,HTML……
三种发布版本:图形界面,命令行,DLL(动态链接库)
与Windows资源管理器整合:拖放,右键菜单
国际化:有多种界面语言供选择
MediaInfo主界面截图
二、源码获取途径
MediaInfo英文主页:
http://mediainfo.sourceforge.net/
MediaInfo中文主页:
http://mediainfo.sourceforge.net/zh-CN
MediaInfo开发者主页:
http://sourceforge.net/projects/mediainfo
源码svn下载地址:
https://mediainfo.svn.sourceforge.net/svnroot/mediainfo
三、使用指南
1. MediaInfo编译指南
支持Windows和Linux平台
推荐使用ms visual studio2005。
- MSVC : Microsoft Visual C++ 9 (aka 2005) (for Visual Studio 7(aka 2002) or 8 (aka 2003), you can edit .sln and .xxproj to becompatible. - .sln : "...Format Version 9.00" to 7.00 - .xxproj :"Version="8.00" or "Version="7.10" to 7.00 This is not alwaystested, but you should easily be able to adapt them for yourcompiler)
- BCB : Borland C++ Builder 6
- DevCpp : Dev-C++ (Dev-Cpp is an IDE for MinGW) (I am working onthis release, not stable)
- MinGW : MinGW on Windows (I am working on this release, notstable)
- GCC : Linux GCC (I am working on this release, notstable)
2.MediaInfo SDK
MediaInfo除了有GUI和CMD两种使用方法,还可以在程序中使用MediaInfo库。
MediaInfo库有静态链接和动态链接两种方式,MediaInfoSDK的相关官方资料如下:
- Read this first (supported languages, versioning,conventions)
- Different ways of using the library
- How to begin quickly with MediaInfo
- More information about the programminginterface
- The Doxygen documentation (full C++ APIinterface)
二、典型应用
MediaInfo的典型应用是使用其DLL库,用来提取媒体文件的信息。其特点是,支持的格式全、提取的信息丰富。当然,MediaInfo本身是开源的,其DLL库可以进行二次开发,可以扩充自定义格式,增加自定义功能。对于工程使用,MediaInfo模块和其它功能可以独立,使用上非常便捷,是一个值得推荐的开源工程。
三、相关源码
关于媒体信息解析,ffmpeg的libformat是用于媒体文件解析的,是parser的功能,支持格式也非常全,和MediaInfo有想通之处,在使用MediaInfo时遇到问题可以借鉴libformat的源码。
- 开源好代码 音视频
- 视频代码
- 音视频编解码代码优化方法
- 视频播放插入代码
- 上传视频代码
- 视频播放代码
- 视频播放代码
- HTML视频播放代码
- QT视频捕捉代码
- FLV视频播放代码
- html视频嵌入代码
- html中视频代码
- 视频播放小代码
- vc视频采集代码
- android 网络视频代码
- iOS视频播放代码
- ANDROID 视频播放代码
- 视频播放的代码
- java nio编程学习笔记(2)--channel
- win下与linux传文件方式
- Android之Activity的基本用法(AndroidMainfest、隐藏标题栏、Toast与menu)
- 无人驾驶的5个level concept
- R机器学习算法系列——KNN
- 开源好代码 音视频
- Java内存分区
- Tomcat单机多实例配置
- 光线追踪
- poj2318(叉积计算点与直线的关系)
- Android开发之Activity
- 坑死人的Atom插件安装
- 反射_通过反射获取无参无返回值成员方法并使用
- 从菜鸟到架构师(十)