自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(14)
  • 收藏
  • 关注

原创 QML嵌入QWidget子窗口

所以才导致在使用某些第三方播放器库去设置播放窗口的时候,在用一个qml窗口的情况下,将播放窗口设置为某个子组件,但是最终播放效果却是覆盖了整个qml窗口的原因。而某个QWidget窗口下的子Widget控件和其父Widget的winId并不是同一个windId。qml他是某个qml窗口的所有的子组件都和这个父的qml窗口公用同一个winId的,注意qml和QWidget管理窗口的方式是不一样的。其中的关键是第一行和倒数第一第二两行代码。用QWidget就不会出现这种问题。

2025-03-27 11:59:27 494

原创 MPEGTS容器格式

NIT表的PID值通常是通过 PAT(Program Association Table) 中的 network_PID 字段动态定义而非TS包头中的PID某个固定值来指定。不同类型的数据(音频、视频、字幕、控制信息等)会分配不同的PID。(通常为4字节(32位),包含了包的同步字、PID(Packet Identifier)、包的长度、错误检查等控制信息。TS包的第一个字节为固定的同步字(0x47)。:TS包的负载,负载部分是包的主要内容,通常包含音视频数据、时间戳、同步信息等。

2025-03-26 23:00:25 592

原创 RTSP协议

RTSP本身不直接传输音视频数据,通过和RTCP,RTP一起配合使用,RTSP用来传输控制信息,RTCP传输网络质量反馈信息,RTP用来传输音视频数据,RTP协议一般是基于UDP的,用来提供低延迟的音视频传输。负载类型(PT):60(动态分配的负载类型)。表示: 标识载荷格式(如音频/视频编码类型),需参考具体协议(如RFC 3551)。SDP内容:包含媒体类型(视频/音频)、编解码格式(如H.264)、传输协议(RTP/AVP)、端口等。填充(P):0(无填充)。扩展(X):0(无扩展)。

2025-03-26 19:16:23 415

原创 RTMP协议

fmt为3表示当前chunk是上一个fmt=0的chunk的分片(这里说的RTMP Chunk header就是图中的Basic Header),Basic Header包含了chunk stream ID(流通道Id)和chunk type(chunk的类型),chunk stream id一般被简写为CSID,用来唯一标识一个特定的流通道,chunk type决定了后面Message Header的格式。他是一个基于 TCP的,能够确保可靠的数据传输,提供低延迟的音视频传输的流媒体传输协议。

2025-03-26 18:32:50 489

原创 H264编码介绍

H.264会将每帧分为一个个4x4或者8x8或者其它大小的像素的宏块(要保留更细的细节部分选更小的块大小,反之则反之’XD’),然后根据选择的预测模式不同而去当前帧内找预测宏块,这个预测宏块的选择方式是由预测模式来决定的。2.然后使用像素块匹配技术(全局匹配和快速匹配算法等),计算当前要压缩的帧的当前要计算的宏块与参考帧中所有宏块之间的差异,找到差异最小的一个参考帧宏块,记录下该位置与当前宏块位置的偏移量,这个偏移量被称为运动矢量。运动估计的目的是找到当前帧中的宏块(或子块)在参考帧中的最佳匹配位置。

2025-03-26 18:01:49 1111

原创 Qt编译MySQL驱动(其它数据库驱动也是同理去编译)

5.cd /d 转到…再然后执行cmake --install . --prefix "D:/Qt6/6.5.3/msvc2019_64"进行安装,其中–prefix表示指定安装路径,后面接自己要去安装的路径,不过这里可不能乱写,这里的路径一定要是qt对应的版本的各种插件–也是Qt某个版本的安装路径。-G "MinGW Makefiles"表示用MinGW构建,-G "Visual Studio 17 2022"则是VS2022,-G "Visual Studio 16 2019"则是VS2019。

2025-03-25 20:46:53 754

原创 Qt项目打包流程

其中–debug表示指定的是debug版本的可执行文件,其实这个不写也可以,windeployqt程序会给你自动识别的,主要是后面的–qmldir,这个–qmldir表示指定你的项目的.qml文件的所在路径,如果是普通的qml项目,这个.qml文件是和你的项目文件中的各个.h .cpp文件在同一个目录下,但是如果通过加载自定义路径的.qml文件的话是不在这个默认路径下的,比如兼容于Qt Visual Studio的QQuick项目,这种情况下打包是要指定路径的,否则它并不知道.qml文件在哪。

2025-03-25 20:28:14 450

原创 C++内存屏障

如果此时在剩余寄存器不多的情况下(被注视中的之前的其他操作消耗了),只能复用对变量a操作时的那几个寄存器,然后用这几个寄存器。

2025-03-07 23:28:42 1105

原创 unity c# marchingcube核心算法

【代码】unity c# marchingcube核心算法。

2025-03-07 00:17:30 122

原创 在windows下编译protobuf

goolTest库的下载:有时候在protobuf或者ZIP编译的过程中自动克隆goolTest库会失败,如果可能想自行下载源码并编译好可按如下步骤:##protobuf下载(可去官网直接下载zip压缩包或者git克隆:“git clone https://github.com/protocolbuffers/protobuf.git”)和编译:源码下载好后,用vs在源码目录中打开CmakeList.txt所在文件夹(也就是protobuf源码的这个文件夹)然后按下图进行操作:可选择安装路径,然后在安装后那

2025-03-06 23:36:47 1307

原创 IP(网络地址)与MAC(物理地址)的关系

*IP**:网络地址。公网IP每个都唯一,两个不同的私网里可能会有相同的两个私网IP。(7层模型中的网络层使用)**在网络上的数据包的传输中他们都是必不可少的,而不是MAC地址只在以太网(局域网)中使用****MAC**:物理地址(网卡地址,每个地址都是全球唯一)。(7层模型中的数据链路层使用)

2025-03-06 22:24:30 145 1

原创 在windows上编译protobuf

protobuf的编译要依赖于zlip库,("git clone https://github.com/madler/zlib.git")后进行编译并安装(它编译的debug或者release版要和protobuf编译时的版本对应上):>首先```

2025-03-06 22:11:02 1138

原创 MSVC版std::shared_ptr源码解读

还有就是通过new去创建的共享指针的资源对象,这个对象它在共享指针类型中的对应的资源指针真正的数据类型可能是有两种的,作为共享指针的直接成员的资源对象的指针是其资源对象的基类(如果有,没有就是自身的)类型,作为控制块(Ref_count)的成员的资源对象的指针才是实际的对象的类型(如果传入的对象是一个子类对象的话,控制块中的资源对象的指针类型是这个子类类型)。采用new的方式它会创建一个_Ref_count类型的控制块。创建智能指针对象和用。

2025-03-06 21:55:11 436

原创 对称NAT和非对称NAT

在这种NAT类型下,外部端口和内部端口的映射并不是对称的,即客户端的每个内部IP地址和端口,映射到外部的IP地址和端口对是不同的,不能简单地按照内部端口映射(**简单的'等于'这种映射关系**)回外部端口。非对称NAT的端口映射通常是****的,也就是说,每当内网设备发起新连接时,NAT会为该会话选择一个新的外部端口。这种方式确保了不同的会话(即使是来自同一设备)不会共享相同的外部端口。例如,当多个内网设备同时向外部服务器发起连接时,每个会话都可能会映射到不同的外部端口。

2025-03-06 21:34:28 798

空空如也

空空如也

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

TA关注的人

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