音视频开发工作经验分享 || 视频版

最近有不少朋友加我微信或者在技术群里面咨询:想要转行音视频岗位要怎么做?

俗话说:隔行如隔山。从一个岗位转向另一个岗位,肯定不是三言两语就能说清楚的。

和多数人一样,我之前是从事 Android 客户端开发,后来跳槽到头条做音视频 SDK 开发,参与了抖音和剪映这样的短视频项目,编程语言也从 Java 转向了 C++,技术栈也对应发生了变化。正因如此,也算是完成了一次职业转型,再出去找工作的话,肯定会更偏向音视频底层的开发,而不再是应用层的岗位了。

相对来说,这样的经历对想从事音视频行业的朋友会比较具有参考性,我也很乐意和大家分享这里面的故事,之前还在 B 站上做了一次直播活动,没有参加的朋友可以观看下面的录播内容:

视频地址如下:

https://www.bilibili.com/video/BV1p54y1X7fY

[阅读全文]

UE 4.27 添加自定义 ShadingModel

基于 UE 4.27 的版本添加自定义的 ShadingModel ,大致分为两步:

1. 在 UE Editor 中添加自定义的 ShadingModel 入口。这样在创建材质时可以选择对应的 ShadingModel 。

2. 在 Shader 中对自定义的 ShadingModel 做渲染上的处理。比如自定义的 BxDF 函数,以及对光照的特殊处理等。

[阅读全文]
UE4 

用 UE4 虚幻引擎做个捏脸小功能~~

最近在学习 UE 相关的使用,正好看到一篇文章讲解用 Control Rig 实现简单捏脸功能,这种小而美的完整案例挺适合来练手的,涉及到了 UI、蓝图、动画、骨骼等方面,值得推荐一下。

[阅读全文]
UE4 

OpenGL上下文创建以及共享机制

在知识星球里面,有一个同学咨询纹理池是如何实现的。

关于纹理池的实现方案以及背后的原因、细节、技巧,只有长篇大论才足以论道,本文暂表不提。

针对问题本身,笔者发现这位同学对OpenGL中的共享资源存在误解,他认为OpenGL中可以共享FBO。

为了纠正错误,也为了让大家在使用OpenGL之前理清一些基本概念,笔者专门附上一篇旧文系统讲述上下文的创建及共享。

[阅读全文]
OpenGL 

007 | 播放器系列专栏-解析 MP4 文件读取信息

在之前文章中已经介绍过了 MP4 标准的来源以及它的格式定义,基本上就是由一个个 Box 组成的,大致的结构如下:

ftyp
moov
    mvhd
    trak
        tkhd
        mdia
    trak
        tkhd
        mdia
mdat

接下来我们就要去手动解析 MP4 文件,注意这可不是用 FFmpeg 来解封装,而是从 MP4 文件中一个一个字节读取信息并解析它的含义获得想要的内容。

[阅读全文]