流媒体学习笔记----用配置好的文件进行编码

原创 2003年08月04日 10:05:00

 编写编码程序可以使用已经配置好的文件进行编码,文件为“,wme”文件。

这需要调用IWMEncoderLoad()方法。其定义为:

HRESULT Load(<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

  BSTR  bstrFileName

)  其中,BSTR是一个类似CString类的指向宽字符串的类,bstrFileName包含了编码文件的文件名,即相对路径。
HRESULTCOM中用来向用户报告各种情况的32位值。这个名称很容易让人将这种类型的值当成一个指向某个结果的句柄,
实际上并不是这样。它是一个可分为三个区域的32位值。可理解为“Heres 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的初始化。尤其是在最后编码的时候,不能得到编码的内容,是因为过早地结束了程序,
没有编码时间。经过老师的悉心指点和教导,最后终于完成。从中收获颇多。

H264 流媒体 编码汇总

实时传输协议(RTP)和实时控制协议(RTCP) RTP是一种提供端对端传输服务的实时传输协议,用来支持在单目标广播和多目标广播网络服务中传输实时数据,而实时数据的传输则由RTCP协议来监视...
  • szu030606
  • szu030606
  • 2017年04月14日 00:17
  • 986

直播技术学习笔记(一)

播放器相关技术: 1、开源项目jjdxm_ijkplayer是基于ijkplayer简单的UI界面; ijkplayer是一个基于 FFmpeg n2.6 的开源 Android/iOS ...
  • zhaodecang
  • zhaodecang
  • 2016年11月23日 00:06
  • 15370

流媒体学习笔记----配置一个编码进程

  配置一个编码进程   要想完全地配置一个编码程序,下面的接口必须被正确地设置。注意可选择的接口。1.  The IWMEncAttributes interface (optional).(可选择...
  • let5flying
  • let5flying
  • 2003年09月17日 09:02
  • 984

时间编码

 时间编码一、概念这里我们要说明一下媒体流处理中的一个重要概念-时间编码。时间编码是一个为了视频和音频流的一种辅助的数据。它包含在视频和音频文件中,我们可以理解为时间戳。SMPTE timecode ...
  • kathywp
  • kathywp
  • 2003年03月08日 14:58
  • 2968

流媒体直播之七X264实现H.264的软件编码

Author: CaoHu E-Mail: hnu_xiaohu@163.com Version:0.1 Date: 2018-01-29 10:28 Description:...
  • hnu__kaifaxiaozi
  • hnu__kaifaxiaozi
  • 2018年01月29日 12:58
  • 32

流媒体服务器实现

1 引言   随着互联网的飞速发展,流媒体技术的应用越来越广泛,从网上广播、电影播放到远程教学以及在线的新闻网站等都用到...
  • ruixj
  • ruixj
  • 2007年07月31日 22:41
  • 31740

《流媒体技术入门与提高》读书笔记

公司是搞视频类的互联网公司,本人虽为开发人员,但因为业务相关,因此也要懂得视频和流媒体方面的知识,于是把公司图书阁里的《流媒体技术入门与提高》借回来看。我手上的是第二版。 流式技术解决方案 所谓流...
  • zhangxin09
  • zhangxin09
  • 2013年01月23日 23:16
  • 5485

详尽分析流媒体系统包括的三部分并推荐三款好用的直播编码器及流媒体软件系统

流媒体系统包括的三部分:编码器,服务器,解码器(终端播放器) 1. 编码器:它由一台普通计算机、一块高清视频采集卡和流媒体编码软件组成。流媒体采集卡负责将音视频信息源输入计算机,供编码软件处理;...
  • u011579100
  • u011579100
  • 2013年08月16日 10:43
  • 2781

流媒体视频编码资料

一、视频编码原理 视频图像数据有极强的相关性,也就是说有大量的冗余信息。其中冗余信息可分为空域冗余信息和时域冗余信息。压缩技术就是将数据中的冗余信息去掉(去除数据之间的相关性),压缩技术包含帧内图像...
  • u013771273
  • u013771273
  • 2015年02月10日 20:38
  • 941

流媒体文件应用常见问题解答

流媒体文件应用常见问题解答 作者/来源:未知 1.rm格式的文件能下载下来吗?    答:当然了,用streamboxvcr就可以,这个软件的套装可以在本站找到,名字  是stream...
  • xjbclz
  • xjbclz
  • 2016年07月09日 16:46
  • 394
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:流媒体学习笔记----用配置好的文件进行编码
举报原因:
原因补充:

(最多只允许输入30个字)