RourkeLi
码龄11年
关注
提问 私信
  • 博客:8,686
    8,686
    总访问量
  • 12
    原创
  • 141,982
    排名
  • 85
    粉丝
  • 0
    铁粉
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:四川省
  • 加入CSDN时间: 2014-04-20
博客简介:

RourkeLi的博客

查看详细资料
  • 原力等级
    当前等级
    2
    当前总分
    119
    当月
    2
个人成就
  • 获得87次点赞
  • 内容获得1次评论
  • 获得71次收藏
  • 代码片获得150次分享
创作历程
  • 9篇
    2024年
  • 3篇
    2017年
成就勋章
TA的专栏
  • c++面试题
    2篇
兴趣领域 设置
  • 编程语言
    c++qt
创作活动更多

2024 博客之星年度评选报名已开启

博主的专属年度盛宴,一年仅有一次!MAC mini、大疆无人机、华为手表等精美奖品等你来拿!

去参加
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

FFMPEG利用滤镜,代码实现视频多宫格效果

好久没有更新学习的记录了,虽然确实是因为连着加班了一个多月,但是懈怠也是不可否认的。滤镜是FFMPEG 中一个很重要的功能,还需要继续学习加深理解。上一篇是利用滤镜为视频添加时间戳,这次是用滤镜实现多宫格的效果。
原创
发布博客 2024.08.11 ·
1235 阅读 ·
22 点赞 ·
0 评论 ·
25 收藏

FFMPEG使用代码给视频添加时间戳滤镜

在上一周,我用,总算可以实时显示视频画面。在此基础上,我想为视频添加水印信息。网上的教程大多以命令行为主,少数有利用的代码的方式添加水印,而且都只能对已有文件进行操作,我还是期望能实时操作并显示添加水印的视频。
原创
发布博客 2024.06.23 ·
2145 阅读 ·
38 点赞 ·
0 评论 ·
19 收藏

FFMPEG+QT显示桌面

我在录制屏幕或者摄像头采集的画面时,均是将图像编码后存入文件,每次都需要通过视频播放软件才能看到效果,我期望能实时显示采集的画面。之前在网上查找资料,发现绘制FFMPEG解码后的图像大多用SDL,但我想直接使用Qt的接口完成图像的显示。Qt中可以使用QImage类绘制图像,但Qt对于YUV格式的数据支持的不好,大家通常将YUV数据转换为RGB。对于格式转换,FFMPEG 提供了相应的函数,我们不需要自己按照公式自己转换。QT和FFMPEG对像素格式的枚举定义不同,再做转换时需注意。例如FFMPEG中。
原创
发布博客 2024.06.15 ·
437 阅读 ·
5 点赞 ·
0 评论 ·
10 收藏

使用代码获取音视频设备能力信息

我想通过代码获取类似上面的信息,这样就可以为用户提供帧率和视频大小的选择,不过并没有在FFMPEG中找到相应的接口。查看FFMPEG源码后,得知该功能是使用了微软提供的IAMStreamConfig接口,结合网上的资料和dshow.c源码,我对接口做了简单的封装,可以把需要的信息提取出来。对于视频设备,我只是获取了设备名称,设备支持的帧率范围和输出视频大小。对于音频设备,除了设备名,我还获取了设备的采样位数和采样率信息。如果需要其他的信息,可以在微软提供的结构体。
原创
发布博客 2024.06.02 ·
343 阅读 ·
3 点赞 ·
0 评论 ·
4 收藏

FFMPEG利用代码实现简单的录屏功能

在将封装后的音视频流写入文件时,我使用了两个线程,本来计划在各自的线程统计下一帧的时间戳,通过比较,将时间戳靠前的音频或视频帧写入文件。实现过程中,发现可以不做这一步处理,哪个线程抢占到输出上下文,正常写入即可。之前有利用FFMPEG封装过摄像头采集的图像,也封装过音频设备采集的数据,录屏其实只需要更换音视频的输入源即可。关于音频重采样部分的代码,我做了简单的封装,这部分的功能相对独立,提出来方便理解整体思路。主要的代码如下所示,其实和之前的封装代码有很多类似的地方,主要是将两个采集流程理清楚。
原创
发布博客 2024.05.26 ·
1380 阅读 ·
2 点赞 ·
1 评论 ·
3 收藏

FFMPEG采集音频设备并输出到文件

之前有将pcm数据进行编码并写入文件,这次有些许不同,音频来源于电脑音频捕获设备。从音频设备获取的数据不能直接使用,需要进行解码然后再进行重采样,最终得到编码器需要的数据格式。具体的代码如下,为了减少代码量,例子中没有对函数返回值进行判断。可以先熟悉整体的流程,实际运用时再根据需要进行添加。
原创
发布博客 2024.05.20 ·
348 阅读 ·
2 点赞 ·
0 评论 ·
0 收藏

FFMPEG封装摄像头采集的图像数据到MP4文件

使用FFMPEG封装摄像头采集的图像数据到MP4文件
原创
发布博客 2024.05.08 ·
1117 阅读 ·
6 点赞 ·
0 评论 ·
8 收藏

使用FFMPEG封装YUV数据

未经过编码处理的yuv数据直接存储将占用大量的磁盘空间,而且需要记录像素格式、分辨率等额为信息,一般的播放器也不支持直接打开。典型的多媒体容器格式如FLV、MP4、AVI和RMVB等,容器可以包含不同的类型的音视频流或者字幕流,以及正常播放所需要的同步信息。我以为是比特率不同导致,于是将命令行和代码输出的文件比特率都设置成一样,但是最终代码输出的视频帧率还是不为整数。两种方式输出的mp4文件有些许差异,代码输出的mp4文件帧率为25.11,比特率也比命令行输出的要高。关于这个帧率的问题目前还没查找到原因。
原创
发布博客 2024.04.21 ·
382 阅读 ·
6 点赞 ·
0 评论 ·
2 收藏

使用FFMPEG对PCM数据重采样

上面的命令可以将样点格式为AV_SAMPLE_S16,采样率48000Hz的双通道PCM数据,转换为样点格式为AV_SAMPLE_S16,采样率44100Hz的双通道PCM数据,参数可根据实际情况进行调整。使用两种方式转换出来的PCM文件大小应该一致,否则应该检查代码是否有误。
原创
发布博客 2024.04.18 ·
381 阅读 ·
3 点赞 ·
0 评论 ·
0 收藏

二叉树的遍历

多种方式遍历二叉树 遍历二叉树最简单的是使用递归,如果使用栈也不是很难,不过许久没用都忘记的差不多了。花了一些时间做了整理,方便以后查阅,也希望有人能用到。typedef struct TreeNode{ char data; struct TreeNode* left; struct TreeNode* right;}BiTree,*PBiTree;typed
原创
发布博客 2017.09.18 ·
339 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

有序链表合并

有序链表合并: LA、LB是两个带头结点的有序链表,归并两个链表得到新的有序表LC。设立指针pa,pb,pc,其中pa和pb分别指向LA,LB中当前待比较的结点,pc指向LC表中当前最后一个结点。将pa,pb结点中值较小的一个链接到pc之后。typedef struct Node{ int data; struct Node* next;}Node,*PLink;//销
原创
发布博客 2017.09.17 ·
406 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

约瑟夫环

约瑟夫环(约瑟夫问题)是一个数学的应用问题:已知n个人(以编号1,2,3…n分别表示)围坐在一张圆桌周围。从编号为k的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规律重复下去,直到圆桌周围的人全部出列。//利用数组 int josephu(int n,int m) { int *arr; arr = new int[n];
原创
发布博客 2017.09.16 ·
162 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏