流媒体学习笔记----用配置好的文件进行编码
来源:互联网 发布:查看淘宝佣金插件 编辑:程序博客网 时间:2024/05/22 00:16
编写编码程序可以使用已经配置好的文件进行编码,文件为“,wme”文件。
这需要调用IWMEncoder的Load()方法。其定义为:
HRESULT Load(
BSTR bstrFileName
) 其中,
BSTR
是一个类似
CString
类的指向宽字符串的类,
bstrFileName
包含了编码文件的文件名,即相对路径。
HRESULT
是
COM
中用来向用户报告各种情况的
32
位值。这个名称很容易让人将这种类型的值当成一个指向某个结果的句柄,
实际上并不是这样。它是一个可分为三个区域的
32
位值。可理解为“
Here
’
s the Result
”。返值为
S_OK
时,表示成功。
S_OK
被定义为
0
。失败时支持
IerrorInfo接口,不同的错误有不同的错误号。
使用IWMEncoder前,需要先定义并初始化COM库,返回一个指向该接口的指针。
HRESULT hr;
IWMEncoder* pEncoder;
// Initialize the COM library and retrieve a pointer
// to an IWMEncoder interface.
hr = CoInitialize(NULL);
CoCreateInstance(CLSID_WMEncoder,
NULL,
CLSCTX_INPROC_SERVER,
IID_IWMEncoder,
(void**) &pEncoder);
//装载.wme文件
CComBSTR bstrFileName(L"file_name.wme");
hr = pEncoder->Load(bstrFileName);
//可以用
IWMEncoder->Save()将配置文件备份保存
//准备编码
hr = pEncoder->PrepareToEncode(VARIANT_TRUE)
//启动编码
hr = pEncoder->Start();
//此时,可以用IWMEncoder->get_RunState()得到编码进程的状态。1代表正在开始,2代表正在编码,4代表正在停止,5代表已经停止。
WMENC_ENCODER_STATE enumEncoderState;
hr = pEncoder->get_RunState(&enumEncoderState);
//可用一个判断编码是否结束的if语句控制编码 如果结束,退出循环。
while(1)
{
if (enumEncoderState != WMENC_ENCODER_RUNNING)
{
break;
}
}
//停止编码
hr = pEncoder->Stop();
//释放占用资源
hr = pEncoder->Release();
程序需要的头文件为:
#include <windows.h>
#include <atlbase.h> // Includes CComBSTR.
#include "wmencode.h"
总结:这是进行编码编程的一个最基本的程序,使用已经配置好的文件进行编码。
在做的过程中,遇到了很多问题,比如:hr的含义,CComBSTR
的类型,
COM的初始化。尤其是在最后编码的时候,不能得到编码的内容,是因为过早地结束了程序,
没有编码时间。经过老师的悉心指点和教导,最后终于完成。从中收获颇多。
- 流媒体学习笔记----用配置好的文件进行编码
- 流媒体学习笔记----配置一个编码进程
- 流媒体学习笔记---------编码视频的预览
- 流媒体学习好地方
- 文件编码学习笔记
- Caffe_Windows学习笔记(五)用训练好的caffemodel来进行分类
- 流媒体学习笔记
- ffmpeg 用 h264库进行编码的编译配置
- ffmpeg 用 h264库进行编码的编译配置
- 流媒体技术笔记(视频编码相关)
- 流媒体技术笔记(视频编码相关)
- MyEclipse 的文件编码 配置
- 流媒体学习笔记(一)
- 流媒体学习笔记3(live555的source-sink)
- Python学习笔记 --- 判断文件编码
- java的编码--学习笔记
- Python学习笔记 --- 对文本编码进行转换方法2
- 文件编码和RandomAccessFile文件流的使用--IO学习笔记(一)
- C++ Builder 初学问与答(十五)
- MSN Messenger不能登陆的解决方法
- C++ Builder 初学问与答(十六)
- 对软件开发过程的一些感想
- How did Interbase appear?(Interbase是如何出现的?)
- 流媒体学习笔记----用配置好的文件进行编码
- 流媒体学习---------序
- 流媒体学习笔记----配置一个编码进程
- 流媒体学习笔记---------编码视频的预览
- 关键字static总结<第一次在CSDN写的,请大家指点点(错误和不足)>之一
- 关键字static总结<第一次在CSDN写的,请大家指点点(错误和不足)>之二
- 算术编码算法
- delphi技巧——移动无标题窗口
- 你需要virtual析构函数吗