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

Qt6.5.1+WebRTC学习笔记(十二)环境搭建流媒体服务器(ubuntu22.04+SRS) 若只是实现一对一通信,仅使用webrtc就足够了。但有时间需要进行多个人的直播会议,当人比较多时,建议使用一个流媒体服务器,笔者使用的是SRS。这个开源项目资料比较全,笔者仅在此记录下搭建过程。 阅读详情

 编写编码程序可以使用已经配置好的文件进行编码,文件为“,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的初始化。尤其是在最后编码的时候,不能得到编码的内容,是因为过早地结束了程序,
没有编码时间。经过老师的悉心指点和教导,最后终于完成。从中收获颇多。
英伟达DeepStream学习笔记2——deepstream_sdk文件夹解析 英伟达DeepStream学习笔记2——deepstream_sdk文件夹解析1 、整体结构2、 samples文件夹2.1 configs子文件夹2.2 models子文件夹2.3 streams子文件夹3 、sources文件夹3.1 apps子文件夹3.2 gst-plugins子文件夹3.3 libs子文件夹3.4 目标检测文件夹![在这里插入图片描述](https://img-blog.csdnimg.cn/20210420171958834.png?x-oss-process=image/wat 阅读详情

相关推荐

WME_ChatJumper

WME_ChatJumper 位智地图编辑器的“聊天跳线”。 /* 变更日志 0.0.7 - 修正错误,与 dummyd2 编写的聊天插件更兼容 0.0.6 - 错误修正。 0.0.5 - 防止再次初始化 ChatJumper,当它已经初始化时。 0.0.4 - 添加了预存 oryginal _onClick 函数,这可能有助于解决未来 oryginal 函数更改的错误 0.0.3 - 现在缩放级别也被保存并在跳回时使用 0.0.2 - 位置也保存在 localStorage 中,因此即使页面重新加载它也会被记住 0.0.1 - 初始版本 */ 许可证 MIT/BSD/X11

流媒体基础(视频编码/H264/RTP/RTSP/SDP)

视频编解码、H264、封装格式、RTP、RTSP基础知识

不定期更新关于音视频的文章 5851

智能体在车联网中的应用:一份详尽到每日的100天学习路线图

这100天的旅程,是一次对毅力、学习方法和工程实践能力的综合考验。它不仅关乎掌握一系列技术点,更关乎培养解决复杂系统性问题的思维模式——将宏观的交通需求分解为微观的智能体决策,再通过多智能体协同涌现出宏观的智能行为。当你完成这份大纲时,你将拥有的不仅是一个项目作品集,更是一套应对“智能体+车联网”乃至更广泛AI+垂直领域挑战的方法论。未来已来,期待你成为构建智能交通新生态的关键贡献者。

IT深耕十余载,大道之简 1334

流媒体传输协议及音视频编解码技术

说明:本文来自一篇出处不明的老文章,有些内容已过时,但仍有很大的参考价值。一音视频编解码技术 1MPEG4 2H264 二流媒体网络传输协议 1RTP 2RTCP 3RTSP 4RSVP 三流媒体播放方式 1单播 2组播 3点播与广播 四业界中流媒体系统的简介 一、音视频编解码技术1、MPEG4  MPEG全称是Moving Pictures Experts Group,它是“动态图象专家组”的英文

程序员「阿基米东」的编程之旅 1万+

从零开始搭建GD32F103CBT6开发环境:VSCode配置与实战技巧

本文详细介绍了如何从零开始为国产MCU GD32F103CBT6搭建高效的VSCode开发环境。内容涵盖工具链安装、VSCode核心插件配置、工程目录结构规划、关键配置文件编写以及Makefile实战,旨在帮助开发者摆脱传统IDE束缚,利用现代化工具链提升嵌入式开发效率。

weixin_29158413的博客 448

QT+SOEM主站协议库实战指南—从编译到嵌入式应用

本文提供了一份QT与SOEM开源EtherCAT主站协议库的集成实战指南。详细介绍了在Windows和Linux平台下编译SOEM库的步骤,并讲解了如何将其无缝集成到QT项目中,构建具备实时监控与控制功能的工业上位机应用。内容涵盖从环境搭建、核心协议开发到嵌入式部署与优化的全流程,为开发高性价比、自主可控的工业控制解决方案提供完整路径。

u6v7w8x的博客 442

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

流媒体学习笔记----用配置好的文件进行编码 (转)[@more@] ...

ciya3282的博客 84

DolphinScheduler租户配置踩坑实录:手把手教你修复‘tenant not exists‘报错

本文深度解析DolphinScheduler的租户模型,并提供一套从界面到数据库的系统性排查流程,手把手教你修复常见的'tenant not exists'报错。文章揭示了该错误的本质是用户与租户数据关联不一致,并给出了通过UI或SQL更新的具体修复方案,同时分享了根因分析与预防措施,帮助用户从根本上理解和避免此类问题。

2w3e4r5t6y的博客 541

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

  配置一个编码进程   要想完全地配置一个编码程序,下面的接口必须被正确地设置。注意可选择的接口。1.  The IWMEncAttributes interface (optional).(可选择的,随意的)2.  The IWMEncBroadcast interface (optional).3.  The IWMEncDisplayInfo interfa

let5flying的专栏 1259

ATAC-seq数据分析流程

Outline0. ATAC-seq原理0.1 染色体结构0.2 原理0.3 结果0.4 意义1. ATAC-seq数据分析流程1.1 上游分析(1)序列质控和比对(2)序列筛选1.2 下游分析1.3 进阶分析 0. ATAC-seq原理 0.1 染色体结构 0.2 原理 0.3 结果 0.4 意义 1. ATAC-seq数据分析流程 1.1 上游分析 (1)序列质控和比对 fastqc trim_golare bowtie2 mapping时要加上参数 --very-sensitive -X 2000

weixin_57830892的博客 1万+

代码审计工具学习之Seay(安装以及初步认识)

目录 1.1名词解释 1.2代码审计的重要性 1.3代码审计的步骤 1.4代码审计的内容 1.5常见的代码审计工具 2 Seay 2.1什么是Seay 2.2Seay的安装过程 3典型漏洞分析 3.1什么是命令注入漏洞 3.2 如何理解命令注入漏洞 3.3 如何防御命令注入漏洞 4 利用工具对命令注入漏洞进行分析 4.1DVWA靶场命令注入漏洞分析 4.2 Pikachu靶场命令注入漏洞分析 1.1名词解释 软件代码审计是对编程项目中源代码的全面...

weixin_52515588的博客 2万+

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

流媒体学习笔记----配置一个编码进程 (转)[@more@]XML:namespace prefix = o ns = "urn:schemas-microsoft-com:Office:office" /> ...

cuiji1279的博客 105

FPGA实践教程: 使用HLS将C程序生成IP核心进行FPGA开发

请根据您使用的FPGA开发板和供应商选择适当的HLS工具,并按照他们的安装指南进行安装。根据您使用的FPGA开发板和供应商选择适当的HLS工具,并按照他们的安装指南进行安装。通过本教程,您了解了如何使用HLS工具将C程序生成IP核心,并将其用于FPGA开发。在HLS项目中,您可以对C程序进行设计和优化,以生成对应的IP核心。在HLS项目中,您可以对C程序进行设计和优化,以生成相应的IP核心。将导出的IP核心导入到FPGA项目中。使用FPGA开发环境的菜单中的"导入"或"添加文件"选项导入IP核心。

CqpFsharp的博客 455

hls流媒体学习笔记:mp4转ts

1.ts简介 ts流最早应用于数字电视领域,其格式非常复杂包含的配置信息表多达十几个,视频格式主要是mpeg2。苹果公司发明的http live stream流媒体是基于ts文件的,不过他大大简化了传统的ts流,只需要2个最基本的配置表PAT和PMT,再加上音视频内容就可以了,hls流媒体视频编码的主要格式为h264/mpeg4,音频为aac/mp3。 2.ts格式 ts文件分为三层:ts层(Transport Stream)、pes层(Packet Elemental Strea...

yinhaichen的博客 2001

杰理 JL701N/JL703N USB MIDI 使用教程

摘要:本教程介绍如何在杰理JL701N/JL703N音箱的可视化SDK中配置USB MIDI功能。主要步骤包括:1)启用PC模式;2)修改SDK宏定义启用USB MIDI;3)实现MIDI数据接收处理逻辑;4)调用接口发送MIDI数据;5)使用MIDI-OX测试功能。针对低版本SDK可能出现的设备识别问题,提供了在midi.c文件中添加特定代码行的解决方案。使用前需确保SDK版本达标,并注意备份原始文件。

qq_42014563的博客 1267

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

easydarwin 安装_流媒体技术学习笔记之(十一)Windows环境运行EasyDarwin

流媒体平台框架下载安装Github下载解压安装选择Windows 安装平台的安装包(下载解压)把解压生成的文件夹重命名放在本地磁盘,我这里测试放在E盘:介绍其中的来个批处理文件:start.batWindows调试运行(这个批处理文件是用来做测试Debug服务的,下载安装包的时候已经自带好了)server.batWindows服务方式运行(这个是我自己新建的)脚本代码:cd ./set curPa...

weixin_39826984的博客 280

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

流媒体技术学习笔记之(十一)Windows环境运行EasyDarwin

  流媒体平台框架下载安装 Github下载   下载地址:https://github.com/EasyDarwin/EasyDarwin/releases 解压安装   选择Windows 安装平台的安装包(下载解压)   把解压生成的文件夹重命名放在本地磁盘,我这里测试放在E盘:   介绍其中的来个批处理文件: start.bat   Windows调试运行(这个批处理文件是用来...

Tinywan 1177

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

流媒体技术学习笔记之(六)FFmpeg官方文档先进音频编码(AAC)

先进音频编码(AAC)的后继格式到MP3,和以MPEG-4部分3(ISO / IEC 14496-3)被定义。它通常用于MP4容器格式;对于音乐,通常使用.m4a扩展名。第二最常见的用途是在MKV(Matroska)文件内,因为它比MP4更好地支持嵌入式基于文本的软字幕。本指南中的示例将使用扩展MP4和M4A。 FFmpeg的可支持两个AAC-LC编码器(AAC&libfdk_aac)和一个H...

weixin_30376163的博客 232

流媒体技术学习笔记之(十六)H264编码profile & level控制

H.264有四种画质级别,分别是baseline, extended, main, high: 1、Baseline Profile:基本画质。支持I/P 帧,只支持无交错(Progressive)和CAVLC; 2、Extended profile:进阶画质。支持I/P/B/SP/SI 帧,只支持无交错(Progressive)和CAVLC;(用的少) 3、Main profi...

Tinywan 1966

B站流媒体解析与音视频合并技术学习笔记

本文介绍了流媒体解析与音视频合并的技术学习笔记,重点阐述了DASH流媒体技术原理、音视频分离传输机制,以及从网页解析到文件合并的完整技术流程。内容包括环境准备、核心技术点拆解(网页解析、JSON提取、画质筛选、文件下载和FFmpeg合并),并提供了完整的学习代码示例。文章强调该技术仅用于学习研究,严禁用于侵权行为,所有操作需遵守版权法律和平台规则。

2603_95532426的博客 516

java mysql 流媒体_搭建一个点播跟直播流媒体服务器玩玩 - 程序员众推 - 博客园...

现在抖音、快手等直播实在是太火了,因此对音视频的开发非常感兴趣,查阅了相关资料,使用Nginx搭建一个简单的直播跟点播流媒体服务器,能够实时推流到服务器,同时在网页端播放直播的视频。先上效果​使用OBS软件录制电脑桌面操作推流到自己搭建的流媒体服务器,然后在网页拉流播放。当然也可以采集摄像头、麦克风推流,或者推送本地视频到流媒体服务器。搭建步骤Ubuntu18.04安装nginx-flv模块扩展这...

weixin_42380646的博客 515
上一篇: 流媒体学习---------序
下一篇: 流媒体学习笔记---------编码视频的预览
let5flying
博客等级 码龄25年 5粉丝 16原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值