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

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

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

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

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

视频地址如下:

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

[阅读全文]

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

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

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

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

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

[阅读全文]
OpenGL 

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

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

ftyp
moov
    mvhd
    trak
        tkhd
        mdia
    trak
        tkhd
        mdia
mdat

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

[阅读全文]

关于直播、WebRTC、FFmpeg 的那些事

在知识星球中有位同学咨询了关于直播、webrtc、FFmpeg的一系列问题,这些问题都是大家平时关注的问题。

为了让大家在从事音视频之前能对相关概念有一个清晰的理解,此前对这些问题做了系统性的回复,这些答案也许会对你有所帮助,也算是抛砖引玉,欢迎大家一起交流。

[阅读全文]
FFmpeg 

005 | 播放器系列专栏-在 Windows 上查看 MP4 格式信息

在之前的文章中我们已经认识了 MP4 视频,知道了它是音频和视频的容器,并且由一系列 Box 组成。

在前文的附件中,我们也给出了对应的资料,包括 MP4 格式的官方定义以及各种 Box 类型的描述。

但是纸上得来终觉浅,绝知此事要躬行,光是理论上知道了还不行,需要亲自实践加深印象。

这次会在 Windows 平台上用工具解析查看 MP4 格式信息,推荐的工具就是 Mp4 Explorer

[阅读全文]