QuickTime SDK for Windows之二:video解码
来源:互联网 发布:淘宝死掉了怎么办 编辑:程序博客网 时间:2024/04/26 16:21
QT SDK提供三种方法对MOV文件的video进行不同深度的操作。
1> movie controller:使用controller组件,封装了基本的数据操作,方便播放等操作。
2> movie tools:提供最基本的API接口,可以对流操作或帧操作。
3> Image Compression component:可以进行每一帧的编解码。
下面,用伪代码说明以上三种用法了,具体的代码会在附件中给出或来信向我索取
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开发入门(二):基础知识 上
- “剩”者为王
- Linux命令之 top 使用技巧
- free 命令显示内存使用情况
- buffer 与cache 的区别
- 寻觅朋友
- QuickTime SDK for Windows之二:video解码
- 忆龙2009:安装 .NET Compact Framework
- ORACLE 中UNION ,UNION ALL ,MINUS,INTERSECT区别
- 准备报班
- javascript函数大全--上篇
- C语言中位域的使用及整体赋值
- QuickTime SDK for Windows之三:audio解码
- reactos操作系统实现(180)
- USB入门