
window多媒体技术
爱技术爱生活
这个作者很懒,什么都没留下…
展开
-
YUY2转换为I420格式
做windows视频采集时需要将yuy2格式转换为I420格式,void YUY2toI420(int inWidth, int inHeight, uint8_t* pSrc, uint8_t* pDest) { int i, j; uint8_t* u = pDest + (inWidth * inHeight); uint8_t* v = u + (inWidth * inHeight) / 4; for (i = 0; i < inHeight / 2; i++) {原创 2020-12-31 17:50:47 · 1217 阅读 · 0 评论 -
YUY2转换为RGB的多种方法
在视频采集图像分析中,需要将采集的格式转换为所需的RGB格式,这里有两种方法:方法1:步骤1:转换为RGB24格式int ConvertYUY2toRGB24(char* pOutputRgb, unsigned char* pInputBuffer, int tInputWidth, int tInputHeight) { unsigned char*原创 2020-12-31 17:44:51 · 2957 阅读 · 0 评论 -
vs2015编译运行程序遇到应用程序无法正常启动0xc000007b的问题
1.按照百度里面的方法安装directx 9c,或下载directx修复工具进行自动修复2.检查是否安装了Microsoft Visual C++、Mircosoft.net framework等库3.发现上述库都安装了依旧会出现这样的问题,建议修复你现在安装的vs2015,修复方法:控制面板=》删除或修改程序=》选择你安装的vs2015=》更改=》重新选择=》修改=》安装参考:http://bl原创 2018-01-18 17:38:24 · 14168 阅读 · 0 评论 -
WebRTC音频接收处理全过程(二)
webrtc拿到订阅远端数据的answer后,设置远端sdp,启动音频渲染线程,循环向neteq的数据包接受队列中拿音频包解码输出webrtc_d.dll!webrtc::AudioDeviceWindowsCore::DoRenderThread() 行2975 C++ 启动渲染进程,取数据包解码后进行渲染webrtc_d.dll!webrtc::AudioDeviceWindowsCore::WSAPIRenderThread(void * context) 行2778 C++w...原创 2021-01-15 15:06:26 · 759 阅读 · 1 评论 -
WebRTC音频接收处理全过程(一)
目录 1.1 接收音频数据包 1.2插入音频数据包到待解码数据包队列1.3 解码音频数据包 1.1 接收音频数据包 cricket::BaseChannel::OnPacketReceived(bool rtcp, const rtc::CopyOnWriteBuffer & packet, __int64 packet_time_us) 行506 cricket::BaseChannel::OnRtpPacket(const webrtc...原创 2021-01-11 16:02:52 · 2181 阅读 · 0 评论 -
IAudioClient播放音频
//-----------------------------------------------------------// Play an audio stream on the default audio rendering// device. The PlayAudioStream function allocates a shared// buffer big enough to hold one second of PCM audio data.// The function uses.原创 2020-09-23 11:41:13 · 1528 阅读 · 1 评论 -
windows dump分析步骤
windbg调试步骤:1、指定pdb路径:SRV*C:\symbols*http://msdl.microsoft.com/download/symbols;PDB目录2、加载dump文件3、切换上下文:.ecxr4、查看堆栈:kp5、分析:!analyze -vvs2015调试步骤:首先把dump文件放到软件安装目录下1、设定符号路径2、运行3、崩溃中断4、浏览源文件...原创 2020-08-28 15:27:13 · 592 阅读 · 0 评论 -
使用JS渲染C++视频流
JS通过C++打开摄像头,并采集得到的数据回传到JS,渲染到web端,实现方式如下:1、通过V8引擎将采集的数据以Buffer数组形式回传2、在cavas画布或webgl上渲染该数据例如:var c=document.getElementById("myCanvas");var ctx=c.getContext("2d");var imgData=ctx.createImage...原创 2019-10-23 15:45:50 · 1069 阅读 · 0 评论 -
WebRTC音频降噪使用
webrtc的ns原理:把启动前50帧的数据拿来构建噪声模型,把启动前200帧的信号强度用来计算归一化的频谱差值计算。根据这两个模型使用概率目的函数来计算出每帧的信噪比并区分出噪声和声音,然后根据计算出的信噪比在频域使用维纳滤波器对噪声信号进行噪声消除,最后在根据降噪前后的能量比和信号噪声似然比对降噪后的数据进行修复和调整后输出。在研究webrtc的降噪模块,这里简述如何使用webrtc的降噪...原创 2019-03-08 19:41:40 · 4148 阅读 · 2 评论 -
webrtc源码分析系列-peerclient的视频编码器设置流程(VP9)
webrtc源码分析系列-peerclient的视频解码及渲染流程webrtc源码分析系列-peerclient的音频解码及播放流程webrtc源码分析系列-peerclient的视频采集、编码、封装及网络发送流程 webrtc源码分析系列-peerclient的音频采集、编码、封装及网络发送流程1、这里分析了编码器的选择和编码器的创建过程 2、编码流程图(VP9编码方...原创 2019-02-21 09:25:14 · 1719 阅读 · 0 评论 -
webrtc源码分析系列-peerclient的视频采集、编码、封装及网络发送流程
webrtc源码分析系列-peerclient的视频解码及渲染流程webrtc源码分析系列-peerclient的音频解码及播放流程webrtc源码分析系列-peerclient的视频采集、编码、封装及网络发送流程webrtc源码分析系列-peerclient的音频采集、编码、封装及网络发送流程1、视频图像采集、编码、封装流程2、RTP视频数据包网络发送流程...原创 2019-02-21 09:25:48 · 1954 阅读 · 0 评论 -
使用SDL2来播放音频
Opening the audio device: SDL_AudioSpec wanted; extern void fill_audio(void *udata, Uint8 *stream, int len); /* Set the audio format */ wanted.freq = 22050; wanted.format = AUDI...原创 2018-10-08 18:10:42 · 1401 阅读 · 0 评论 -
ffmpeg从flv文件中分离aac和pcm数据
快速分离文件时,使用命令行方式比较快速。1、从flv文件中分离aac文件:2、从aac文件中分离pcm文件,s32le中的32是每个采样点的占的位数,即4个字节,也可以是s16le即2个字节:...原创 2018-11-05 15:34:28 · 1423 阅读 · 0 评论 -
ffmpeg实现图像倒转
int reverse_img(unsigned char* src_buf, unsigned char* dst_buf, unsigned int n_src_width, unsigned int n_src_height, unsigned int n_dst_width, unsigned int n_dst_height){ if (src_buf == NULL || dst...原创 2018-11-20 11:35:22 · 2501 阅读 · 0 评论 -
WebRTC中的混音算法
webrtc的混音算法在modules/audio_mixer/frame_combiner.cc文件的FrameCombiner::Combine()函数里主干程序:void FrameCombiner::Combine(const std::vector<AudioFrame*>& mix_list, siz...原创 2018-11-28 20:15:02 · 1786 阅读 · 0 评论 -
在navidia显卡上使用ffmpeg硬编H264
在学习OBS源码过程中,看到它支持的英伟达硬编功能,摘抄一部分重点代码供参看研究直接上代码:参数设置:obs_data_set_default_int(settings, "bitrate", 2500);obs_data_set_default_int(settings, "keyint_sec", 0);obs_data_set_default_int(settings, "...原创 2018-12-07 15:56:41 · 2236 阅读 · 0 评论 -
使用ffmpeg编码aac和opus
在学习OBS源码过程中,看到音频编码部分,摘抄一部分重点代码供参看研究直接上代码:#include <util/base.h>#include <util/circlebuf.h>#include <util/darray.h>#include <obs-module.h>#include <libavutil/opt.h&...原创 2018-12-07 16:06:21 · 4866 阅读 · 0 评论 -
webrtc源码分析系列-peerclient的视频解码及渲染流程
webrtc源码分析系列-peerclient的视频解码及渲染流程webrtc源码分析系列-peerclient的音频解码及播放流程webrtc源码分析系列-peerclient的视频采集、编码、封装及网络发送流程webrtc源码分析系列-peerclient的音频采集、编码、封装及网络发送流程1、RTP网络视频包获取流程2、视频包解封装解码渲染过程...原创 2019-02-21 09:26:05 · 2085 阅读 · 3 评论 -
webrtc源码分析系列-peerclient的音频解码及播放流程
webrtc源码分析系列-peerclient的视频解码及渲染流程webrtc源码分析系列-peerclient的音频解码及播放流程webrtc源码分析系列-peerclient的视频采集、编码、封装及网络发送流程webrtc源码分析系列-peerclient的音频采集、编码、封装及网络发送流程1、网络RTP音频数据包的获取2、音频解码及播放流程...原创 2019-02-21 09:25:56 · 1717 阅读 · 1 评论 -
windows下使用CoreAudio采集音频
最近看obs的音频采集,发现它在采集音频时用到了两个方法:默认音频设备时采用CoreAudio、指定音频设备时采用DirectShow对windows下的CoreAudio技术不是太熟,于是就认真学了一下。参考微软官方文档:https://docs.microsoft.com/zh-cn/windows/desktop/CoreAudio/capturing-a-stream//--...原创 2018-08-17 15:07:57 · 6566 阅读 · 4 评论