自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 理解RTMP协议——chunk格式

本文梳理了理解RTMP协议的基本概念访问我的博客了解更多RTMP 的 message 与 chunkmessage 是 RTMP 中的 M,是消息的单位RTMP Message Header +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Message Type| Payload length| +-+-+-+-+-+-+-+-+-...

2019-03-20 10:25:44 4298

原创 理解RTMP协议——握手连接

本文梳理了理解RTMP协议的基本概念访问我的博客了解更多RTMP 的通信机制rtmp 客户端与服务端通信的机制下图是播放器与 rtmp 服务端通信的例子另外推荐阅读 nginx-rtmp-module 源码,比如,握手协议相关代码在 ngx_rtmp_handshake.c 文件RTMP 的握手连接的例子step 1, tcp 三次握手TCP 握手过程这里不详细展开,参考这...

2019-03-20 10:21:49 2556 1

原创 理解RTMP协议——简单认识

本文梳理了RTMP协议的基本概念访问我的博客了解更多前言直播行业的兴起,带动了音视频相关技术的发展,本文介绍 RTMP 协议,让人快速理解它。看下面一张视频直播的大体架构图,找找 RTMP 的位置,明白 RTMP 扮演的角色与重要性在上面,RTMP 在视频直播场景的架构中,担任了重要的"血管"般的角色简单介绍RTMP(Real Time Messaging Protocol)实时...

2019-03-20 10:20:01 799

原创 Linux 性能诊断——平均负载 Load 问题

前言有一回面试,面试官提了一个问题,cpu 使用率不高,但是 Load (平均负载) 很高,你如何查找问题?当时我不明白 Load 的意思,面试官解释说这个指标反映不可中断状态的进程比较多。我遂根据过往后端开发经验,回答可能系统中 io 阻塞比较多,多发于网络 io 问题,用命令 netstat -tnp 看看 tcp 连接中 time_wait 状态多不多…我知道我的回答很片面,事后复习,...

2019-03-11 09:58:44 366

原创 音视频编程基本概念梳理

本文梳理了音视频编程开发者需要了解的基本概念访问我的博客了解更多前言本文梳理了音视频编程开发者需要了解的基本概念,当然,有的人一开始看着干巴巴的理论,感到困乏,却是一个喜欢动手实践的开发者,那么先实践 ffmpeg的C语言编程入门,然后再来看理论篇更好了。音频的基本概念音频技术是为了采样、存储、播放"声学现象"而存在的,详细一点,是模拟信号与数字信号转换;在人耳可听的时域与频域的范围...

2019-02-06 11:56:21 986

原创 辟谣网传的"删除许多个本地文件,rsync 比 rm 快"

这是我的原创的个人心得,若有纰漏,多多指教更多内容可以访问我的博客前言公司有台服务器产生太多临时文件,同事在删除文件的时候,说使用 rsync 会更快一些,使用 rm 可能会把机器搞挂,还引用网上一篇文章说“rsync所做的系统调用很少:没有针对单个文件做lstat和unlink操作。命令执行前期,rsync开启了一片共享内存,通过mmap方式加载目录信息。只做目录同步,不需要针对单个...

2019-01-31 21:05:38 836 1

原创 你弄懂Kafka使用什么性能策略吗

本文是我研究Kafka的一点心得,欢迎指出纰漏更多访问 我的博客明确Kafka的性能阵地首先,明确研究问题的方向。Kafka 是一个分布式的流式数据平台它的重要功能有:消息系统,提供事件流的发布与订阅持久化存储,避免消费者节点故障的容错功能流处理,如流的聚合、连接,具象来说是处理乱序/延迟的数据、窗口、状态等操作在大数据需求背景下,Kafka 必然要对以上功能进行性能优化,...

2019-01-28 10:11:08 201

原创 如何在浏览器中播放pcm音频

欢迎访问博客原文:https://lightfish.cn/2019-01-01-browser-pcm-add-wav-header前言最近在整理音视频编程的知识,回忆起半年多,有一次需求是在后台播放某来源的 pcm 文件,当时处理方法用了点技巧,记录下来背景:业务需求,在web后台里播放 pcm 文件,文件不大(约300KB,已知 pcm 的参数采样率16000,采样位数16,声道数1...

2019-01-22 15:03:46 13652 1

原创 一步步将ffmpeg封装golang/cgo库

前言继上一篇 ffmpeg音视频C编程入门, 使用高性能的C语言进行音视频的处理,比较执行效率比较高,但是业务需求,快捷开发需要使用更方便的语言,比如 golang,本文介绍如何将 将视频转成GIF 的C语言方法封装成 golang 方法以便调用。认识cgo的封装技巧最简单的 cgo 封装例子看这篇 cgo快速入门我这里讲几个注意事项CGO构建程序会自动构建当前目录下的C源文件,即是...

2019-01-22 14:58:09 6709 3

原创 一步步教ffmpeg的C语言音视频编程

前言本文以 ffmpeg 工具,讲述如何认识音视频编程,你可以了解到常见视频格式的大概样子,一步步学会如何使用 ffmpeg 的 C 语言 API本文重于动手实践,代码仓库:mpegUtil笔者的开发环境:Arch Linux 4.19.12, ffmpeg version n4.1解码过程总览以下是解码流程图,逆向即是编码流程本文是音视频编程入门篇,先略过传输协议层,主要讲格式层与...

2019-01-22 14:53:51 18286 1

原创 巧用Makefile给Go程序添加版本信息

golang工程实践之 Makefile的技巧之标记编译信息前言Golang 的程序编译安装,如果善加使用 Makefile 文件,可以使开发过程更规范与高效,比如:1、给编译的二进制文件“标记上”时间戳与源码版本号,方便程序更新与错误追溯。2、开发时,监视文件修改,自动编译,执行测试用例,提高工作效率。等等。。。技巧列表给二进制包标记时间戳与源码版本号1、在 golang 代码...

2018-11-01 17:45:31 1520

空空如也

空空如也

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

TA关注的人

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