- 博客(46)
- 资源 (46)
- 收藏
- 关注
原创 从零开始学习音视频编程技术(43) AAC播放器
直接上代码吧:工程代码下载地址:https://download.csdn.net/download/qq214517703/12000761Github:https://github.com/yundiantech/FFMPEG_DEMO/tree/master/source/AudioDecode音视频技术交流讨论欢迎加QQ群121376426 ...
2020-06-02 16:52:29 527
原创 从零开始学习音视频编程技术(42) AAC数据解析
AAC基本格式AAC音频格式有ADIF和ADTS:ADIF:Audio Data Interchange Format 音频数据交换格式。这种格式的特征是可以确定的找到这个音频数据的开始,不需进行在音频数据流中间开始的解码,即它的解码必须在明确定义的开始处进行。故这种格式常用在磁盘文件中。ADTS:Audio Data Transport Stream 音频数据传输流。这种格式的特征是它是一个有同步字的比特流,解码可以在这个流中任何位置开始。它的特征类似于mp3数据流格式。简单说,ADTS可
2020-06-01 13:24:46 1348
原创 从零开始学习音视频编程技术(41) H.264播放器
2019-10-24更新:1.更新为ffmpeg4.1,同时支持播放h265。下载地址:https://download.csdn.net/download/qq214517703/11914710Github地址:https://github.com/yundiantech/FFMPEG_DEMO/tree/master/source/VideoDecode代码讲解视频地址...
2018-05-20 11:12:29 1329 3
原创 从零开始学习音视频编程技术(40) H.264数据解析
前面我们已经开发了视频播放器和录屏软件,但目前为止,我们对原理性的东西其实还不是很了解。现在我们需要稍微了解一下理论知识,然后才能继续,先从h.264数据讲起。H.264数据结构解析:NALU可以简单认为就是一帧视频数据(我们暂且先这样认定),那么h264的结构就是一帧帧数据排列下去,帧与帧直接用StartCode隔开,StartCode说明:如果该NALU对应的s...
2018-05-18 09:43:25 1117
原创 从零开始学习音视频编程技术(38) windows下编译并调试ffmpeg
前面介绍了Linux下编译ffmpeg的方法,考虑到大部分时候测试ffmpeg功能都是使用的windows系统(至少我是这样的),因此将战场重新转移到windows上。前面写了那么多的代码,但都只是简单的调用了ffmpeg的API,并不知道他内部是如何实现的。如果可以在调试的时候打个断点就可以进入ffmpeg代码调试看看实现该好友多好!梦想总是要有的,万一实现了呢!百度了一下发现可以做到,...
2018-02-27 20:37:57 1379
原创 从零开始学习音视频编程技术(二十二) FFMPEG Qt视频播放器之BUG修复
======新增功能 Begin =======2017-12-07更新:1.打开视频黑屏,无法打开视频问题2.暂停出现吱吱声3.界面新增拖动大小功能4.新增暂停的时候跳转画面跟着变。下载地址:http://download.csdn.net/download/qq214517703/101490332019-3-22更新:【V1.8.0】 Qt5....
2018-02-27 20:35:04 1001
原创 从零开始学习音视频编程技术(34) Linux篇之编译ffmpeg
水了这么多篇,是时候开始干正事了。Linux基础知识已经掌握了,现在可以开始编译ffmpeg了:一、下载ffmpeg首先下载ffmpeg的源代码,ffmpeg所有版本源代码下载地址:http://ffmpeg.org/releases/截至本文编写时,ffmpeg最新版本是3.3,但我们还是一如既然的使用2.5.6.2.5.6下载地址: http://ffmpeg.org/releases/ff...
2018-02-27 20:33:16 891
原创 从零开始学习音视频编程技术(33) Linux篇之Makefile
原文地址:http://blog.yundiantech.com/?log=blog&id=32回想上节我们写的main.c和function.c,编译这2个文件的时候我们用了3条命令,分别是:gcc -c main.cgcc -c function.cgcc -o hello main.o function.o写代码可是一个不断修改,不断编译
2017-07-12 17:20:20 804 1
原创 从零开始学习音视频编程技术(32) Linux篇之编译和链接
原文地址:http://blog.yundiantech.com/?log=blog&id=31在windows下写程序的时候,通常我们所说的“编译”程序,就是直接点IDE工具上的那个运行图标,程序就运行起来了。 所以windows下开发的时候很少对程序编译的整个过程有大概的了解,对编译和链接理解的不是很透彻(至少我当初是这样的),每当看到编译器报错的时候,心就开始方了,不能迅速找出问题所
2017-07-11 16:40:26 873
原创 从零开始学习音视频编程技术(31) Linux篇之hello world
原文地址:http://blog.yundiantech.com/?log=blog&id=30Linux和window在使用上有一定的区别,百度上搜一下如何学习Linux都会有各种书籍推荐,呼声最高的就是《鸟哥的linux私房菜》,有兴趣的可以搞一本看看,当初我也买了一本(然而买回来之后并没有看多少页,纯属浪费钱)。因此本人不建议通过看书来学习linux的使用, 古语有云:“熟能生巧
2017-07-03 15:39:27 2070
原创 从零开始学习音视频编程技术(30) Linux篇之系统安装
原文地址:http://blog.yundiantech.com/?log=blog&id=29 到这里,我们已经掌握了windows下使用ffmpeg。谈不上精通,但至少已经算是入门了,现在,我们没有继续深入研究ffmpeg,因为深入研究的过程是很枯燥的(主要是我也只会这些了)。既然ffmpeg是跨平台的,那么就来感受一下吧,我们先从Linux开始,将之前实现的功能移植到Linux系统
2017-06-14 15:07:56 1340
原创 从零开始学习音视频编程技术(二十一) 录屏软件开发之最终完善
原文地址:http://blog.yundiantech.com/?log=blog&id=28上面我们已经生成了录屏的视频,然而这个视频并不是理想中的那样,随时时间的增加,音视频会越来越不同步。原因就是因为保存视频的方式采用的是固定帧率的方式,既时间戳间隔也是固定的。举个栗子:假如视频的帧率是10,就是每秒钟10张图像,那么这十张图像是平均分布的,位置分别是:0.1s
2017-04-27 16:46:50 2043 2
原创 从零开始学习音视频编程技术(二十) 录屏软件开发之录屏生成MP4
原文地址:http://blog.yundiantech.com/?log=blog&id=27到这里我们已经知道如何生成视频文件了。接下来就用屏幕图像和麦克风的声音合成视频。首先是使用ffmpeg获取屏幕图像,捕获屏幕一样使用libavdevice。在Windows系统使用libavdevice抓取屏幕数据有两种方法:gdigrab和d
2017-04-27 13:40:14 4539
原创 从零开始学习音视频编程技术(十九) 录屏软件开发之YUV AAC合成MP4
原文地址:http://blog.yundiantech.com/?log=blog&id=26我们已经获取到了屏幕的图像和麦克风的声音,现在就将它们合并一个普通的视频文件。所谓视频,其实就是一种容器,里面以某种固定的格式放置了视频和音频数据(比如我们前面生成的H264和AAC)。先来感受一下FLV的格式:
2017-04-27 09:43:03 1369
原创 从零开始学习音视频编程技术(十八) 录屏软件开发之编码AAC
原文地址:http://blog.yundiantech.com/?log=blog&id=24光阴似箭,日月如梭。 时间过的可真快。。。 一转眼 大半年就过去了,差点就忘记学习了。。学习贵在坚持和积累,然而就是很难做到坚持。。不知不觉已经半年没有更新了,对不住大家了,赶紧继续更新。。之前讲到了使用ffmpeg读取麦克风并保存成PCM文件。传送门
2017-04-25 20:20:58 1640 1
原创 从零开始学习音视频编程技术(十七) 录屏软件开发之音频采集
前面讲解了如何使用libavdevice采集摄像头图像同样 libavdevice 也可以采集麦克风的声音。下面就讲解麦克风声音的采集:采集声音和采集摄像头本质上没有多大的却别,基本上就是换个名字:首先还是一样注册libavdevice:1avdevice_register_all();
2016-11-29 09:43:11 1792
原创 从零开始学习音视频编程技术(十六) 采集屏幕编码H264
前面介绍了采集屏幕图像并转换成YUV420p。传送门YUV420p数据是原始的图像数据,100张1920x1080的图像 总大小就达到了300M。太可怕了! 可见,这样直接写入文件是行不通的。因此我们需要把它编码成h264之后在写入文件。至于什么是h264,前面有介绍,这里就不介绍了。废话不多说,直接进入正文吧。编码h264还是一样使用f
2016-10-15 17:07:29 2348
原创 从零开始学习音视频编程技术(十五) YUV420P转RGB32
原文地址:http://blog.yundiantech.com/?log=blog&id=19上一节讲解了YUV420P格式的内容。我说过,我们不是为了做研究。 平白无故讲了YUV420P的理论知识,要是不做点什么总说不过去吧。 那么,我们就练练刀,写个播放YUV420P的程序吧,将前面保存的YUV420P图像用自己写的播放器播放出来。这里我们还是一样使用
2016-09-30 10:20:09 7335 6
原创 从零开始学习音视频编程技术(十四) RGB/YUV格式详解
原文地址:http://blog.yundiantech.com/?log=blog&id=18上一节,我们采集了屏幕图像 并且转换成YUV420P写入了文件中。既然得到了yuv420p数据,那么接下来的操作就是编码了。在开始编码之前,我们先发点时间了解下YUV420P这种格式,当然,不了解这个对我们开发录屏软件是没有影响的。不过既然要做视频开发,不了解
2016-09-30 10:18:23 1948
原创 从零开始学习音视频编程技术(十三) 录屏软件开发之屏幕录像
原文地址:http://blog.yundiantech.com/?log=blog&id=17上一节 讲解了摄像头的采集,初步掌握了libavdevice的使用。现在接着使用libavdevice来采集屏幕的图像。在Windows系统使用libavdevice抓取屏幕数据有两种方法:gdigrab和dshow。1. gdigrabgdigrab是F
2016-09-28 20:09:53 4023
原创 从零开始学习音视频编程技术(十二) 录屏软件开发之视频采集
原文地址:http://blog.yundiantech.com/?log=blog&id=15前面讲解了视频播放器的开发,初步掌握了使用FFMPEG解码音视频。现在我们就接着讲解使用FFMPEG来编码音视频,主要是实现一个录屏软件的制作。一个录屏软件的流程基本就是:图像采集图像编码将解码好的图像封装成视频
2016-09-28 20:07:52 3288 2
原创 从零开始学习音视频编程技术(十一) FFMPEG Qt视频播放器之美化界面
原文地址:http://blog.yundiantech.com/?log=blog&id=14到这,播放器功能基本都已经实现了,现在就是把界面美化一下就好了:美化界面直接使用Qt的QSS来做,QSS语法和CSS非常相似,还是相当好用的。美化后的界面如下:由于做界面是一件相对技术含量比较低的工作,重点是真的是太繁琐了,因此
2016-09-23 10:19:28 2311 3
原创 从零开始学习音视频编程技术(十) FFMPEG Qt视频播放器之播放控制
原文地址:http://blog.yundiantech.com/?log=blog&id=13到这里,我们的视频播放器已经可以同步播放音视频了。现在 是时候给他加上一些控制的功能了。如播放、暂停、跳转等。一、暂停功能实现 我们是在一个单独的线程中循环读取视频,所以只需要在需要暂停的时候,让读取的操作等下来即可。做法如下:1.首先引入一
2016-09-23 10:11:38 2328
原创 从零开始学习音视频编程技术(九) FFMPEG Qt视频播放器之同步进阶篇
原文地址:http://blog.yundiantech.com/?log=blog&id=12前面我们已经为播放器加上了简单音视频同步功能。 播放mp4文件的时候似乎没啥问题,但是当播放rmvb文件的时候,问题就暴露出来了。 以电影天堂下载的电影文件为例:下载地址:CD1ftp://dygod2:
2016-09-22 10:19:56 2324
原创 从零开始学习音视频编程技术(八) FFMPEG Qt视频播放器之音视频同步
原文地址:http://blog.yundiantech.com/?log=blog&id=11前面分别讲解了:用FFMPEG和Qt解码视频并显示到界面上。用FFMPEG+SDL解码播放音频。现在我们就将视频和音频合并,并让声音和画面同步。加入音频的部分就不做讲解了,这里主要讲下声音和视频同步的步骤。
2016-09-22 10:17:14 3209
原创 从零开始学习音视频编程技术(七) FFMPEG Qt视频播放器之SDL的使用
原文地址:http://blog.yundiantech.com/?log=blog&id=10前面介绍了使用FFMPEG+Qt解码视频并显示。现在我们就着手给它加上声音播放。播放声音有很多种方式:以windows系统为例,可以使用如下方法播放音频:1.直接调用系统API的wavein、waveout等函数2.使用directsoun
2016-09-22 10:13:56 6319 7
原创 从零开始学习音视频编程技术(六) FFMPEG Qt视频播放器之显示图像
原文地址:http://blog.yundiantech.com/?log=blog&id=9前面讲解了如何用FFMPEG解码视频。现在,我们就着手用FFMPEG+Qt写一个视频播放器吧:由于现在我们需要显示图像了,因此现在开始需要使用Qt GUI工程了。创建工程的时候记得选择Qt GUI应用。引用FFMP
2016-09-22 10:01:27 10427 5
原创 从零开始学习音视频编程技术(五) 使用FFMPEG解码视频之保存成图片
原文地址:http://blog.yundiantech.com/?log=blog&id=8前面我们已经知道怎么使用FFMPEG了。现在,开始着手使用FFMPEG吧:首先来个简单的例子,使用FFMPEG打开视频文件,并解码保存成一张张的图片。具体的步骤如下所示:1.首先需要先初始化一下,使用如下函数:1
2016-09-22 09:51:55 4091 8
原创 从零开始学习音视频编程技术(四) FFMPEG的使用
=============2019-10-31更新:这篇文章使用的是ffmpeg2.5版本,现如今2.5已经过时了,就连官网也下载不到了。因此不推荐再使用2.5版本了,Qt5引用ffmpeg4.1版本的例子,请参考:http://blog.yundiantech.com/?log=blog&id=37=============音视频开发中最常做的就是编解码的操作了,...
2016-09-20 09:46:00 9259 6
原创 从零开始学习音视频编程技术(三) 开发环境搭建
=============2019-10-31更新:Qt4已经淘汰了,不建议使用了,推荐使用Qt开发。Qt5开发环境的搭建,请参考:http://blog.yundiantech.com/?log=blog&id=37============= 前面介绍了音频格式和视频格式,理论知识就不在多说了。 其他的理论上知识在以后用多少讲多少,毕竟我们不是...
2016-09-19 10:08:37 7692 2
原创 从零开始学习音视频编程技术(二) 音频格式讲解
原文地址:http://blog.yundiantech.com/?log=blog&id=51. 音频简介 前面我们说过视频有一个每秒钟采集多少张的概念,这就叫做视频的帧率。 和视频的帧率一样的道理,声音也有一个频率,叫做采样率。 人对频率的识别范围是 20HZ - 20000HZ, 如果每秒钟能对声音做 20000 个采样, 回放时就足
2016-09-18 09:16:56 2986
原创 从零开始学习音视频编程技术(一) 视频格式讲解
原文地址:http://blog.yundiantech.com/?log=blog&id=4 所谓视频,其实就是将一张一张的图片连续的放出来,就像放幻灯片一样,由于人眼的惰性,因此只要图片的数量足够多,就会觉得是连续的动作。 所以,只需要将一张一张的图片保存下来,这样就可以构成一个视频了。 但是,由于目前网络和存储空间的限制,直接存储图片显然不可行。举个例子:在视频聊天中
2016-09-16 09:33:56 12418
原创 YUV420图像裁剪
前面使用dshow获取到了屏幕的截图,并且转换成了yuv420格式。、现在需要能获取截图的部分区域。 本来打算在dshow获取截图的时候直接裁剪获得某个区域的rgb图像,但发现这样做,有时候成功不了。因此只能选择获取完整的屏幕截图,转换成yuv后再进行裁剪:YUV420裁剪代码如下:#include "yuvcut.h"#includeYuvCut::Y
2016-08-25 15:30:17 4634
原创 RGB24转yuv420 高效率 且颜色没有失真
前面使用dshow获取到的屏幕截图是一段rgb24的数据,需要将其转换成yuv420格式才能进行编码等操作。网上找了很多资料,发现能用的并不多,这里总结一下。1.雷大神写的 bmp转yuv:http://blog.csdn.net/leixiaohua1020/article/details/13506099这个是读取bmp文件然后转换成Yuv的,经过简单修改就可以将输入换
2016-08-25 14:48:18 8986 5
原创 使用dshow获取屏幕截图 不包含鼠标
正常录制屏幕可以使用ffmpeg直接获取屏幕图像:使用ffmpeg获取屏幕图像但是 现在有时希望获取的屏幕截图上不要有鼠标,研究了好久 发现ffmpeg似乎做不到。查了好久发现可以直接使用dshow来获取:代码如下:#ifndef GETSCREEN_H#define GETSCREEN_H#include #include #include #in
2016-08-25 14:12:00 1285
原创 使用手机控制电脑 实现音乐播放 电影播放控制 关机等操作
寒冷的冬天躲在被窝里用电脑看电影的时候,相信大家都希望不想起身操作电脑,这时候能有个遥控器可以直接控制电脑该多好。下面就像大家介绍一个用手机控制电脑的方法:一、软件下载首先需要下载一款软件叫“KK遥控” ,这是一款手机控制电脑的软件,需要在手机和电脑上都安装才能使用。软件下载地址:点击去下载软件界面如下:-电脑版:手机版:
2016-08-24 13:34:07 7162 1
原创 Qt写的一个截图软件
程序主界面:截图界面: 录屏生成gif:截图历史记录(支持将图片直接拖拽到文件系统):源代码:Qt写的截图软件 包含可执行程序和源代码
2013-04-10 09:17:03 2285 4
原创 Qt + SDL实现的实时录音并播放的程序,类似KTV唱歌
熟话说:没有什么比研究源代码本身更好的了。所以这里不啰说了,直接上代码了。Qt + SDL实现的KTV程序【说明】采集音频用的是QAudioInput播放音频用SDL,不用QAudioOutput是因为QAudioOutput播放声音必须是IO他需要先打开,然后才能播放,打开的过程需要时间,所以不流畅。【bug】播放的时候依然会有一些杂音,暂
2013-03-15 14:27:13 7635 8
原创 Makefile书写规则
Makefile 书写规则: 总目标:依赖1依赖2...目标1:依赖命令目标2:依赖命令 /* ######## makefile #######*/helloworld:hello.o main.o gcc -o helloworld hello.o main.ohello.o:hello.c gcc -c hello.c
2012-10-21 21:47:36 1252
从零开始学习音视频编程技术(十七) 录屏软件开发之音频采集
2016-11-28
从零开始学习音视频编程技术(十六) 采集屏幕编码H264
2016-10-14
Qt播放YUV420P文件
2016-09-28
从零开始学习音视频编程技术(十五) YUV420P转RGB32
2016-09-28
从零开始学习音视频编程技术(十三) 录屏软件开发之屏幕录像
2016-09-23
从零开始学习音视频编程技术(十二) 录屏软件开发之视频采集
2016-09-22
从零开始学习音视频编程技术(十一) FFMPEG Qt视频播放器之美化界面
2016-09-16
FFMPEG Qt视频播放器之播放控制
2016-09-15
从零开始学习音视频编程技术(九) FFMPEG Qt视频播放器之同步进阶篇
2016-09-14
Windows下FFMPEG解码AAC文件并使用SDL播放
2016-09-09
Windows下使用FFMPEG解码AAC文件并使用SDL播放的简单例子
2016-09-09
Qt+FFMPEG解码视频并显示
2016-09-07
Windows下使用FFMPEG解码视频并保存成图片文件的简单的例子
2016-09-06
Windows下Qt引用FFMPEG的例子
2016-09-05
rgb24转yuv420高效率 完整代码,C++实现
2016-08-25
将rgb24转换成yuv420的完整代码,C++实现。
2016-08-25
从零开始学习音视频编程技术(45)采集屏幕打包发送RTP
2020-05-27
从零开始学习音视频编程技术(43) AAC播放器.zip
2019-11-27
从零开始学习音视频编程技术(41) H.264播放器.zip
2019-11-27
从零开始学习音视频编程技术(二十二) FFMPEG Qt视频播放器之BUG修复(升级到ffmpeg4.1)
2019-03-24
从零开始学习音视频编程技术(二十二) FFMPEG Qt视频播放器之BUG修复最终完善版
2019-03-22
zip文件 从零开始学习音视频编程技术(41) H.264播放器-修复bug版
2019-01-17
从零开始学习音视频编程技术(41) H.264播放器
2018-05-18
从零开始学习音视频编程技术(十一) FFMPEG Qt视频播放器之BUG修复
2017-12-07
Qt+FFMPEG 实现简单的视频播放器
2017-11-28
从零开始学习音视频编程技术(二十一) 录屏软件开发之最终完善
2017-04-27
从零开始学习音视频编程技术(二十) 之录屏软件开发-录屏生成MP4
2017-04-27
从零开始学习音视频编程技术(二十) 录屏软件开发之录屏生成MP4
2017-04-26
从零开始学习音视频编程技术(十九) 录屏软件开发之YUV AAC合成MP4
2017-04-26
从零开始学习音视频编程技术(十八) 录屏软件开发之编码AAC
2017-04-24
音视频编程技术(十七) 录屏软件开发之音频采集篇
2016-11-28
音视频编程技术(十七) 录屏软件开发之音频采集
2016-11-28
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人