当前位置: 首页 > news >正文

2023年-含泪总结

以前公司每年都有年底总结,来新公司没有了年底总结,总觉得缺点什么,公司没有就自己写吧,人生感悟在这里就不多说了,本篇主要总结一下这一年来知识点吧。
这些知识点,每个慢慢整理,将来要保证,每个模块在1h内快速恢复到可以基本掌握的程度。

1、思维导图
感觉这里画图不好,所以,在其它地方画吧。

思维导图入口


文章目录

    • 1 FFmpeg
      • 1 基础组件1
      • 2.基础组件2
      • 3. AVCodec组件
      • 4.AVFORMAT
      • 5.AVFilter
    • 2.Gstreamer
    • 3.编解码
      • 1.H264编解码原理(x264)
      • 2.H265编解码原理(x265)
    • 4.容器格式
      • 1.flv
      • 2.mp4
    • 5.网络协议
      • 1.RTSP
      • 2.RTMP
      • 3.HTTP-FLV
      • 4.WebRtc
      • 5.GB/T28181(SIP)
      • 4.HLS(ts)
    • 5.流媒体
      • 1.ZlmediaKit
      • 2.SRS
      • 3.Live555
      • 4.OBS
    • 6.网络协议
      • 1.TCP/IP
      • 2.UDP
    • 7.高并发服务器开发
      • 1.nginx
      • 2.mudo
      • 3.Http
      • 4.各类服务器编程架构
    • 8.深度学习
    • 9.设计模式
    • 10.C++基础知识
      • 1.C++ 基础
      • 2.C++ 11
      • 3.C++ 17
      • 4.C++ 模板编程
      • 5.Linking与Loading
      • 6.C++对象模型
    • 11.Linux 内核
      • 1.操作系统真相还原
      • 2.Linux内核设计与实现
      • 3.Linux设备驱动开发详解
    • 12 数据结构


1 FFmpeg

本段主要从ffmpeg代码架构记录,目前只是搭建一个框架,后期慢慢的去完善。

1 基础组件1

下面这些是ffmpeg的基础组件,作为最重要的两个数据存储元素,这单独列出来。
列出来的原因主要有:
1)两个组件通过原子引用计数自己实现了一套垃圾回收机制。
2)提供了非常多的接口函数去操纵,只有你想不到的,没有它做不到的。
核心就这两点吧,在使用的时候不要私自引用它们内部的成员变量,最终造成内存泄漏,后悔终生。

1-AVFrame

2-AVPacket

2.基础组件2

这里其实是FFmpeg内的组件,也就是说,不对用户开放,但是对于ffmpeg二次开发却很有用,所以也列了出来。
AVBufferPool是一个可以自销毁的内存池,可以用来在host或者在device上提前创建一些内存池,在使用的时候直接从其中获取数据。

1-AVBufferPool

2-AVthreadPool

除了内存池外,当然还有线程池。

3-AVDictionary
ffmpeg设置参数的架构很巧妙,值得你深入了解

4-md5

3. AVCodec组件

解码模块算是FFmpeg最重要的一个模块了,但是在介绍解码模块的时候,我们先提前介绍两个它的辅助模块。
其中AVcodecParser主要用来解析码流的元数据,比如sps,pps等。
AVBSF作为码流过滤器,可以在这里对即将要解码的码流做一些处理,比如头格式的转换等等。

1-AVcodecParse

2-AVBSF

3-AVCodec

4-HWContextType

5-AVHWAccel

4.AVFORMAT

avformat是ffmpeg用来处理输入和输出流的最重要的一个模块,可以说,市面上90%的网络协议,封装格式,它都支持,算是一个比较好的播放器吧。

1-AVIOContext

2-AVIODirContext

3-AVIOPROBE

4-AVInputFormat

5-AVOutputFormat

6-调试打印函数族

7-RTP-SDP创建函数

8-其它辅助函数

5.AVFilter

ffmpeg的滤镜模块大概有200多个的,可以说是包罗万象,并且使用起来非常简单。如果说它的难度是5,那么gstreamer绝对是12地狱级别的难度。

1-AVFilterGraph-AVFilterCommand

2- AVFilterInOut
这个模块是个辅助链接模块,懒得写了

3-AVFilterLink

4-AVFilterPad

5-AVFilter-AVFilterContext

2.Gstreamer

这个框架比较难,前期看了很多,但是可惜没有做笔记,基本忘了,这次要补上。

3.编解码

本小结主要介绍h264和h265两种压缩编码相关的内容,
以前觉得没什么用,但是不然,看很多公司对这一块要求挺高,所以这里是一个重点

1.H264编解码原理(x264)

H264主要依赖于毕厚杰的《新一代视频压缩编码标准》

2.H265编解码原理(x265)

H265主要依赖万帅《新一代高效视频编码h265原理标准和实现》

4.容器格式

容器格式必须要掌握的三个是flv,mp4,ts,

1.flv

2.mp4

5.网络协议

时间久了不用,基本忘得都差不多了,还是要捡起来。

1.RTSP

2.RTMP

3.HTTP-FLV

4.WebRtc

5.GB/T28181(SIP)

4.HLS(ts)

5.流媒体

前面提到ffmpeg,最为最好的流媒体客户端,那么我们还要熟知流媒体服务器,当然掌握流媒体服务器不是一件容易的事情,不过好处在于,鄙人熟悉几个,这里罗列出来,主要是防止自己再忘了。

1.ZlmediaKit

2.SRS

3.Live555

4.OBS

6.网络协议

1.TCP/IP

2.UDP

7.高并发服务器开发

因为这些都是以前吃饭的家伙,还是不能丢掉,要捡起来。

1.nginx

要配合《深入理解Ngingx》

2.mudo

要配合《Linux 多线程服务端编程》

3.Http

要配合《Http服务器》

4.各类服务器编程架构

要配合书《面向模式的软件架构并发和互联网对象模式》

8.深度学习

这一块花费了老子很多时间,然而卵都没有用上,目前要保持最熟悉的一本书。
《深入浅出神经网络与深度学习》

9.设计模式

24种设计模式

10.C++基础知识

1.C++ 基础

2.C++ 11

3.C++ 17

4.C++ 模板编程

5.Linking与Loading

6.C++对象模型

主要应对虚函数表等相关问题

11.Linux 内核

1.操作系统真相还原

2.Linux内核设计与实现

3.Linux设备驱动开发详解

12 数据结构

各类基础算法

相关文章:

  • 爱智EdgerOS之深入解析安全可靠的开放协议SDDC
  • Spring--10--Spring Bean的生命周期
  • 应用密码学期末复习(3)
  • 如何使用GaussDB创建外表(FOREIGN TABLE)
  • STM32超声波——HC_SR04
  • 解读 | 为什么有很多名人让人们警惕人工智能
  • 【NR技术】NR NG-RAN整体架构 -功能划分(三)
  • 人工智能|深度学习——知识蒸馏
  • 基于单片机的定时插座在智能家居中的应用
  • Linux ln命令教程:如何创建符号链接(附案例详解和注意事项)
  • 双荧光素酶报告基因检测(五)
  • 大模型应用_AutoGPT
  • viple与物理机器人(一):线控模拟
  • MySQL InnoDB Replication部署方案与实践
  • EMQX(5.3.1)多机集群部署
  • [译] 理解数组在 PHP 内部的实现(给PHP开发者的PHP源码-第四部分)
  • 【个人向】《HTTP图解》阅后小结
  • AHK 中 = 和 == 等比较运算符的用法
  • C# 免费离线人脸识别 2.0 Demo
  • Java 23种设计模式 之单例模式 7种实现方式
  • Java教程_软件开发基础
  • JS笔记四:作用域、变量(函数)提升
  • Js基础知识(四) - js运行原理与机制
  • Js实现点击查看全文(类似今日头条、知乎日报效果)
  • Linux中的硬链接与软链接
  • Netty 4.1 源代码学习:线程模型
  • passportjs 源码分析
  • Vue.js源码(2):初探List Rendering
  • Vue官网教程学习过程中值得记录的一些事情
  • 从零到一:用Phaser.js写意地开发小游戏(Chapter 3 - 加载游戏资源)
  • 多线程 start 和 run 方法到底有什么区别?
  • 仿天猫超市收藏抛物线动画工具库
  • 机器学习学习笔记一
  • 基于组件的设计工作流与界面抽象
  • 扫描识别控件Dynamic Web TWAIN v12.2发布,改进SSL证书
  • 实战:基于Spring Boot快速开发RESTful风格API接口
  • 数据库写操作弃用“SELECT ... FOR UPDATE”解决方案
  • 一个SAP顾问在美国的这些年
  • zabbix3.2监控linux磁盘IO
  • 大数据全解:定义、价值及挑战
  • 直播平台建设千万不要忘记流媒体服务器的存在 ...
  • ​2020 年大前端技术趋势解读
  • ​马来语翻译中文去哪比较好?
  • ​业务双活的数据切换思路设计(下)
  • #Linux杂记--将Python3的源码编译为.so文件方法与Linux环境下的交叉编译方法
  • %3cscript放入php,跟bWAPP学WEB安全(PHP代码)--XSS跨站脚本攻击
  • (06)金属布线——为半导体注入生命的连接
  • (Matlab)基于蝙蝠算法实现电力系统经济调度
  • (阿里巴巴 dubbo,有数据库,可执行 )dubbo zookeeper spring demo
  • (附源码)springboot掌上博客系统 毕业设计063131
  • (译) 函数式 JS #1:简介
  • ..回顾17,展望18
  • .NET Core 和 .NET Framework 中的 MEF2
  • .NET 发展历程
  • .NET 同步与异步 之 原子操作和自旋锁(Interlocked、SpinLock)(九)