惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

T
Threat Research - Cisco Blogs
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
月光博客
月光博客
V
Vulnerabilities – Threatpost
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
S
Secure Thoughts
Microsoft Azure Blog
Microsoft Azure Blog
Blog — PlanetScale
Blog — PlanetScale
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
T
Tailwind CSS Blog
S
SegmentFault 最新的问题
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
云风的 BLOG
云风的 BLOG
The Last Watchdog
The Last Watchdog
L
LINUX DO - 热门话题
酷 壳 – CoolShell
酷 壳 – CoolShell
WordPress大学
WordPress大学
AWS News Blog
AWS News Blog
美团技术团队
G
Google Developers Blog
宝玉的分享
宝玉的分享
www.infosecurity-magazine.com
www.infosecurity-magazine.com
C
CXSECURITY Database RSS Feed - CXSecurity.com
Recent Commits to openclaw:main
Recent Commits to openclaw:main
I
InfoQ
小众软件
小众软件
Google DeepMind News
Google DeepMind News
P
Privacy & Cybersecurity Law Blog
Stack Overflow Blog
Stack Overflow Blog
Webroot Blog
Webroot Blog
D
DataBreaches.Net
IT之家
IT之家
PCI Perspectives
PCI Perspectives
人人都是产品经理
人人都是产品经理
Hacker News: Ask HN
Hacker News: Ask HN
L
LangChain Blog
SecWiki News
SecWiki News
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
C
Cisco Blogs
T
Threatpost
P
Proofpoint News Feed
Y
Y Combinator Blog
Cloudbric
Cloudbric
T
Tor Project blog
量子位
博客园_首页
B
Blog
Hugging Face - Blog
Hugging Face - Blog
GbyAI
GbyAI
D
Darknet – Hacking Tools, Hacker News & Cyber Security

音视频开发进阶

音视频教程-第三节 音视频教程-第二节 真的,AI 可能就是新时代的信息差 充值 Cursor 之后,工作有了哪些变化?🤔 个人'蒸馏'大模型能做哪些有意思的事情 DeepSeek 大模型在 Mac 上的部署和运行 音视频教程-第一节 【WebRTC 专栏】-- Android 开发集成 WebRTC 库的几种方式 【WebRTC 专栏】-- 在 Mac M1 等系列芯片编译和开发 WebRTC-Android 库 Meta Llama3 大模型在 Mac 上的部署和运行 iOS VideoToolBox 解码 HEVC Open-GOP 视频的问题排查 Flutter 状态管理之 InheritedWidget 使用和分析 用 ChatGPT 回答技术问题怎么样 ? 音视频开发系统入门大致路线 UE 4.27 添加自定义 ShadingModel 用 UE4 虚幻引擎做个捏脸小功能~~ UE4 材质练习 之 凹凸贴图偏移的使用 UE4 材质练习系列基础 OpenGL上下文创建以及共享机制 007 | 播放器系列专栏-解析 MP4 文件读取信息 006 | 播放器系列专栏-在 Mac 上查看 MP4 格式信息 干货 | 快速抽取缩略图是怎么练成的? 关于直播、WebRTC、FFmpeg 的那些事 005 | 播放器系列专栏-在 Windows 上查看 MP4 格式信息 将音视频中的花屏、绿屏、黑屏问题一网打尽 关于音视频里面的解码帧率和渲染帧率 004 | 播放器系列专栏-认识MP4视频(下) 003 | 播放器系列专栏-认识MP4视频(上) 入门或者转行音视频,应该要怎么做? H264视频文件如何缩放分辨率 002 | 播放器系列专栏-FFmpeg依赖库的配置 001 | 播放器系列专栏-关于播放器项目的一个小实践 Seek策略以及在有B帧情况下的处理 目前流媒体开发工程师工作内容主要是什么? 一个音视频领域专业问答的小圈子 干货收藏 || Vulkan Game Engine 视频教程 音视频春节假期内卷指南(实操) Vulkan 在 FFmpeg 中的支持 Windows 下 FFmpeg 和 LibX264 的编译和配置 Metal 开发 | 使用 C++ 进行接口调用 音视频开发工作经验分享 || 视频版 FFmpeg 调用 MediaCodec 硬解码到 Surface 上 代码吸猫 | 用 OpenGL 图像渲染的养猫计划 百倍变速--解码到底能不能丢 非参考帧 ?FFmpeg 有话说!!! 老生常谈-FFmpeg 的编译问题轻松搞定 FFmpeg 调用 Android MediaCodec 进行硬解码(附源码) 【WebRTC 专栏】--创建相机预览 Unity Shader 光照基础之 Half Lambert 光照模型 Unity Shader 光照基础之Lambert光照模型 Unity Shader 光照基础内容 Unity Shader 显示一张图片纹理 UnityShader 的基本概念 Unity 物体的基本操作 C++ 模板系列小结07-尾置返回类型 C++ 模板系列小结06-可变参数模板特性 C++ 中的多线程的使用和线程池建设 C++ 模板系列小结05-模板类型作为模板参数 C++ 模板系列小结04-类模板中的成员模板 C++ 模板系列小结03-在模板中指定变量类型 C++ 模板系列小结02-非类型模板参数 C++ 模板系列小结01-函数模板和类模板 从零打造渲染引擎系列01-什么是渲染引擎 iOS开发 - 在 Swift 中去调用 C/C++ 代码 2021 技术新番 - 从零打造渲染引擎系列 iOS 音视频开发的一些基础准备工作 音视频交流群又来啦~~~ 【WebRTC 专栏】WebRTC & Android 开发学习环境搭建~ 【喜大普奔】域名终于备案通过啦 Shader 优化 | OpenGL 绘制网格效果 【音视频连载-011】第二季 FFmpeg 一层一层获取文件信息 KodeLife | Shader 实时编辑预览的强大工具使用实践 推荐几个堪称教科书级别的 Android 音视频入门项目 【音视频连载-010】第二季 FFmpeg 日志打印 【音视频连载-008】基础学习篇-SDL 播放 PCM 音频文件(下) 【音视频连载-007】基础学习篇-SDL 播放 PCM 音频文件(上) 【音视频连载-006】基础学习篇-SDL 播放 YUV 视频文件 【音视频连载-005】基础学习篇-SDL 加载 YUV 文件并显示 【音视频连载-004】基础学习篇-SDL 加载图片并显示 【音视频连载-003】基础学习篇-SDL 消息循环和事件响应 【音视频连载-002】基础学习篇-SDL 创建窗口并显示颜色 【音视频连载-001】基础学习篇- SDL 介绍以及工程配置 LearnOpenGL 源码在 MAC 上的编译与调试 Android NDK 开发的免费技术视频来啦~~ OpenGL 实现视频编辑中的转场效果 OpenGL 实践之贝塞尔曲线绘制 图像库 libjpeg-turbo 编译与实践 图像库 libpng 编译与实践 rust 开发编译 Android 动态库实践 Android NDK 开发 —— 从 Assets 文件夹加载图片并上传纹理 简单易用的图像解码库介绍 —— stb_image 博客图床迁移记 进击的 Vulkan 移动开发之 SwapChain 进击的 Vulkan 移动开发之 Command Buffer 进击的 Vulkan 移动开发之 Instance & Device & Queue 进击的 Vulkan 移动开发(一)之今生前世 Java 显式锁 Lock 与条件队列 C++ 标准容器库小结 MediaCodec 硬编码之相机内容编码成 H264 文件 一文读懂 YUV 的采样与格式 《OpenGL ES 3.x 游戏开发》碰撞检测之 AABB 包围盒
2019 年终总结与回顾
音视频开发进阶 · 2019-12-27 · via 音视频开发进阶

一个专注音视频领域的小圈子

时光荏苒,岁月如梭。 又到了回顾过去,展望未来的(chui)高(niu)光(bi)时刻了~~

职业回顾

去年年底准备跑路,然后年前面试,拿了头条的 offer,年后就入职了~~~ 应聘的岗位是 Android-多媒体开发工程师,具体招聘岗位见官网:多媒体平台研发工程师-Android — 抖音火山 工作内容简单说就是做音视频 SDK,支持头条的一些业务。 实际上早先我也不是做音视频的。

16 年从西电本科毕业后主要是做 Android 应用开发,那时候热衷于使用 RxJava、Retrofit、Glide 等优秀的开源库,写着拿手的 MVP、MVVM 架构代码,同时研究研究 Android 系统源码,深入学习 Android 插件化和组件化,到后来又上手了 Kotlin ,掌握 JetPack 系列套件,极大地提高了应用开发效率,正是战斗力爆表的时候,这是多么单纯而又美好的时代~~~

然而遗憾的是,直到现在也没上车 Flutter,话说现在来还来得及嘛…

再后来,画风突变,入了音视频的坑,也算是渐渐开始转型了,毕竟上面提到的技能都很少用到了,主要是在写 C++ 代码,当然写的也不怎么样。

不少人都说想学习音视频开发,但是不知道怎么入门,那么我又是怎么转型的呢?

因为前司工作分配,独自做了个相机应用项目,后来又参与了一款画板应用,填了不少坑,但是通过这两个项目也点亮了 OpenGL 和音视频相关的技能树。

事实上在上面项目开发之前,我也是干着打杂的活,做着应用业务的开发。不过当时短视频应用开始有点火热,就对这方面的技术关注多了点,看过不少相关的开源项目代码和博客文章,比如 GPUImage、grafika、cameraview 等,以至于后来有机会去做相关的开发时,果断就接下来了,这才有了后面的故事~~~

由此可见,如果你想做某一方面的事情,可能它与你现在做的事情毫无关系,你也要默默地行动,不能只有心动而无行动,等着哪一天有机会来了,便是厚积薄发的时刻。

这种鸡汤是不是很熟悉,鸡汤喝多了,反而觉得是另外一种味道。

技术其实这东西也是讲究风口的,更准确的应该说是业务讲究风口,技术只是工具,为业务服务的。

短视频风口来了,市场很大,各大公司都想从中分一杯羹,那么就难免对技术人才的需求量更大了。而短视频业务涉及到的音视频技术,要么公司内部已经有了相应的技术沉淀,要么就从零开始积累打造,赶时间的话就去外面招聘,或者花钱用别人提供的服务。但总之,就是需要人了。

因此,技术人员作为整个产业链中的重要一环,也可以在此之前做好相应的学习,毕竟机会是留给有准备的人,前提你得准备呀。

这个思想和炒股买基金有点类似,在支付宝和一些基金软件上,经常能看到说提前布局 5G ,然后推荐买入各种股票和基金。

买股票基金,或者抄币,都算是做价值投资,也是讲究在低估时买入,在高估时抛出。做技术道理也差不多,前期猥琐发育,后面一波带走。

说的有点夸张了,其实是后来运气好,赶上了头条深圳招聘,正好团队在扩招,招聘名额多,需求量大,不知道放了多少水,我这小小菜鸡才得以入坑。

所以呀,如果你看到一些公司靠谱项目也在扩招,别犹豫,简历投它。

说回正题,提到音视频开发,但实际上,我所做的既不是视频开发,也不是音频开发。音视频包含的范围太广了,每个点又可以细分,有音频组也有视频组,专门研究各种音频玩法,各种视频算法,高大上的内容反正看不懂就对了。

但是作为一个完整系统,总还是需要各个环节衔接的。除了高大上的研究,工程化落地、性能优化、接口对接、日常测试等等环节,都是需要的,就看你处于哪个环节了。

这年头想要一个人单打独斗,从上到下,掌握所有环节难度很高了。看着茫茫代码,拧着手里的螺丝,有种觉得个人太过于渺小了。

对此,还是要保持兴趣,多一点探索。

个人发展

今年开始运营了公众号 【纸上浅谈】,不过也是佛系运营,一直没有太多时间投入到这个上面去。

还有个博客网站:https://glumes.com/,一般技术文章都会先发在博客上。

网站的日均访问量周一到周五都在几百以上了,到了周末就暴跌,可见放假大家技术文章都看得少了。

通过谷歌搜索 YUV、CameraX、Vulkan 等关键字,都能直接搜索到博客文章,而且博客阅读体验也会比较好,实现了全站 HTTPS 纯净无广告。当然,不是我不想挂广告,而且申请了无数次 Google AdSenese 皆以失败告终,最后懒得折腾,弃疗了(感觉错过了几个亿)…

其实折腾博客是一件很费神的事情,从早期搞独立主机,WordPress 建站,折腾 WP 模板,域名购买解析,到 GitHub Pages 建站,VPS 自建图床,全站 HTTPS,这一路走来,满是心酸与妥协。

每一位博客站长都不容易呀,体验过的人都会懂,基本不会有太大的访问流量,但还是在坚持写作的,这应该就是一种 Geek 精神的体现了吧~~~

同时还维护了一个比较纯净的技术交流群【OpenGL ES 技术交流群】,从早先的一两个人,到目前已经有 300+ 了,里面不少头条、腾讯大佬。除了交流 OpenGL 相关内容,也会谈及音视频相关的开发。

群聊比较抵制广告链接,做纯粹的技术交流。有人会问头条 XXX 功能是怎么实现的,抖音 XXX 效果是怎么实现的,这特么我哪知道呀,就算知道我也不能说呀,毕竟饭碗要紧,好在还有很多热心大佬,总还是能够答疑解惑的。

另外,早期写了很多 OpenGL 方面的博客,许多人就是因为这方面才关注了掘金和公众号,列举一下 OpenGL 的系列文章:

其实后来还写过 Vulkan 的系列文集,只是感觉这方面的开发者略少,不太受关注,就没有继续写下去了。

不过,学会的技能还是没有忘的,都存在了脑海和笔记本里,化身为一行行代码,伴我行走江湖。

最近还尝试了录制视频课程,在慕课上录制了一套 Android NDK 开发的免费技术视频。

慕课网录制的视频上线啦~~~

以前都是写文章,现在开始录制技术视频,两者的表现形式不一样,但共同点都是需要提前把相关的知识掌握好,并且在录制、写作的过程中还需要不断查漏补缺,对个人能力的提升都是很有帮助的。

至于后续是否继续录制视频,现在还只是尝试,不断探索中,主要还是太耗时间了,而且收益不高。

什么时候技术视频可以不是只讲枯燥的代码,而是像华农兄弟、美食家王刚、手工耿那样丰富有趣,普及一些计算机基础知识并且展示手工小项目,就好比参加项目比赛做出来的成品给大家演示。要是真能那样,写代码可能会更有趣一些吧。

最后就是在掘金上的成就啦,截至目前都有 4500+ 的关注了,而且还在不断增长中。

回想当年,能有一两百都开心不已了,自从开始写 OpenGL 相关内容后,就在不断增长,并且掘金上关于 OpenGL、音视频的内容也越来越多,这是个好的迹象呀,学习资源越多,说明这门手艺需求量也在增多,对于打工仔来说总是利大于弊的。

都看到这了,不关注一波公众号嘛,你的关注才是我不断更新的动力…

程序人生

马上就要是新的一年了,该立新的 Flag 了。

话说工作三年,跳槽两次,在珠三角这个地方算是打通关了,珠海、广州、深圳都留下足迹。总的来说珠海是最宜居了,海边生活过得特别惬意,适合养老,反观现在生活质量随着薪资的上涨而直线下降了。

说到养老,有时候在想离 35 岁失业下岗都还有十年呢,这十年还是得写代码讨生活呀,不然也没别的手艺了,为啥不精益求精,把代码写得更 six 一点呢..

抱着这样的念头和想法,也不会有学不动了的念头,只是有没有时间了,不过来日方长,慢慢搞呗…

前段时间还做了一两个 iOS 的需求,因此特意看了一下 OC 和 Swift ,不得不说 Swift 的语法和 Kotlin 好相近,入门的门槛大大降低了。

音视频毕竟是跨平台的,学习一波 iOS ,了解一下双端的实现思路总还是不错的。除此之外,写文章讲究首尾呼应,Flutter 抽时间也要了解一波。

另外还有好多好多有意思的事情可以去做,希望接下来会写更多音视频、图像渲染方面的文章博客,除了基础的理论介绍、代码分析,最好再带上一些实践项,做点好玩的东西~~

具体做哪些就不先说了,预知后事如何,持续关注一波吧~~~

原创文章,转载请注明来源:    2019 年终总结与回顾