QuickTime SDK for Windows之二:video解码
来源:互联网 发布:cpa挂机赚钱软件 编辑:程序博客网 时间:2024/04/19 08:06
QT SDK提供三种方法对MOV文件的video进行不同深度的操作。
1> movie controller:使用controller组件,封装了基本的数据操作,方便播放等操作。
2> movie tools:提供最基本的API接口,可以对流操作或帧操作。
3> Image Compression component:可以进行每一帧的编解码。
下面,用伪代码说明以上三种用法了,具体的代码会在附件中给出或来信向我索取 J
1> movie controller : 见《[zz]QuickTime SDK》中的第三节 QuickTime的Windows编程
可编译的代码: 附件[simpleplayersdi.win.zip]:
在VC6下编译,记住要把Quicktime SDK的头文件件和库文件加入你的工程啊.
2> movie toolbox:
1、 在程序其始处初始化QuickTime媒体层(InitializeQTML) 与QuickTime(EnterMovies) 。
2、 建立QuickDraw图形端口与视频窗口(CreatePortAssociation)的联系。
3、 打开视频文件(OpenMovieFile) 并从中提取视频内容(NewMovieFromFile)。
4、 移动时间线到开始位置。
5、 移动movie时间线(GetMovieNextInterestingTime)
6、 设置播放时间点(SetMovieTimeValue),播放image(UpdateMovie, MoviesTask).
7、 移动时间线到下一帧位置,转到5,直到文件末尾。
8、 在程序结束处,中断QuickTime (ExitMovies) 与QuickTime 媒体层(TerminateQTML)。
可编译的代码:附件[movietools.rar]:
在VC6下编译,记住要把Quicktime SDK的头文件件和库文件加入你的工程啊.
3> Image Compression component:
由于用到了component,回稍微增加一些复杂度了。这里只说明解码的流程,编码涉及到更多的参数,以后有时间再探讨了L
1 在程序其始处初始化QuickTime媒体层(InitializeQTML) 与QuickTime(EnterMovies) 。
2 建立QuickDraw图形端口与视频窗口(CreatePortAssociation)的联系。
3 打开视频文件(OpenMovieFile) 并从中提取视频内容(NewMovieFromFile)。
4 调用QTCmpr_DeCompressSequence函数,在文件QTDecompress.c中定义。
4.1 创建Component对象
// open an instance of the Standard Image Compression dialog component
OpenDefaultComponent(StandardCompressionType, StandardCompressionSubType);
4.2 得到Picture对象
// get the bounding rectangle of the movie
GetMoviePosterPict(mySrcMovie);
4.3 创建Gworld,设置解码后的数据格式为32bit RGB(k32ARGBPixelFormat)
NewGWorld(&myImageWorld, k32ARGBPixelFormat, &myRect, NULL, NULL, 0L);
4.4 // get the pixmap of the GWorld;
GetGWorldPixMap(myImageWorld);
4.5 set movie to draw into it
SetMovieGWorld(mySrcMovie, myImageWorld, GetGWorldDevice(myImageWorld));
5 移动时间线到开始位置。
6 移动movie时间线(GetMovieNextInterestingTime)
7 设置播放时间点(SetMovieTimeValue),解码 image( MoviesTask).
8 取得解码后的32bit RGB pixmap数据(myPixMap)
9 显示移动时间线到下一帧位置,转到5,直到文件末尾。
10 在程序结束处,中断QuickTime (ExitMovies) 与QuickTime 媒体层(TerminateQTML)
参考代码:附件[qtcompress.win.zip]:
在VC6下编译,记住要把Quicktime SDK的头文件件和库文件加入你的工程啊.
- QuickTime SDK for Windows之二:video解码
- QuickTime SDK for Windows之二:video解码
- QuickTime SDK for Windows之三:audio解码
- QuickTime SDK for Windows之三:audio解码
- QuickTime SDK 7.3 for Windows
- QuickTime SDK for Windows之四:制作MOV文件
- QuickTime SDK for Windows之四:制作MOV文件
- QuickTime SDK 7.3 for Windows 之一: QT SDK介绍
- QuickTime SDK for Windows之一:QT SDK介绍
- 【Kinect for Windows SDK MSDN文档翻译】之二
- Programming Video for Windows
- Programming Video for Windows
- Programming Video for Windows
- VFW(Video for Windows)
- [zz]QuickTime SDK编程
- QuickTime SDK的使用
- KINECT学习 "kinect for Windows SDK开发入门(二)"
- Kinect for Windows SDK开发入门(二):基础知识 上
- 电脑商真的太黑了,我想不仅是中关村的.
- QuickTime SDK for Windows之一:QT SDK介绍
- 在Visual Studio 2005和ASP.NET 2.0中使用强类型数据存取
- RMI
- 计算两个日期的时间间隔
- QuickTime SDK for Windows之二:video解码
- 选择服务器CPU不得不看的18个重要特性
- 启发式搜索算法引论------A*算法理论与实践
- 如何设置DetailsView模板列里的下拉菜单
- QuickTime SDK for Windows之三:audio解码
- QuickTime SDK for Windows之四:制作MOV文件
- GridView和DetailsView在同一页与不同页两种情况的联动
- delphi 目录操作函数
- 每天是周几的算法