Loading

摘要: 背景 如果你是一个FFmpeg的使用者,那么绝大部分情况下只需要在你的程序中引用FFmpeg的libav*相关的头文件,然后在编译阶段链接相关的库即可。 但是如果你想调试FFmpeg内部相关的逻辑,或者分析FFmpeg源码,那么有一个可供单步调试FFmpeg的环境往往能使你事半功倍! 要说Windo 阅读全文
posted @ 2021-12-09 22:17 Suiyek 阅读(1737) 评论(3) 推荐(4) 编辑
摘要: 背景 如果你是一个FFmpeg的使用者,那么绝大部分情况下只需要在你的程序中引用FFmpeg的libav*相关的头文件,然后在编译阶段链接相关的库即可。但是如果你想调试FFmpeg内部相关的逻辑,或者分析FFmpeg源码,那么有一个可供单步调试FFmpeg的环境往往能使你事半功倍。 步骤 本文将介绍 阅读全文
posted @ 2021-11-14 22:45 Suiyek 阅读(1630) 评论(0) 推荐(0) 编辑
摘要: 简介 cgdb是一款轻量级的基于gdb的命令行可视化工具,关系大致如下: 尽管gdb本身可以通过layout src的命令显示源码布局,但是其功能还是过于简陋。 使用cgdb并不需要你重新去学习过多额外的命令,你依然可以像原来使用gdb一样去使用它。 安装 直接系统安装(可能非最新版本): sudo 阅读全文
posted @ 2021-11-14 22:39 Suiyek 阅读(4057) 评论(0) 推荐(0) 编辑
摘要: 背景 做视频编解码相关开发的过程中我们经常会遇到要把视频原始YUV数据保存下来查看的情况。 使用FFMpeg对视频解码之后原始图片数据都是保存在AVFrame这一结构中,很多时候我们都按照图像的长宽来对数据进行保存,这在绝大部分标准分辨率中都是可行的,因为图像的宽度在内存中能刚好满足CPU的字节对齐 阅读全文
posted @ 2021-10-10 20:44 Suiyek 阅读(434) 评论(0) 推荐(0) 编辑
摘要: 定义 定义于:<libavuitl/rational.h> /** * 有理数的定义. */ typedef struct AVRational{ int num; ///< Numerator int den; ///< Denominator } AVRational; 相关函数: 在数学的数集 阅读全文
posted @ 2021-02-22 12:10 Suiyek 阅读(799) 评论(0) 推荐(0) 编辑
摘要: 背景 当存在一个推流客户端正在向rtmp://xxx.com/live/yyy推流时,又有另外一个推流客户端同时对这个地址进行推流,会发生什么呢? 查阅了 Adobe RTMP Spec 发现规范本身并未说明和定义这个场景下RTMP服务器应该怎么处理。 最近在实际工作中遇到部分客户对推流地址资源管理 阅读全文
posted @ 2021-01-14 21:42 Suiyek 阅读(865) 评论(0) 推荐(1) 编辑
摘要: 原理 当我们执行docker build命令使用Dockerfile构建一个新的镜像时,docker内部的构建过程大致如下: 从基础镜像运行一个容器; 执行一条指令,对容器做修改; 执行类似docker commit的操作,生成一个新的镜像层; Docker会再基于刚刚提交的镜像运行一个新容器; 重 阅读全文
posted @ 2020-12-20 17:40 Suiyek 阅读(3433) 评论(0) 推荐(0) 编辑
摘要: 注:本文是我在学习FFmpeg Filters Documentation过程中的中文翻译笔记,为避免英译中过程中一些死板的字面意思引起读者错误理解,有时候我还会加上一些个人注解,若有不同见解,请最好参考原文档学习。本翻译仅供参考,转载请注明! 1. 简介 本文档将描述由libavfilter库提供 阅读全文
posted @ 2020-12-20 17:23 Suiyek 阅读(263) 评论(0) 推荐(0) 编辑
摘要: 背景 总所周知,代码量稍微大一点的C/C++项目的一些宏定义都会比较复杂,有时候会嵌套多个#if/#else判断分支和一堆#ifdef/#undef让你单看代码的话很难判断出宏定义的具体内容。 如果有一种机制能够帮助我们在构建期间打印出宏的实际内容,就能帮我们更快地捋清楚代码逻辑。 message 阅读全文
posted @ 2020-12-20 17:12 Suiyek 阅读(5535) 评论(0) 推荐(0) 编辑
摘要: 背景 在gitlab上配置新项目的CI的时候,需要编写项目的 .gitlab-ci.yml 文件。 每次修改 .gitlab-ci.yml 文件之后都要执行git push让GitLab去构建来验证当前的CI脚本是否能正确构建,甚是麻烦,同时增加了很多无营养的Git提交。 若我们能够在修改完.git 阅读全文
posted @ 2020-12-20 16:18 Suiyek 阅读(2340) 评论(0) 推荐(1) 编辑