首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
ltlovezh
掘友等级
高级工程师
|
字节跳动
始于Android开发,目前专注于音视频领域,做过直播和短视频,对播放器和音视频编辑SDK有丰富经验。
获得徽章 0
动态
文章
专栏
沸点
收藏集
关注
作品
赞
22
文章 22
沸点 0
赞
22
返回
|
搜索文章
最新
热门
AVIOContext和边合成边上传
AVFormatContext->pb是一个AVIOContext结构体,负责IO操作。 一般情况下,我们通过avio_open函数创建并初始化AVFormatContext->pb;通过avio_closep函数关闭AVFormatContext->pb。 所谓边合成边上传,…
分屏特效
VS Code安装Shader Toy插件后,可以实时预览glsl效果,开发shader特效很有意思。 gl_FragCoord是只读变量,保存当前片元的窗口坐标(x, y, z, 1/w),该值是图元装配阶段对图元插值计算所得,z分量表示当前片元的深度值。
视频SAR信息处理
SAR表示单个像素显示的宽高比,即像素不都是按照1:1显示。 SAR(Sample Aspect Ratio): 单个像素宽高比,即每个像素宽度与高度的比值。 PAR(Pixel Aspect Ratio): 像素数宽高比,图像的横向采集点数与纵向采集点数的比值,即像素个数的比…
C++结构体初始化
当使用结构体时,一定要在定义结构体变量时,对所有成员变量进行初始化,否则,成员变量是随机值,导致出现各种奇葩Bug。 结构体的初始化整体分为:直接初始化和构造函数初始化。 在定义结构体变量时,给定初始值。 在C++中,结构体与类在使用上已没有本质区别了,所以可以使用构造函数来初…
FFmpeg之AVPacket
在FFmpeg中,AVPacket主要存储编码数据,例如:H264、H265、AAC等。对于视频流,它通常应该包含一个编码帧;对于音频流,则可能包含多个音频帧。编码器可能输出空AVPacket,不包含编码数据,只包含边side data,例如:在编码结束时更新一些流参数。 AV…
音视频元数据那些事
本文主要介绍音频AAC、视频H264和H265等编码格式的元数据,以及它们在MediaCodec中的处理逻辑和在封装容器中的存储逻辑。 audio object type是profile的索引,frequency index是采样率的索引,channel configurati…
FFmpeg hevc codec_tag兼容问题
最近同组同事遇到一个问题:FFmpeg拼接ts文件生成mp4时(demux -> mux,不编解码),在Android平台上可以播放,但是在mac(QuickTime Player)和iOS上无法播放。其中,FFmpeg版本为3.3,ts流包含的音频轨是lc aac,视频轨是h…
Surface和GLConsumer对视频旋转角度的处理
最近遇到一个有趣的问题:通过MediaCodec解码带旋转角度的视频时,如果Output Surface是TextureView或者SurfaceView提供的,那么屏幕上的视频帧可以正常展示(处理了旋转角度);如果Surface是由SurfaceTexture创建而来,那么通…
Android图形系统之SurfaceTexture
SurfaceTexture是离屏渲染和TextureView的核心,内部包含了一个BufferQueue,可以把Surface生成的图像流,转换为纹理,供业务方进一步加工使用。整个架构如下图所示: 首先,通过Canvas、OpenGL、Camera或者Video Decode…
C++11 std::thread
C++ 11增加了标准线程库:std::thread,在语言级别上提供了线程支持,并且是跨平台的。在不同操作系统上,依赖于平台本身的线程库,例如Linux上,底层实现是pthread库。 std::thread禁止了拷贝构造函数和拷贝赋值运算符,所以std::thread对象不…
下一页
个人成就
文章被点赞
814
文章被阅读
202,844
掘力值
4,093
关注了
24
关注者
375
收藏集
4
关注标签
112
加入于
2016-06-30