<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[wdglhack的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/wdglhack</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; wdglhack]]></copyright><item><title><![CDATA[ffmpeg解码h264流数据并用opencv显示]]></title><link>https://blog.youkuaiyun.com/wdglhack/article/details/115200423</link><guid>https://blog.youkuaiyun.com/wdglhack/article/details/115200423</guid><author>wdglhack</author><pubDate>Thu, 25 Mar 2021 10:44:47 +0800</pubDate><description><![CDATA[最近再做一个项目，需要播放服务端传过来的h264裸流数据，于是做了一个简易的播放器，采用ffmpeg解码h264并用opencv显示图像。

实现原理很简单，就是接收到一个完整的h264帧之后传给ffmpeg的AVPacket，然后调用avcodec_send_packet()和avcodec_receive_frame()解码，得到一个AVFrame，然后调用sws_scale()把解码后的yuv图像转换成opencv能使用的RGB图像，然后每解码转换一帧数据就调用一次cv::imshow()显示...]]></description><category></category></item><item><title><![CDATA[海康、国标PS流数据解析]]></title><link>https://blog.youkuaiyun.com/wdglhack/article/details/114999974</link><guid>https://blog.youkuaiyun.com/wdglhack/article/details/114999974</guid><author>wdglhack</author><pubDate>Fri, 19 Mar 2021 11:19:54 +0800</pubDate><description><![CDATA[最近做的一个项目，需要对接海康摄像头传过来的视频数据，经过分析知道传过来的是PS封装后的数据，不能直接播放，需要把PS流解析成h264裸流。经过研究有两种方法：1.直接扔给ffmpeg解析，这种方法需要用AVIOContext自定义输入；2.自己解析PS流，这种方法比较直接，只要熟悉PS解析的流程就可以做。我两种方法都实现了，刚开始是用ffmpeg，后来发现因为需要开线程，异步读写，复杂性较高，最主要是因为出现一个内存一直上涨的问题一直没解决，然后想着能不能自己解析PS，于是网上找了很多资料，终于也...]]></description><category></category></item><item><title><![CDATA[export LD_LIBRARY_PATH 的使用]]></title><link>https://blog.youkuaiyun.com/wdglhack/article/details/112368697</link><guid>https://blog.youkuaiyun.com/wdglhack/article/details/112368697</guid><author>wdglhack</author><pubDate>Fri, 08 Jan 2021 16:21:31 +0800</pubDate><description><![CDATA[对linux不是很熟，之前只是听说过可以设置程序共享库位置也就是 使用 “exportLD_LIBRARY_PATH”

今天用了用，感觉还挺不错，也很常用。

比如你编译了一个so 而这个so 同时又依赖其他第三方库。如果你想把你编译的so 提供给别人用的话，你不光提供你的so 同时也要提供你的so所依赖的其他第三方库。

比如在别人上电脑上要使用你的so 的话 ，该so存放在其电脑 /home/other/test 目录下：



其中lib就是你的libxxxx.so 所依赖的第三方库。如果对方机器.]]></description><category></category></item><item><title><![CDATA[求线段与圆弧的交点]]></title><link>https://blog.youkuaiyun.com/wdglhack/article/details/111878621</link><guid>https://blog.youkuaiyun.com/wdglhack/article/details/111878621</guid><author>wdglhack</author><pubDate>Tue, 29 Dec 2020 10:22:55 +0800</pubDate><description><![CDATA[最近面试遇到一个问题，就是已知一条线段的两个端点坐标，和一个圆弧(起始点逆时针旋转到终止点的圆弧)的圆心坐标，半径，起始角和终止角(起始角和终止角是指以x轴正方向为起点，逆时针转动的角度)，求线段和圆弧的交点。
...]]></description><category></category></item><item><title><![CDATA[rtmp 协议详解]]></title><link>https://blog.youkuaiyun.com/wdglhack/article/details/109812947</link><guid>https://blog.youkuaiyun.com/wdglhack/article/details/109812947</guid><author>wdglhack</author><pubDate>Sun, 22 Nov 2020 21:52:32 +0800</pubDate><description><![CDATA[rtmp 协议详解

1. handshake

1.1 概述

rtmp 连接从握手开始。它包含三个固定大小的块。客户端发送的三个块命名为 C0,C1,C2；服务端发送的三个块命名为
S0,S1,S2。

握手序列：

客户端通过发送 C0 和 C1 消息来启动握手过程。客户端必须接收到 S1 消息，然后发送 C2 消息。客户端必须接收到
	S2 消息，然后发送其他数据。
	服务端必须接收到 C0 或者 C1 消息，然后发送 S0 和 S1 消息。服务端必须接收到 C2 消息，然后发送其他数据。
握手示意]]></description><category></category></item><item><title><![CDATA[游戏帧同步的流程与实现]]></title><link>https://blog.youkuaiyun.com/wdglhack/article/details/109965636</link><guid>https://blog.youkuaiyun.com/wdglhack/article/details/109965636</guid><author>wdglhack</author><pubDate>Sun, 22 Nov 2020 21:51:43 +0800</pubDate><description><![CDATA[大纲

帧同步的基本原理
	帧事件数据采集
	帧同步的事件处理与动画
	帧同步的逻辑数据同步
	帧同步之跳帧处理
现代多人游戏中，多个客户端之间的通讯大多以同步多方状态为主要目标，为了实现这一目标，主要有两个技术方向：

状态同步
	帧同步
状态同步

状态同步简单来说就是同步游戏中的各种状态，当客户端发送游戏动作到服务器，服务器接收到之后，通过计算游戏行为的结果，然后广播下发给客户端游戏中的各种状态数据。客户端接收到状态数据后显示内容。这种做法类似于各个客户端都在远程操作服务器上的软件。例如最高的mud，]]></description><category></category></item><item><title><![CDATA[【视频】H.264 NALU简介]]></title><link>https://blog.youkuaiyun.com/wdglhack/article/details/109812806</link><guid>https://blog.youkuaiyun.com/wdglhack/article/details/109812806</guid><author>wdglhack</author><pubDate>Thu, 19 Nov 2020 15:07:28 +0800</pubDate><description><![CDATA[【视频】H.264 NALU简介

一、简介

    在H.264/AVC视频编码标准中，整个系统框架被分为了两个层面：视频编码层面（VCL）和网络抽象层面（NAL）。其中，前者负责有效表示视频数据的内容，而后者则负责格式化数据并提供头信息，以保证数据适合各种信道和存储介质上的传输。因此我们平时的每帧数据就是一个NAL单元（SPS与PPS除外）。在实际的H264数据帧中，往往帧前面带有00 00 00 01 或 00 00 01分隔符，一般来说编码器编出的首帧数据为PPS与SPS，接着为I帧……...]]></description><category></category></item><item><title><![CDATA[AAC的ADTS头解析]]></title><link>https://blog.youkuaiyun.com/wdglhack/article/details/109812683</link><guid>https://blog.youkuaiyun.com/wdglhack/article/details/109812683</guid><author>wdglhack</author><pubDate>Thu, 19 Nov 2020 15:03:38 +0800</pubDate><description><![CDATA[AAC的ADTS头解析

1. ADTS(Audio Data Transport Stream)头之于AAC

AAC音频文件的每一帧都由一个ADTS头和AAC ES(AAC音频数据)组成。



AAC数据帧

2. ADTS头分析

ADTS头包含了AAC文件的采样率、通道数、帧数据长度等信息。ADTS头分为固定头信息和可变头信息两个部分，固定头信息在每个帧中的是一样的，可变头信息在各个帧中并不是固定值。ADTS头一般是7个字节((28+28)/ 8)长度，如果需要对数据进行CRC校验，则会有2个By]]></description><category></category></item><item><title><![CDATA[RTP协议分析]]></title><link>https://blog.youkuaiyun.com/wdglhack/article/details/109812109</link><guid>https://blog.youkuaiyun.com/wdglhack/article/details/109812109</guid><author>wdglhack</author><pubDate>Thu, 19 Nov 2020 14:51:34 +0800</pubDate><description><![CDATA[RTP协议分析

第1章.RTP概述

1.1.RTP是什么

RTP全名是Real-time Transport Protocol（实时传输协议）。它是IETF提出的一个标准，对应的RFC文档为RFC3550（RFC1889为其过期版本）。RFC3550不仅定义了RTP，而且定义了配套的相关协议RTCP（Real-time Transport Control Protocol，即实时传输控制协议）。RTP用来为IP网上的语音、图像、传真等多种需要实时传输的多媒体数据提供端到端的实时传输服务。...]]></description><category></category></item><item><title><![CDATA[flv格式详解+实例剖析]]></title><link>https://blog.youkuaiyun.com/wdglhack/article/details/109811722</link><guid>https://blog.youkuaiyun.com/wdglhack/article/details/109811722</guid><author>wdglhack</author><pubDate>Thu, 19 Nov 2020 14:42:05 +0800</pubDate><description><![CDATA[flv格式详解+实例剖析

(转载自https://www.cnblogs.com/lidabo/p/9018548.html)

简介

FLV（Flash Video）是现在非常流行的流媒体格式，由于其视频文件体积轻巧、封装播放简单等特点，使其很适合在网络上进行应用，目前主流的视频网站无一例外地使用了FLV格式。另外由于当前浏览器与Flash Player紧密的结合，使得网页播放FLV视频轻而易举，也是FLV流行的原因之一。

FLV是流媒体封装格式，我们可以将其数据看为二进制字节流。总体上看，FLV包]]></description><category></category></item><item><title><![CDATA[微信公众号调起微信内置浏览器h5支付]]></title><link>https://blog.youkuaiyun.com/wdglhack/article/details/80089674</link><guid>https://blog.youkuaiyun.com/wdglhack/article/details/80089674</guid><author>wdglhack</author><pubDate>Thu, 26 Apr 2018 17:06:49 +0800</pubDate><description><![CDATA[（一）微信公众号和微信商户平台配置根据微信公众平台的使用教程配置一、设置支付目录请确保实际支付时的请求目录与后台配置的目录一致，否则将无法成功唤起微信支付。在微信商户平台（pay.weixin.qq.com）设置您的公众号支付支付目录，设置路径：商户平台--&amp;gt;产品中心--&amp;gt;开发配置，如图7.7所示。公众号支付在请求支付的时候会校验请求来源是否有在商户平台做了配置，所以必须确保支付目录已...]]></description><category></category></item><item><title><![CDATA[cocos creator 游戏接入微信登录]]></title><link>https://blog.youkuaiyun.com/wdglhack/article/details/79415005</link><guid>https://blog.youkuaiyun.com/wdglhack/article/details/79415005</guid><author>wdglhack</author><pubDate>Thu, 01 Mar 2018 17:31:44 +0800</pubDate><description><![CDATA[一、登录微信公众平台，在“开发——基本配置”配置appid，开发者密码，IP白名单

二、在“开发——接口权限——网页服务——网页授权”配置网页授权域名



如上图，点击设置后如下图



根据注意事项，把文件下载至填写域名的web服务器的目录，我是放到...Tomcat 8.5\webapps\ROOT目录下，如果不清楚可以拷贝多份放到各个你认为适合的目录。

并且修改tomcat的端口，把8...]]></description><category></category></item><item><title><![CDATA[HTTP协议详解]]></title><link>https://blog.youkuaiyun.com/wdglhack/article/details/78920608</link><guid>https://blog.youkuaiyun.com/wdglhack/article/details/78920608</guid><author>wdglhack</author><pubDate>Thu, 28 Dec 2017 12:00:56 +0800</pubDate><description><![CDATA[转自：http://blog.youkuaiyun.com/gueter/archive/2007/03/08/1524447.aspx

Author :Jeffrey


引言


HTTP是一个属于应用层的面向对象的协议，由于其简捷、快速的方式，适用于分布式超媒体信息系统。它于1990年提出，经过几年的使用与发展，得到不断地完善和扩展。目前在WWW中使用的是HTTP/1.0的第六版，HT]]></description><category></category></item></channel></rss>