<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[lightfish_zhang的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/lightfish_zhang</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; lightfish_zhang]]></copyright><item><title><![CDATA[理解RTMP协议——chunk格式]]></title><link>https://blog.youkuaiyun.com/lightfish_zhang/article/details/88681828</link><guid>https://blog.youkuaiyun.com/lightfish_zhang/article/details/88681828</guid><author>lightfish_zhang</author><pubDate>Wed, 20 Mar 2019 10:25:44 +0800</pubDate><description><![CDATA[本文梳理了理解RTMP协议的基本概念
访问我的博客了解更多

RTMP 的 message 与 chunk
message 是 RTMP 中的 M，是消息的单位
RTMP Message Header
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+  
    | Message Type| Payload length|  
    +-+-+-+-+-+-+-+-+-...]]></description><category></category></item><item><title><![CDATA[理解RTMP协议——握手连接]]></title><link>https://blog.youkuaiyun.com/lightfish_zhang/article/details/88681708</link><guid>https://blog.youkuaiyun.com/lightfish_zhang/article/details/88681708</guid><author>lightfish_zhang</author><pubDate>Wed, 20 Mar 2019 10:21:49 +0800</pubDate><description><![CDATA[本文梳理了理解RTMP协议的基本概念
访问我的博客了解更多

RTMP 的通信机制
rtmp 客户端与服务端通信的机制
下图是播放器与 rtmp 服务端通信的例子

另外推荐阅读 nginx-rtmp-module 源码，比如，握手协议相关代码在 ngx_rtmp_handshake.c 文件
RTMP 的握手连接的例子

step 1, tcp 三次握手
TCP 握手过程这里不详细展开，参考这...]]></description><category></category></item><item><title><![CDATA[理解RTMP协议——简单认识]]></title><link>https://blog.youkuaiyun.com/lightfish_zhang/article/details/88681651</link><guid>https://blog.youkuaiyun.com/lightfish_zhang/article/details/88681651</guid><author>lightfish_zhang</author><pubDate>Wed, 20 Mar 2019 10:20:01 +0800</pubDate><description><![CDATA[本文梳理了RTMP协议的基本概念
访问我的博客了解更多

前言
直播行业的兴起，带动了音视频相关技术的发展，本文介绍 RTMP 协议，让人快速理解它。看下面一张视频直播的大体架构图，找找 RTMP 的位置，明白 RTMP 扮演的角色与重要性

在上面，RTMP 在视频直播场景的架构中，担任了重要的"血管"般的角色
简单介绍
RTMP(Real Time Messaging Protocol)实时...]]></description><category></category></item><item><title><![CDATA[Linux 性能诊断——平均负载 Load 问题]]></title><link>https://blog.youkuaiyun.com/lightfish_zhang/article/details/88388589</link><guid>https://blog.youkuaiyun.com/lightfish_zhang/article/details/88388589</guid><author>lightfish_zhang</author><pubDate>Mon, 11 Mar 2019 09:58:44 +0800</pubDate><description><![CDATA[前言
有一回面试，面试官提了一个问题，cpu 使用率不高，但是 Load (平均负载) 很高，你如何查找问题？
当时我不明白 Load 的意思，面试官解释说这个指标反映不可中断状态的进程比较多。我遂根据过往后端开发经验，回答可能系统中 io 阻塞比较多，多发于网络 io 问题，用命令 netstat -tnp 看看 tcp 连接中 time_wait 状态多不多…
我知道我的回答很片面，事后复习，...]]></description><category></category></item><item><title><![CDATA[音视频编程基本概念梳理]]></title><link>https://blog.youkuaiyun.com/lightfish_zhang/article/details/86767793</link><guid>https://blog.youkuaiyun.com/lightfish_zhang/article/details/86767793</guid><author>lightfish_zhang</author><pubDate>Wed, 06 Feb 2019 11:56:21 +0800</pubDate><description><![CDATA[
本文梳理了音视频编程开发者需要了解的基本概念
访问我的博客了解更多

前言
本文梳理了音视频编程开发者需要了解的基本概念，当然，有的人一开始看着干巴巴的理论，感到困乏，却是一个喜欢动手实践的开发者，那么先实践 ffmpeg的C语言编程入门，然后再来看理论篇更好了。
音频的基本概念
音频技术是为了采样、存储、播放&quot;声学现象&quot;而存在的，详细一点，是模拟信号与数字信号转换；在人耳可听的时域与频域的范围...]]></description><category></category></item><item><title><![CDATA[辟谣网传的"删除许多个本地文件，rsync 比 rm 快"]]></title><link>https://blog.youkuaiyun.com/lightfish_zhang/article/details/86726488</link><guid>https://blog.youkuaiyun.com/lightfish_zhang/article/details/86726488</guid><author>lightfish_zhang</author><pubDate>Thu, 31 Jan 2019 21:05:38 +0800</pubDate><description><![CDATA[
这是我的原创的个人心得，若有纰漏，多多指教
更多内容可以访问我的博客

前言
公司有台服务器产生太多临时文件，同事在删除文件的时候，说使用 rsync 会更快一些，使用 rm 可能会把机器搞挂，还引用网上一篇文章说
“rsync所做的系统调用很少：没有针对单个文件做lstat和unlink操作。命令执行前期，rsync开启了一片共享内存，通过mmap方式加载目录信息。只做目录同步，不需要针对单个...]]></description><category></category></item><item><title><![CDATA[你弄懂Kafka使用什么性能策略吗]]></title><link>https://blog.youkuaiyun.com/lightfish_zhang/article/details/86672813</link><guid>https://blog.youkuaiyun.com/lightfish_zhang/article/details/86672813</guid><author>lightfish_zhang</author><pubDate>Mon, 28 Jan 2019 10:11:08 +0800</pubDate><description><![CDATA[
本文是我研究Kafka的一点心得，欢迎指出纰漏
更多访问 我的博客

明确Kafka的性能阵地
首先，明确研究问题的方向。Kafka 是一个分布式的流式数据平台
它的重要功能有：

消息系统，提供事件流的发布与订阅
持久化存储，避免消费者节点故障的容错功能
流处理，如流的聚合、连接，具象来说是处理乱序/延迟的数据、窗口、状态等操作

在大数据需求背景下，Kafka 必然要对以上功能进行性能优化，...]]></description><category></category></item><item><title><![CDATA[如何在浏览器中播放pcm音频]]></title><link>https://blog.youkuaiyun.com/lightfish_zhang/article/details/86594923</link><guid>https://blog.youkuaiyun.com/lightfish_zhang/article/details/86594923</guid><author>lightfish_zhang</author><pubDate>Tue, 22 Jan 2019 15:03:46 +0800</pubDate><description><![CDATA[欢迎访问博客原文：https://lightfish.cn/2019-01-01-browser-pcm-add-wav-header
前言
最近在整理音视频编程的知识，回忆起半年多，有一次需求是在后台播放某来源的 pcm 文件，当时处理方法用了点技巧，记录下来
背景：业务需求，在web后台里播放 pcm 文件，文件不大(约300KB，已知 pcm 的参数采样率16000，采样位数16，声道数1
...]]></description><category></category></item><item><title><![CDATA[一步步将ffmpeg封装golang/cgo库]]></title><link>https://blog.youkuaiyun.com/lightfish_zhang/article/details/86594796</link><guid>https://blog.youkuaiyun.com/lightfish_zhang/article/details/86594796</guid><author>lightfish_zhang</author><pubDate>Tue, 22 Jan 2019 14:58:09 +0800</pubDate><description><![CDATA[前言
继上一篇 ffmpeg音视频C编程入门, 使用高性能的C语言进行音视频的处理，比较执行效率比较高，但是业务需求，快捷开发需要使用更方便的语言，比如 golang，本文介绍如何将 将视频转成GIF 的C语言方法封装成 golang 方法以便调用。
认识cgo的封装技巧
最简单的 cgo 封装例子看这篇 cgo快速入门
我这里讲几个注意事项


CGO构建程序会自动构建当前目录下的C源文件，即是...]]></description><category></category></item><item><title><![CDATA[一步步教ffmpeg的C语言音视频编程]]></title><link>https://blog.youkuaiyun.com/lightfish_zhang/article/details/86594694</link><guid>https://blog.youkuaiyun.com/lightfish_zhang/article/details/86594694</guid><author>lightfish_zhang</author><pubDate>Tue, 22 Jan 2019 14:53:51 +0800</pubDate><description><![CDATA[前言
本文以 ffmpeg 工具，讲述如何认识音视频编程，你可以了解到常见视频格式的大概样子，一步步学会如何使用 ffmpeg 的 C 语言 API
本文重于动手实践，代码仓库：mpegUtil
笔者的开发环境：Arch Linux 4.19.12, ffmpeg version n4.1
解码过程总览
以下是解码流程图，逆向即是编码流程

本文是音视频编程入门篇，先略过传输协议层，主要讲格式层与...]]></description><category></category></item><item><title><![CDATA[巧用Makefile给Go程序添加版本信息]]></title><link>https://blog.youkuaiyun.com/lightfish_zhang/article/details/83624327</link><guid>https://blog.youkuaiyun.com/lightfish_zhang/article/details/83624327</guid><author>lightfish_zhang</author><pubDate>Thu, 01 Nov 2018 17:45:31 +0800</pubDate><description><![CDATA[
golang工程实践之 Makefile的技巧之标记编译信息
前言
Golang 的程序编译安装，如果善加使用 Makefile 文件，可以使开发过程更规范与高效，比如：
１、给编译的二进制文件“标记上”时间戳与源码版本号，方便程序更新与错误追溯。
２、开发时，监视文件修改，自动编译，执行测试用例，提高工作效率。
等等。。。
技巧列表
给二进制包标记时间戳与源码版本号
1、在 golang 代码...]]></description><category></category></item></channel></rss>