自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(40)
  • 资源 (12)
  • 收藏
  • 关注

原创 ffmpeg 实现多视频轨录制到同一个文件

在视频录制中,有时会碰到这样一个需求,将不同摄像头的画面写入到一个视频文件,这个叫法很多,有的厂家叫合流模式,有的叫多画面多流模式。无论如何,它们的实质都是在一个视频文件上实现多路不同分辨率视频的保存。经过调查,支持这种需求封装格式的有MP4、MOV、MKV 等,这里因为MP4 格式应用最广泛。

2023-12-04 14:43:43 871

原创 ubuntu Setforeground 前台应用切换

windows 平台有Setforeground 这个api,可以根据进程ID,将某个应用的窗口切换到前台。ubuntu 并没有类似的api, 这里借助xdotool 这个第三方库,实现类似的功能。有这样一个系统,一个服务主进程用于接收指令,其它服务是独立的gui 程序,服务进程根据命令将对应的gui 程序切换到前台。git clone 后,直接make,生成动态库libxdo 和执行程序程序 xdotool。search 返回的ID 如果有多个,是因为一个进程有多个窗口,需要根据窗口标题再筛选。

2023-11-20 18:19:20 156

原创 System.Reflection.ReflectionTypeLoadException: 无法加载一个或多个请求的类型。有关更多信息,请检索 LoaderExceptions 属性。

节点,就可以看到哪些库加载出错。我的问题是VS2019 创建的工程,vs 2022编译就有问题,直接升级blc包就行。这个错网上说的挺多,就是不告诉怎么分析。将出错的代码用try catch 包起来。vs 打断点展开ex 下的。

2023-01-08 16:15:21 1112 1

原创 libopus 实现pcm 编码到opus

opus 是一种音频格式,常用于语音通话、视频会议中。最近做了个pcm 到opus 的编码,踩了不少坑,特此记录一下。

2022-08-29 11:14:07 3410 6

原创 Windbg 快速定位C# 动态库依赖问题

部署 C# windows 程序的时候,经常会遇到在开发环境中跑得好好的,在客户电脑莫名奇妙找不到库,导致无法正常启动程序。话不多说,正文开始。然后在出现问题的电脑执行相同的操作,得到类似的信息,对比信息,可以知道大概是确实啥库导致的,这里缺少的是 MSVCP140.dll。还有一种情况是dll库都在,但是加载dll库报错,也可以通过加载的dll 顺序看出来。在开发环境下,运行windbg,打开执行文件,按F5 让程序跑起来。会看到正常情况下dll加载信息,这些就是正常运行需要用到的dll。...

2022-08-26 18:02:26 532

原创 Crypto-JS 解密失败 Uncaught Error: Malformed UTF-8 data

java 加密js 解密,报错 Uncaught Error: Malformed UTF-8 datajs 端原因是字符串有换行符,Base64 生成出现换行,改为NO_WRAP

2022-06-16 16:48:45 3008

原创 js websocket onClose 回调问题

1、websocket 调用close 方法后,onclose 事件不会马上触发,大概10S 左右才会触发,有时主动调用close 方法 后就不需要触发onclose 事件,可以设置onclose 事件为undefined。或者如果用 addEventListener 注册的事件,可以使用removeEventListener 移除相关事件。2、怎么判断onclose 事件是哪个websocket 触发的,可以在onclose 里面拿到currentTarget 对象进行比较。 至于onclos

2022-06-10 09:56:06 3782

原创 H5 监测Video 视频流分辨率

js 监控Video 视频流分辨率切换

2022-04-24 09:58:15 813

原创 js 实现sps 解析获取视频分辨率

function ceil(val){ return Math.ceil(val);}//获取buf 的前n个bit组成的值function u(bitCount, buf){ var ret = 0; for( var i = 0;i< bitCount;i++) { ret <<= 1; if (buf[Math.floor(startBitIndex / 8)] & (0x80 >> (startBitIndex %..

2022-03-24 09:43:00 1198

原创 webrtc android 编译报错整理

1、UnicodeDecodeError: 'ascii' codec can't decode byte 0xe6 in position 685: ordinal not in range(128)Traceback (most recent call last): File "/usr/lib/python3.6/multiprocessing/pool.py", line 120, in worker result = (True, func(*args, **kwds)) F

2022-02-19 17:01:41 1552

原创 MSE H265 支持调查

MSE api 经常用于浏览器视频播放中,一般用来将H264 等编码的视频打包成fmp4,然后喂给video 标签实现流媒体播放。于是猜想既然video 标签能直接支持播放的,MSE 理论上也能进行流式播放,那么H265 编码的视频流是不是也能通过MSE 播放呢?答案是肯定的!但悲催的是chrome 浏览器等不支持H265 编码,国内支持H.265 的浏览器只有360 安全/极速浏览器 桌面端,QQ/微信 手机端内置浏览器 ,也就是说小程序好歹是用的。以下是我的测试代码(摘抄自MDN ,需要起一个htt

2021-11-30 15:28:07 1773

原创 C++ websocket 使用体验

websocket 是一个基于tcp的应用层协议,在网页端开发经常会用到。一开始我以为websocket库也像C#、java、javascript 那样,几句话搞定。using System;using WebSocketSharp;namespace Example{ public class Program { public static void Main (string[] args) { using (var ws = new WebSo...

2021-11-30 14:52:39 873

原创 VSCode C/C++ 多文件远程开发 -- gdb

vscode 是一个开的文本编辑器,通过插件可以编写、调试程序,用于Linux 远程开发非常方便,再也不用1、基本常识launch.jsonlunch.json 用于配置vscode 如何调试程序tasks.json指示 vscode 如何编译源码,获得生成文件c_cpp_properties.json这文件影响 C/C++ 插件的智能提示,不影响编译,可加可不加。2、文件配置launch.json{ // 使用 IntelliSense 了解相关属.

2021-10-28 21:46:17 409

原创 WebRTC 报错:Failed to set remote offer sdp: Called with SDP without DTLS fingerprint

这是android app端和网页端建立sdp 的时候触发的,意思是在sdp 找不到dtls 相关内容,解决办法就是更新webrtc 库,设置 enableDtlsSrtp = true rtcConfig.enableDtlsSrtp = true; mPeerConnection = mFactory.createPeerConnection(rtcConfig, pcConstraints, mPcObserver);至于网上说一些答案说createoffer 里设置DtlsSrtp.

2021-08-16 11:03:44 1739 1

原创 Webassembly 学习3 -- 打造web端的aac 播放器

1、引言 aac 是很常见的音频格式,压缩率比mp3 还高,H5 支持从audio 标签文件读取aac 文件并播放,但不支持从网络流中直接读取。这里借助webassembly 技术,将aac 转码成pcm码流,再借助web audio api 实现aac音频播放。主要用到的开源库有faad、pcm-player 2、编译 进入faad 官网,http://www.linuxfromscratch.org/blfs/view/svn/multimedia/faa...

2021-07-04 14:59:04 1459

原创 davfs & nextclound 创建文件出现invalid argument

有同事反映,davfs 挂载nextcloud webdav网盘后,无法进行文件读写。我用坚果云试了一遍,读写操作正常,换到nextcloud,就无法创建文件,并提示无效参数,是只好看源码定位。 修改/etc/davfs2/davfs2.conf 文件,添加字段debug most,表明尽可能记录日志信息,日志文件...

2021-05-09 15:28:01 2688

原创 Webassembly 学习2 -- Js 与C 数据交互

1、简单的C/C++ 编写 我们可以将C代码 编译成wasm 文件供js 调用,C文件的写法和我们普通的C写法并没有太大区别,不需要太多的封装,连main 入口都可以丢弃。例如C实现一个简单的加法计算#include <stdio.h>int add(int a, int b){ int sum = a + b; printf("计算结果 %d\n", sum); return sum;} 编写脚本,编译C 文件成wa...

2021-04-14 17:30:52 1115

原创 davfs 移植到android 踩坑之旅

1、Davfs 简介 Davfs 是一个支持webdav 协议的库,可以等支持webdav 协议的挂载到本地文件系统,

2021-04-06 13:49:12 1531

原创 记一次webrtc Core audio崩溃的bug

网上随便下了一个webrtc window 版的例子,前段时间运行的好好的,不知系统改了啥,一运行就崩溃了,报错长这样崩溃报错 直接就死在初始化工厂那里,日志信息如下,百度、google 搜了一遍全部也没有找到解决办法webrtc_video_engine.cc:473): WebRtcVideoEngine::WebRtcVideoEngine()(webrtc_voice_engine.cc:196): WebRtcVoiceEngine::WebRtcVoiceEngine(w...

2021-02-20 18:13:23 1413

原创 安利一个window api 返回值查询网站

window 开发中,常常遇到各种各样奇奇怪怪的返回值,比如d3d,系统api 等,window 中称为hresult。安利一个网站,可以快速定位返回值含义,地址:https://www.hresult.info/ 使用方法很简单,直接输入错误码查找。 ...

2021-02-19 15:04:15 128

原创 Webassembly 学习1 -- 环境搭建

最近一直在捣鼓webassembly 的东西,趁着还有个印象,赶紧记下来。 老规矩,上官网,https://emscripten.org/,按照官网教程一步步来(强烈建议挂梯子)。git clone https://github.com/emscripten-core/emsdk.git# Enter that directorycd emsdkFetch the latest version of the emsdk (not needed the first time ...

2021-01-07 16:41:00 262

原创 jmuxer.js 之二 -- 简单使用

1、参数配置jmuxer 实例化时,有以下参数node:mode:flushingtime:clearBuffer:是否自动清除bufferfps:

2020-11-25 21:34:12 4066

原创 jmuxer.js 之一 -- 环境搭建及demo测试

最近在捣鼓web端的音视频,有这么一个需求,web端需要显示流媒体,性能不能太差,而且协议是私有协议,性能不能太差,方案试了一圈,最终可能符合的方案的只有mse 和wasm。这里先不对wasm 进行讨论,主要是讲mse。mse 全称是Media Source Extensions,...

2020-10-21 17:16:41 2333

原创 在DLL 中输出调试信息

在C++ dll 中使用printf输出调试信息,可能会出现输出信息不及时的问题(尤其是在C#项目中),可以使用OutputDebugString 函数代替。这里为了方便,将OutputDebugString封装成一个函数,顺便支持不定长参数和时间打印,便于使用。#include <windows.h>#include <stdio.h>#include <stdarg.h>void ShowDbgInfo(const char* data, ...)..

2020-09-03 16:55:01 4106 1

原创 VS2017 编译Windows下可用的librtmp 库

librtmp 是开源项目rtmpdump的一个子模块,官网:http://rtmpdump.mplayerhq.hu/,librtmp库封装了rtmp协议,可以用于rtmp推流/拉流,编译rtmpdump 需要用到openssl,zlib第三方库,下面分步骤介绍。1、获取源码可以直接从官网页面的git库获取,也可以在http://rtmpdump.mplayerhq.hu/download/下载,选择最新的rtmpdump-2.3.tgz,下载并解压。带有windows的是已经编译好的,包里面..

2020-08-19 09:50:34 662

原创 wpf D3DImage 偶现性无法渲染图像,D3D设备丢失的解决办法

最近碰到这样的现象,在一些笔记本上使用D3DImage控件渲染时,会有一定几率无法显示图形。图形显示流程大概是C++ 创建Surface,渲染好后传递指针给D3DImage显示。查了一遍C++层,返回值都是对的,连个错误码都没有,而且C++写的渲染Demo在同样的环境下可以正常运行。 然后就怀疑C# 层渲染出了问题,果不其然D3DImage的一个属性IsFrontBufferAvailable为false了,MSDN说该属性偶尔可能为 false,为false的时候D3DImage是无法

2020-07-23 17:28:51 1621

原创 OpenTK 学习资料分享

OpenTK是opengl的C# 封装,网上例子真是少的可怜,不过官网github给了挺多例子,https://github.com/opentk/LearnOpenTK,建议和https://learnopengl-cn.github.io/(需要科学上网)对照着看。官网给的例子clone下来后,每个项目右击点击属性,在应用程序-目标框架中选择 net4.7.1,重新编译就可以运行。运行如下...

2020-07-03 09:42:13 1343

原创 Wpf KeyDown事件捕捉出现ImeProcessed的解决办法

WPF中使用键盘事件KeyDown获取键值的时候,如果输入法状态为中文,获得的值是ImeProcessed,查了下MSDN,意思是这个事件被输入法处理了,这样就获取不到正确的键值,每次都要切换成英文很烦人!据我说知,解决办法有2种(1) 最简单的,在控件上禁用输入法(2)使用键盘钩子,获取按下按键的键值。参考链接:https://www.cnblogs.com/lonelyxmas/p/7681685.html...

2020-06-28 09:37:45 1830

原创 Windows 下软件部署踩坑之DLL not find

2020-06-07 15:06:05 649

原创 Windows 下内存泄露定位之CrtDumpMemoryLeak

看过很多windows下关于CrtDumpMemoryLeaks的文章,很多照着做,还是定位不到具体哪一行泄露的,这里总结一下,方便大家排查。1、宏替换#define _CRTDBG_MAP_ALLOC#include <stdlib.h>#include <crtdbg.h>#ifdef _DEBUG #define new new(_NORMAL_BLOCK, __FILE__, __LINE__)#endif在头文件上,加上一下代码,替换掉...

2020-06-07 14:10:27 691

原创 OpenFec 基本使用

OpenFec(官网:http://www.openfec.org/)是一个项目,主要处理正向纠错码,在通信中加上一些冗余数据,在网络质量差、丢包的时候,可以根据这些冗余数据恢复出原来的数据。目前OpenFec项目支持以下编码:(1) Reed-Solomon over GF(28)(2) Reed-Solomon stable codec over GF(2m)(3) ...

2020-04-26 10:40:18 3361

原创 反编译工具.NET Reactor 简明教程

.NET Reactor 简介.NET Reactor 是针对.NET Framework编写的软件的功能强大的代码保护和软件许可系统,并支持生成.NET程序集的所有语言,.NET Reactor支持对C#、VB等语言生成的dll、exe等进行加固和混淆。为什么要进行加固wpf、winform等框架生成的执行文件是可以被ILSPY等软件反编译的,只要将exe文件拖到ILSPY,源...

2020-03-29 14:39:08 3970

原创 LNK1181 无法打开输入文件“winmm.lib”

在属性-> VC++目录->引用目录 插入$(LibraryPath),真实路径在E:\Windows Kits\10\Lib\10.0.17134.0\um\x86,SDK是10.0.17134.0,重新编译通过。

2020-01-16 22:56:29 1823

原创 WPF 视频流渲染优化思路及经验总结

回顾我在wpf上渲染视频流的历程,可以分为三个阶段:以下方案都是在ffmpeg中解码后,回调到WPF中进行渲染1、使用WPF嵌套winform控件,在winform控件上使用GDI渲染RGB数据,这个方案拖动窗口会有严重的闪烁问题,无解。2、使用WriteableBitmap,将一个Image控件的Sourece指定为WriteableBitmap,在C++中回调C#,通过Marsh...

2020-01-14 18:53:19 2022 2

原创 Intel qsv + ffmpeg 硬解h264

Quick Sync Video,简称qsv,是英特尔推出的集成加速接口,使用该接口可以硬解h264,提高解码效率的同时降低CPU占用率,ffmpeg 4.4.2中 doc\example中有一个qsvdec.c的demo,我在此基础上进行修改,实现了硬解h264。 环境准备 下载安装Intel Media Mdk,https://software.intel.com/en-us...

2020-01-13 09:49:27 6549 8

原创 C# mailto方式发送邮件乱码

原先的代码大概如下: private void SendMail(string mailAddress, string topics) { string message = string.Format("mailto:{0}?subject={1}", mailAddress, topics); System.Diagnosti...

2019-08-12 15:22:47 721

原创 WPF事件没有触发的原因分析

最近刚接触WPF,经常发现控件关联的事件没有触发,网上查了一下资料,大概有以下几个原因:1、某些控件需要获取焦点,才能捕捉到该事件 比如KeyDown事件,如果是Grid等布局类控件,触发KeyDown事件的前提是该控件获得焦点,需要在Xaml上添加Fo <Grid x:Name="gridRoot" Focusable="True" MouseDown="GridRoot...

2019-05-30 17:27:58 2439

原创 CSkin界面库窗体设置

    CSkin界面库是一款免费的C#界面库,具有小巧免费,拓展性强,容易上手等优点,适合用于中小规模软件的开发。使用这个界面一年多了,但一般最多也只是改改颜色之类的简单应用,官网也只给了简单的例子,并没有说明文档,大部分都得靠自己摸索和实践,于是想简单介绍一下这个界面库。    从官网http://www.cskin.net/下载界面库,解压有两个dll文件,一个是dll文件,一个是net...

2019-01-16 16:13:46 8028 7

原创 WinForm DataGridView加快CheckBox勾选速度

    工作中经常需要用到DataGridView显示数据,需要在DataGridView中用到CheckBox,我的添加ChexkBox方法比较简单,代码如下: DataTable table = new DataTable(); table.Columns.Add("choice", typeof(bool)); table.Columns.Add("id")...

2018-08-22 17:24:51 1416 2

原创 C#导出excel引发COMException (0x80040154)异常

最近在维护一个测试软件,导出excel时发生System.Runtime.InteropServices.COMException (0x80040154)异常,判断应该是COM调用出现问题。尝试了以下两种方法:(1)使用regsvr32  dll路径 命令注册组件,弹出找不到入口点 DllRegisterServer点错误对话框,失败。(2)安装WPS,问题解决,异常也没有弹出。结论:如果程序调...

2018-04-12 15:59:18 2649

vscodeTest.tar.gz

vscode 远程调试C/C++ ,里面用到了一个websocket库

2021-10-09

webaudio播放aac.zip

web端调用webaudio 播放aac实时流,aac解码由faad C代码实现

2021-07-04

rsa_sm2测试代码.tar.gz

调用openssl 实现SM2 算法加密/解密,工程编译通过,需要配置NDK 环境,编译执行build 即可。

2021-06-09

Intel qsv 硬解h264 Demo

一个调用intel qsv硬解码h264的例子,修改自ffempg 的qsvdec.c,使用SDL2 对解码出来的码流进行渲染

2020-01-13

MediaSDK2019R1.exe

Intel MediaSDK 2019 windows版,适合音视频学习。里面主要是一些库和文档,也有示例代码

2020-01-03

CSkin界面库例子程序

一个CSKin界面库应用的简单例子,感兴趣的可以下载下来看看。

2019-01-16

ffmpeg音视频同步Demo

Windows平台上的音视频同步Demo,原作者博客链接:http://www.cnblogs.com/wangguchangqing/p/5900426.html,下载的工程文件不能编译通过,这个问题新手会很头疼,我修改并重新配置了工程,下载即可编译通过,使用VS2012等IDE打开

2018-10-30

Duilib界面设计软件DuiDesigner

看了下CSDN其它DuiDesigner的下载积分竟然要11分!顿时觉得我连资源都下不起了。软件非本人所写,从GitHub作者下载了源码,编译一下可以使用,有兴趣可以自己编译:https://github.com/progmboy/duilib

2017-12-29

CommMonitor7.0串口调试软件

一款不占用串口的串口监控软件,支持串口状态信息过滤、记录导出,支持二次开发,安装完成后有相关的Demo,支持C#,C++,Java,Dehphi,VB等语言调用。

2017-09-22

安卓TCP/UDP网络调试软件

网上找的安卓网络调试软件总是有许多闪退的BUG,这个软件算是比较稳定的,支持TCP/UDP,十六进制/ASCII码,适合用来测试GPRS通信。安卓7.0测试正常使用,默认隐藏了网路设置,从左往右滑动屏幕可以看到网络设置。

2017-08-03

TMS320F2833系列官网例程

TMS320F2833系列的程序及官方资料文档

2016-03-15

windowsmedia 编码器 64位

做屏幕录像时发现win7 64位下一般不支持32 位windowsmedia 编码器,此为64位版,亲测能用。

2015-06-22

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除