<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[lidec的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/lidec</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; lidec]]></copyright><item><title><![CDATA[nara wpe去混响学习笔记]]></title><link>https://blog.youkuaiyun.com/lidec/article/details/146573094</link><guid>https://blog.youkuaiyun.com/lidec/article/details/146573094</guid><author>lidec</author><pubDate>Thu, 27 Mar 2025 22:26:25 +0800</pubDate><description><![CDATA[nara wpe 音频去混响流程学习与分析]]></description><category></category></item><item><title><![CDATA[协程切换原理与实践 -- 从ucontext api到x86_64汇编]]></title><link>https://blog.youkuaiyun.com/lidec/article/details/130665629</link><guid>https://blog.youkuaiyun.com/lidec/article/details/130665629</guid><author>lidec</author><pubDate>Sun, 14 May 2023 12:10:06 +0800</pubDate><description><![CDATA[实现一个对称协程切换的demo，相同流程先使用ucontext api实现，了解流程后再使用x86_64汇编实现，x86_64汇编直接拷贝了开源项目libco的代码，封装成类似ucontext api的方法调用。文章最后实现一个可以选择使用ucontext和汇编切换协程的简单demo。]]></description><category></category></item><item><title><![CDATA[wasm 视频解码渲染实现]]></title><link>https://blog.youkuaiyun.com/lidec/article/details/128178176</link><guid>https://blog.youkuaiyun.com/lidec/article/details/128178176</guid><author>lidec</author><pubDate>Mon, 05 Dec 2022 00:00:57 +0800</pubDate><description><![CDATA[实现一个wasm视频解码渲染的小demo，网页端集成emcc编译的ffmpeg库，实现视频解码，使用WebGL实现视频渲染。demo中包含了一个基于mongoose的微型Web服务器，用于网页的Web服务和视频流传输，基本无需额外搭建环境以及编译第三方库，可以简单地移植到嵌入式系统中用于网页视频播放视频。]]></description><category></category></item><item><title><![CDATA[卡尔曼滤波在Webrtc中应用的理解]]></title><link>https://blog.youkuaiyun.com/lidec/article/details/124918389</link><guid>https://blog.youkuaiyun.com/lidec/article/details/124918389</guid><author>lidec</author><pubDate>Sun, 22 May 2022 23:48:36 +0800</pubDate><description><![CDATA[总结了自己对卡尔曼滤波的理解以及卡尔曼滤波在webrtc中视频播放控制的应用。通过抽离webrtc代码并模拟数据输入加深对算法流程的理解。]]></description><category></category></item><item><title><![CDATA[使用Xcode调试FFmpeg内部代码]]></title><link>https://blog.youkuaiyun.com/lidec/article/details/122531908</link><guid>https://blog.youkuaiyun.com/lidec/article/details/122531908</guid><author>lidec</author><pubDate>Mon, 17 Jan 2022 01:42:27 +0800</pubDate><description><![CDATA[Xcode调试FFmpeg]]></description><category></category></item><item><title><![CDATA[ffmpeg中AVPacket与AVFrame中数据的传递与释放]]></title><link>https://blog.youkuaiyun.com/lidec/article/details/118998366</link><guid>https://blog.youkuaiyun.com/lidec/article/details/118998366</guid><author>lidec</author><pubDate>Thu, 22 Jul 2021 14:56:28 +0800</pubDate><description><![CDATA[总结了一下AVPacket与AVFrame中拷贝和释放相关操作。这里我理解在AVFrame与AVPacket传递流转的过程中并不会去每次创建和拷贝音视频数据，音视频数据被存储在AVBuffer中，而AVFrame与AVPacket在流转时进行浅拷贝，只有调用其对应unref时，会减少AVBuffer中的引用计数，最终释放内部存储音视频数据的buffer。

目录

1.av_freep释放并置空双重指针指向的那个指针

2.av_packet_unref

3.av_packet_ref

4.av_pac]]></description><category></category></item><item><title><![CDATA[rtmp H264多Slice封装学习笔记]]></title><link>https://blog.youkuaiyun.com/lidec/article/details/117160336</link><guid>https://blog.youkuaiyun.com/lidec/article/details/117160336</guid><author>lidec</author><pubDate>Wed, 26 May 2021 20:56:19 +0800</pubDate><description><![CDATA[1.背景

在使用src_librtmp转推H264数据时，拉流端观看出现了花屏问题。经过排查发现客户端X264编码时如果设置了分片，转推为rtmp就会导致花屏，关闭分片相关设置视频正常。在转推H264前将数据写入本地，播放正常，播放转推后的rtmp花屏，ffplay会报错。这里推断是rtmp封装问题导致了花屏，下面首先需要对于这种一帧H264视频中包含多个Slice的情况，应当如何封装。

2.与ffmpeg推流进行对比

这里们尝试使用ffmpeg来推一段多slice的H264码流，ffplay拉流播放]]></description><category></category></item><item><title><![CDATA[Android MediaCodec+OpenGL视频编解码实践笔记]]></title><link>https://blog.youkuaiyun.com/lidec/article/details/107006760</link><guid>https://blog.youkuaiyun.com/lidec/article/details/107006760</guid><author>lidec</author><pubDate>Mon, 29 Jun 2020 00:55:49 +0800</pubDate><description><![CDATA[Android MediaCodec+OpenGL视频编解码实践笔记

本文总结了Android MediaCodec配合OpenGL进行视频编解码以及渲染的相关流程。文中提供一个Demo，主要涉及调用Android MediaCodec进行编解码，以及渲染相关流程，针对实际工程中SurfaceView推后台等情况进行优化，渲染部分主要参考了Grafik，目前主要在rk3288平台验证。

1.Demo提供的测试功能

H264编码以及保存视频
	H264解码渲染
	Opengl绘制相机视频帧
	VP8解码]]></description><category></category></item><item><title><![CDATA[Webrtc源码开发笔记1 —Webrtc视频编码打包流程模块图解]]></title><link>https://blog.youkuaiyun.com/lidec/article/details/106717545</link><guid>https://blog.youkuaiyun.com/lidec/article/details/106717545</guid><author>lidec</author><pubDate>Fri, 12 Jun 2020 15:58:09 +0800</pubDate><description><![CDATA[目录



Webrtc源码开发笔记1 —Webrtc视频编码打包流程模块图解

1. RtpTransceiver

2.1 VideoChannel

2.2BaseChannel

2.3 WebRtcVideoChannel

3.Call模块与Stream

4.RTP/RTCP

Webrtc源码开发笔记1 —Webrtc视频编码打包流程模块图解

本章旨在梳理webrtc从transceiver到transport流程，从而宏观上了解webrtc视频采集，编码，打包发送等相关流程与相关模块的.]]></description><category></category></item><item><title><![CDATA[数字信号入门笔记2 —线性时不变（LTI）系统]]></title><link>https://blog.youkuaiyun.com/lidec/article/details/106628003</link><guid>https://blog.youkuaiyun.com/lidec/article/details/106628003</guid><author>lidec</author><pubDate>Mon, 08 Jun 2020 21:03:22 +0800</pubDate><description><![CDATA[目录

数字信号入门笔记2 —线性时不变（LTI）系统

2.1系统与线性时不变系统

2.1.1线性系统

2.1.2时不变系统

2.2LTI系统的时域描述

2.2.1差分方程表示

2.2.2单位冲击响应表示

2.3 LTI系统的特征信号 复正弦信号

2.4 Z变换分析LTI系统

2.4.1 Z变换定义

2.4.2传递函数

2.4.3Z变换单位延迟与差分方程

2.4.4零极图直观体现系统特性

2.5系统的频率响应

2.5.1 群延时

2.6 向量的角度分析LTI系统

2.6.1.]]></description><category></category></item><item><title><![CDATA[数字信号入门笔记4—离散傅里叶变换]]></title><link>https://blog.youkuaiyun.com/lidec/article/details/106627037</link><guid>https://blog.youkuaiyun.com/lidec/article/details/106627037</guid><author>lidec</author><pubDate>Mon, 08 Jun 2020 20:14:45 +0800</pubDate><description><![CDATA[目录

数字信号入门笔记4—离散傅里叶变换

4.1离散傅里叶变换DFT定义

4.2 从典型复正弦信号看DFT的运作方式

4.3实正弦信号DFT

4.4采样不是正好一个周期复正弦信号 观察其DFT

4.4.1主瓣泄露

4.4.2旁瓣泄露

4.5从等效滤波器的角度看DFT的运作方式

数字信号入门笔记4—离散傅里叶变换

本节知识点提要：

从向量的角度看复正弦信号的DFT，直观解释DFT挑选频率的过程
	由复正弦信号DFT如何推广到正弦信号的DFT
	从不是一个恰好完整周期的信号DFT看频谱泄.]]></description><category></category></item><item><title><![CDATA[数字信号入门笔记1 — 离散时间信号]]></title><link>https://blog.youkuaiyun.com/lidec/article/details/106626762</link><guid>https://blog.youkuaiyun.com/lidec/article/details/106626762</guid><author>lidec</author><pubDate>Mon, 08 Jun 2020 19:31:05 +0800</pubDate><description><![CDATA[本节主要记录数字信号相关概念，常见信号，信号的描述方法（时域描述/频域描述），以及模型信号和数字信号转换及其中产生的问题。

知识点提要：

1.单位冲击信号的时域描述，作为最基本的离散时域信号，可以表示其他离散时域信号。

2.模拟角频率单位为Hz，代表每秒转多少周期 模拟角频率Ω代表每秒转到少弧度(rad/s). 数字频率w 每个采样点间弧度rad

3.复正弦信号由欧拉公式得到，建立了三角函数和复向量间关系，常用于代码实现信号相关算法

4.DTFT（区别于DFT )  离散信号的DTFT是连续...]]></description><category></category></item><item><title><![CDATA[视频学习笔记：Android OpenGL渲染YUV420P图像]]></title><link>https://blog.youkuaiyun.com/lidec/article/details/73732369</link><guid>https://blog.youkuaiyun.com/lidec/article/details/73732369</guid><author>lidec</author><pubDate>Mon, 26 Jun 2017 19:43:03 +0800</pubDate><description><![CDATA[背景Android 开发中，当得到一张yuv图需要显示时，之前的做法是利用ffmpeg自带的方法将其转换为RGB565或者RGBA，然后将RGB数据拷贝到aNativeWindow的图像缓冲区，达到显示的目的。这样做比较耗CPU, 最近在阅读ijkplayer源码时，整理了一下OpenGL直接渲染YUV420P相关流程，参考网上一些代码，总结了一个最简单的小例子。例子下载地址 
http://dow]]></description><category></category></item><item><title><![CDATA[视频学习笔记：Android ffmpeg解码多路h264视频并显示]]></title><link>https://blog.youkuaiyun.com/lidec/article/details/72934405</link><guid>https://blog.youkuaiyun.com/lidec/article/details/72934405</guid><author>lidec</author><pubDate>Thu, 08 Jun 2017 21:06:37 +0800</pubDate><description><![CDATA[背景Android设备上使用ffmpeg解码多路h264视频，抽取了一个简单demo方便日后参考，在此记录一下。demo中主要涉及以下功能：1.ffmpeg解码h264视频为yuv帧 
2.使用ffmpeg将yuv帧转换为可以在画布上渲染的rgb帧 
3.将Android的SurfaceView类传入jni层并使用rgb帧进行渲染 
4.使用java类包装c++类，多线程解码多路视频]]></description><category></category></item><item><title><![CDATA[NDK学习笔记：java类封装c++类]]></title><link>https://blog.youkuaiyun.com/lidec/article/details/72872037</link><guid>https://blog.youkuaiyun.com/lidec/article/details/72872037</guid><author>lidec</author><pubDate>Mon, 05 Jun 2017 22:59:28 +0800</pubDate><description><![CDATA[本文介绍了jni开发的中java类如何直接对c++类进行封装和调用，并附源码。另外修改了原文中的一些错误。]]></description><category></category></item><item><title><![CDATA[Android usb学习笔记:Android AOA协议Android端 流程总结]]></title><link>https://blog.youkuaiyun.com/lidec/article/details/70395910</link><guid>https://blog.youkuaiyun.com/lidec/article/details/70395910</guid><author>lidec</author><pubDate>Sat, 22 Apr 2017 13:00:15 +0800</pubDate><description><![CDATA[上篇文章中我们了解了嵌入式设备端将Android手机设置为accessory模式的流程以及嵌入式设备端接收和发送数据的流程，本文将对应介绍Android端accessory模式被激活的过程，以及接下来如何与嵌入式设备端进行通信。本文的源码下载地址：https://git.oschina.net/vonchenchen/aoa_android.git实现]]></description><category></category></item><item><title><![CDATA[Android usb学习笔记:Android AOA协议设备端 流程总结]]></title><link>https://blog.youkuaiyun.com/lidec/article/details/54908174</link><guid>https://blog.youkuaiyun.com/lidec/article/details/54908174</guid><author>lidec</author><pubDate>Thu, 20 Apr 2017 21:14:51 +0800</pubDate><description><![CDATA[Android手机与嵌入式设备通过usb直接连接的方式进行通信，其中Android的usb层使用了Android自身的AOA模式，嵌入式端借助libusb库与Android端通信。上层协议参考了usbmuxd库，并在Android端用java实现了usbmuxd的部分协议，最终使用可以抽象为双方socket端口间的通信过程。]]></description><category></category></item><item><title><![CDATA[NDK学习笔记：jni数据类型转换]]></title><link>https://blog.youkuaiyun.com/lidec/article/details/54427179</link><guid>https://blog.youkuaiyun.com/lidec/article/details/54427179</guid><author>lidec</author><pubDate>Sun, 05 Feb 2017 15:27:12 +0800</pubDate><description><![CDATA[随着Android项目中c++代码部分功能复杂程度的增加，jni中需要传递的数据类型也越来越多，关于jni数据类型转换网上有不少相关文章，但是在使用时发现这些例子中存在不少谬误，遂在此重新总结相关内容，并附相关例程，以便日后参考。]]></description><category></category></item><item><title><![CDATA[NDK学习笔记：Android.mk]]></title><link>https://blog.youkuaiyun.com/lidec/article/details/53454349</link><guid>https://blog.youkuaiyun.com/lidec/article/details/53454349</guid><author>lidec</author><pubDate>Tue, 06 Dec 2016 21:34:31 +0800</pubDate><description><![CDATA[最近在搞NDK编程时发现一个比较棘手的问题，就是关于编写Android.mk文件时，如果工程比较复杂，我们自己编写的Android.mk就会比较复杂。关于这个makefile的编写，我们可以参考http://android.mk/查找Android.mk的一些编写规则，在此我将http://android.mk/中的内容做了一些简单的翻译，其中也加入了一些自己的理解，可能有不妥之处，欢迎大家及时指正。]]></description><category></category></item><item><title><![CDATA[Android知识总结：图片放错mipmap文件夹导致内存泄露的问题]]></title><link>https://blog.youkuaiyun.com/lidec/article/details/53414111</link><guid>https://blog.youkuaiyun.com/lidec/article/details/53414111</guid><author>lidec</author><pubDate>Thu, 01 Dec 2016 21:53:45 +0800</pubDate><description><![CDATA[背景最近开始着手优化app的性能。其中有这样一个activity，只要手机一开启内存就会飙升二十多M, 之前认为可能是其中大的图片资源解压导致，但是通过查看记录内存的.hprof文件，这个activity布局中一个ImageView中的bitmap竟然引用了二十多M的内存空间, 但是这张图在布局中是一张很小的图，打开图片资源文件，发现原图也仅仅是一张800x800的图…. 奇怪的是，当把这个应用放到]]></description><category></category></item></channel></rss>