- 博客(965)
- 资源 (141)
- 收藏
- 关注

原创 视频编码器评测系统:VideoCodecRank
视频编码器领域一直有个比较复杂的问题:mpeg2、divx、xvid、mpeg4、vp8、vp9、x264、openh264、x265等等这一系列编码器到底哪个好?而对于同一种视频编码器,又包括了各种各样的参数配置,这些配置对视频编码器的影响又是怎样的?为了研究这个问题,我和师弟们在课余时间开发了一个软件系统,专门用于评价视频编码器的性能。
2015-07-04 13:49:16
64659
283

原创 我的开源视音频项目汇总
本文汇总一下自己视音频编解码学习方面的开源项目。这些开源项目大体上可以分成专业领域程序,FFmpeg示例程序,FFmpeg移植程序,多媒体项目示例程序,视音频编解码原理学习工程几个类别。
2015-01-13 01:17:34
155964
334

原创 开源实时视频码流分析软件:VideoEye
本文介绍一个自己做的码流分析软件:VideoEye。为什么要起这个名字呢?感觉这个软件的主要功能就是对“视频”进行“分析”。而分析是要用眼睛来看的,因此取了“视频”和“分析”这两个词的英文,名之曰:VideoEye。这个软件是在自己毕业设计软件的基础上改的。可以对本地文件或者互联网视频流进行实时的码流分析。由于这个软件是自己一边学习视音频技术一边制作的,所以涵盖了比较全面的功能。在编写这个软件的过程中,自己也学会了很多的视音频编解码方面的知识,以及MFC的知识。
2014-06-26 00:38:22
107903
143

原创 [总结]视音频编解码技术零基础学习方法
一直想把视音频编解码技术做一个简单的总结,可是苦于时间不充裕,一直没能完成。今天有着很大的空闲,终于可以总结一个有关视音频技术的入门教程,可以方便更多的人学习从零开始学习视音频技术。需要注意的是,本文所说的视音频技术,指的是理论层面的视音频技术,并不涉及到编程相关的东西。
2014-06-16 00:12:43
484938
652

原创 [总结]视频质量评价技术零基础学习方法
前段时间略忙,因此一直计划要总结的很多东西都没来得及写,这两天趁着空闲时间写上一篇。以后等时间充裕了再补充一些内容。本文总结一下学习视频质量评价技术的方法。视频质量评价是我研究生阶段主要的工作,包括发表的论文,毕业设计,进行的实验等等。在这一方面在国内做的研究并不是很多,因此我打算总结一下学习的经验,方便看过本文的人了解视频质量评价技术。
2014-04-21 00:26:25
54628
16

原创 [总结]RTMP流媒体技术零基础学习方法
本文主要总结一些我在学习RTMP流媒体技术过程中积累的经验。也为后来学习RTMP流媒体技术的人们一个参考。本文力图从简到难,循序渐进的介绍RTMP流媒体技术的方方面面,先从应用说起,逐步深化剖析相关工程的源代码。看完本文的话应该会对RTMP流媒体技术有比较完整的了解。0.背景知识本章主要介绍一下RTMP流媒体技术都用在了哪里(在这里仅列几个我所知的,其实远比这个多)。说白了就是为了
2013-11-18 00:10:34
149694
82

原创 [总结]FFMPEG视音频编解码零基础学习方法
在优快云上的这一段日子,接触到了很多同行业的人,尤其是使用FFMPEG进行视音频编解码的人,有的已经是有多年经验的“大神”,有的是刚开始学习的初学者。在和大家探讨的过程中,我忽然发现了一个问题:在“大神”和初学者之间好像有一个不可逾越的鸿沟。“大神”们水平高超,探讨着深奥的问题;而初学者们还停留在入门阶段。究竟是什么原因造成的这种“两极分化”呢?最后,我发现了问题的关键:FFMPEG难度比较大,却没有一个循序渐进,由简单到复杂的教程...
2013-11-16 00:04:05
1036259
922
转载 [投稿] Speex回声消除原理深度解析
本文是音频处理的朋友icoolmedia(QQ:314138065)的投稿。对音频处理有兴趣的朋友可以通过下面的方式与他交流:作者:icoolmedia QQ:314138065 音视频算法讨论QQ群:374737122
2016-04-19 09:44:13
92928
124
转载 [投稿]房间声学原理与Schroeder混响算法实现
本文是音频处理的朋友icoolmedia(QQ:314138065)的投稿。对音频处理有兴趣的朋友可以通过下面的方式与他交流:作者:icoolmedia QQ:314138065 音视频算法讨论QQ群:374737122 原文公式较多,因此直接贴上图片。
2016-03-03 16:38:06
60290
转载 [投稿]一个频域语音降噪算法实现及改进方法
本文是音频处理的朋友icoolmedia(QQ:314138065)的投稿。对音频处理有兴趣的朋友可以通过下面的方式与他交流:作者:icoolmedia QQ:314138065 音视频算法讨论QQ群:374737122 原文公式较多,因此直接贴上图片。
2016-03-03 16:34:29
66992
1
原创 最简单的基于FFmpeg的AVfilter的例子-纯净版
有关FFmpeg的avfilter已经写过一个水印叠加的例子《最简单的基于FFmpeg的AVfilter例子(水印叠加)》,本文作为补充再记录一个纯净版的avfilter的例子。此前libavfilter一直是结合着libavcodec等类库的接口函数使用的,因此我一直以为libavfilter库与libavcodec等类库是高度耦合的(也就是如果想使用libavfilter的视音频特效功能的话必
2016-02-01 13:55:04
117371
60
原创 视音频数据处理入门:UDP-RTP协议解析
本文介绍网络协议数据的处理程序。网络协议数据在视频播放器中的位置如下所示。本文中的程序是一个UDP/RTP协议流媒体数据解析器。该程序可以分析UDP协议中的RTP 包头中的内容,以及RTP负载中MPEG-TS封装格式的信息。通过修改该程序可以实现不同的UDP/RTP协议数据处理功能。原理MPEG-TS封装格式数据打包为RTP/UDP协议然后发送出去的流程如下图所示。图中首先每7个MPEG-TS P
2016-01-31 21:39:37
192835
45
原创 视音频数据处理入门:FLV封装格式解析
前两篇文章介绍了音频码流处理程序和视频码流处理程序,本文介绍将他们打包到一起后的数据——封装格式数据的处理程序。封装格式数据在视频播放器中的位置如下所示。本文中的程序是一个FLV封装格式解析程序。该程序可以从FLV中分析得到它的基本单元Tag,并且可以简单解析Tag首部的字段。通过修改该程序可以实现不同的FLV格式数据处理功能。原理FLV封装格式是由一个FLV Header文件头和一个一个的Tag
2016-01-31 18:57:10
131194
20
原创 视音频数据处理入门:AAC音频码流解析
本文继续上一篇文章的内容,介绍一个音频码流处理程序。音频码流在视频播放器中的位置如下所示。本文中的程序是一个AAC码流解析程序。该程序可以从AAC码流中分析得到它的基本单元ADTS frame,并且可以简单解析ADTS frame首部的字段。通过修改该程序可以实现不同的AAC码流处理功能。原理AAC原始码流(又称为“裸流”)是由一个一个的ADTS frame组成的。他们的结构如下图所示。其中每个A
2016-01-31 11:55:51
131633
62
原创 视音频数据处理入门:H.264视频码流解析
前两篇文章介绍的YUV/RGB处理程序以及PCM处理程序都属于视音频原始数据的处理程序。从本文开始介绍视音频码流的处理程序。本文介绍的程序是视频码流处理程序。视频码流在视频播放器中的位置如下所示。本文中的程序是一个H.264码流解析程序。该程序可以从H.264码流中分析得到它的基本单元NALU,并且可以简单解析NALU首部的字段。通过修改该程序可以实现不同的H.264码流处理功能。原理H.264原
2016-01-31 00:19:50
244821
99
原创 视音频数据处理入门:PCM音频采样数据处理
上一篇文章记录了RGB/YUV视频像素数据的处理方法,本文继续上一篇文章的内容,记录PCM音频采样数据的处理方法。音频采样数据在视频播放器的解码流程中的位置如下图所示。本文分别介绍如下几个PCM音频采样数据处理函数: 分离PCM16LE双声道音频采样数据的左声道和右声道 将PCM16LE双声道音频采样数据中左声道的音量降一半 将PCM16LE双声道音频采样数据的声音速度提高一倍 将PCM1
2016-01-29 23:32:13
182994
73
原创 视音频数据处理入门:RGB、YUV像素数据处理
有段时间没有写博客了,这两天写起博客来竟然感觉有些兴奋,仿佛找回了原来的感觉。前一阵子在梳理以前文章的时候,发现自己虽然总结了各种视音频应用程序,却还缺少一个适合无视音频背景人员学习的“最基础”的程序。因此抽时间将以前写过的代码整理成了一个小项目。
2016-01-29 17:01:12
276119
183
原创 修改了一个YUV/RGB播放器
最近在学习过程中查看YUV/RGB像素数据的时候,发现找不到一个合适的播放器。主流的YUV播放器大多只支持YUV格式播放,却不支持RGB格式数据播放。而我正好需要查看RGB像素数据。在Sourceforge上找到了一个比较好用的既支持YUV又支持RGB的播放器,但是发现有一些小毛病,于是把这个播放器源代码下载下来并且做了一些修改,感觉好用了很多。在这里写文章记录一下。 该播放器使用比较简单,可以通
2016-01-06 00:21:26
79966
28
转载 [投稿]Speex回声消除代码分析
本文是音频处理的朋友icoolmedia(QQ:314138065)的投稿。对音频处理有兴趣的朋友可以通过下面的方式与他交流:作者:icoolmedia QQ:314138065 音视频算法讨论QQ群:374737122 先说明下,这里的代码流程是修改过的Speex流程,但与Speex代码差异不大,应该不影响阅读。 (1)用RemoveDCoffset函数进行去直流 (2)远端信号预加重后放入x[
2015-12-03 18:47:20
55948
3
原创 优快云《老友记》简记
上周参加了优快云主办的SDCC 2015 (中国软件开发者大会) 中的《老友记》活动。《老友记》中云集了优快云员工、社区专家、合作伙伴等各种IT行业的朋友。这次活动是我从2013年开始在优快云写博客之后第一次参加线下活动,认识了很多未曾谋面的网络上的朋友,感觉很有纪念意义。昨天晚上在微信群里收到了大家的合照,写篇小短文记录一下。 《老友记》是上周四晚上在北京朗丽兹西山花园酒店举办的。这个地点
2015-11-28 15:47:05
58640
10
原创 HEVC官方软件HM源代码简单分析-编码器TAppEncoder
上一篇文章总结了HEVC官方参考软件HM中的视频解码器TAppDecoder的结构,本文继续分析HM中的视频编码器TAppEncoder。函数调用关系图HM中的HEVC视频编码器TAppEncoder的函数调用关系图如下所示。单击查看更清晰的大图下面解释一下图中关键标记的含义。函数背景色函数在图中以方框的形式表现出来。不同的背景色标志了该函数不同的作用:白色背景的函数:不加区分的普通内部函数。黄色
2015-11-23 22:46:49
70468
9
原创 HEVC官方软件HM源代码简单分析-解码器TAppDecoder
本文记录HEVC官方参考软件HM的源代码结构。HM相比于JM来说,采用了面向对象的编程方法,因而结构相对更加清晰。HM包含了视频解码器TAppDecoder和视频编码器TAppEncoder。本文记录视频解码器TAppDecoder的结构。函数调用关系图HM中的HEVC视频解码器TAppDecoder的函数调用关系图如下所示。单击查看更清晰的大图下面解释一下图中关键标记的含义。函数背景色函数在图中
2015-11-23 13:49:44
67266
2
原创 美国见闻(下)
前一篇文章记录了11月1-4号在美国开会的见闻,这一篇文章再记录一下5-8号在美国游览的见闻。11月5日 今天准备启程到西海岸的另一个城市——洛杉矶逛逛。从Sea-tac International Airport出发,经过3个小时左右的飞行,到达Los Angeles International Airport (LAX)。从LAX出来后乘坐FlyAway Bus前往位于Hollywood(好莱
2015-11-18 19:14:24
54838
11
原创 美国见闻(上)
前几天参加了微软在美国西雅图举办的2015年度MVP Global Summit(MVP全球峰会),并且顺道在美国游览了几天,在此记录一下自己的所见所闻。 今年4月份的时候获得了微软的MVP奖项。微软MVP获奖证书样子如下。 微软MVP这个奖项提供了一系列参加会议进行学习交流的机会,MVP峰会只是其中的一个活动。在这之前已经参加过Microsoft Windows 10发布会、2015年度Mic
2015-11-18 19:12:02
66187
36
原创 H.264官方软件JM源代码简单分析-编码器lencod
上一篇文章总结了H.264官方参考软件JM中的视频解码器ldecod的结构,本文继续分析JM中的视频编码器lencod。函数调用关系图JM中的H.264视频编码器lencod的函数调用关系图如下所示。
2015-11-18 14:56:04
65065
12
原创 H.264官方软件JM源代码简单分析-解码器ldecod
最近看了一下H.264官方参考软件JM的源代码,在这里总结一下它的结构。JM编解码H.264的速度相对于FFmpeg来说是非常慢的,但是它的代码写得清晰易懂,更适合做学术方面的研究。JM包含了视频解码器ldecod和视频编码器lencod。本文记录视频解码器ldecod的结构。函数调用关系图JM中的H.264视频解码器ldecod的函数调用关系图如下所示。 单击查看更清晰的大图下面解释一下图中关键
2015-11-17 20:07:41
67644
1
转载 [投稿]谱减法语音降噪原理
本文是音频处理的朋友icoolmedia(QQ:314138065)的投稿。各位做视音频技术朋友如果好的原创技术文章并希望通过我的博客分享给大家,也欢迎投稿到我的邮箱:leixiaohua1020@126.com,我会选择内容合适的文章注明作者及联系方式后进行发布。希望通过这种方式帮助大家结交更多的同道中人~谱减法语音降噪基本原理谱减算法为最早的语音降噪算法之一,它的提出,基于一个简单的原理
2015-08-04 14:57:22
89807
20
原创 最简单的基于FFmpeg的移动端例子:Windows Phone HelloWorld
本文记录Windows Phone平台下基于FFmpeg的HelloWorld程序。该示例C语言的源代码来自于《最简单的基于FFMPEG的Helloworld程序》。相关的概念就不再重复记录了。 由于在FFmpeg移动端开发方面只有Android和IOS的实战经验,所以我一开始的时候只做了Android和IOS的示例程序。前两天参加了微软在水立方的Windows 10发布会,会前浏览信息的时候发现
2015-08-01 22:25:48
23523
17
原创 最简单的基于FFmpeg的移动端例子附件:IOS自带播放器
前几篇文章记录的都是IOS下基于FFmpeg的多媒体程序。本文记录一个IOS下自带的视频播放器。相比于移植FFmpeg来说,IOS自带的多媒体框架播放视频要简单很多——只需要调用几个接口就可以了。源代码项目的源代码位于ViewController.m文件中,内容如下所示。
2015-08-01 17:03:47
23717
6
原创 最简单的基于FFmpeg的移动端例子:IOS 视频转码器
本文记录IOS平台下基于FFmpeg的视频转码器。该转码器实际上移植自ffmpeg工程中的ffmpeg.c源代码。有关ffmpeg.c的源代码可以参考文章《ffmpeg.c函数结构简单分析(画图)》,在这里就不重复记录了。源代码项目的目录结构如图所示。下列C语言文件拷贝自FFmpeg源代码:cmdutils.ccmdutils.hcmdutils_common_opts.hconfig.hffmp
2015-08-01 16:34:20
27475
4
原创 最简单的基于FFmpeg的移动端例子:IOS 推流器
本文记录IOS平台下基于FFmpeg的推流器。该示例C语言的源代码来自于《最简单的基于FFMPEG的推流器》。相关的概念就不再重复记录了。源代码项目的目录结构如图所示。C代码位于ViewController.m文件中,内容如下所示。
2015-07-29 12:57:35
38601
21
原创 最简单的基于FFmpeg的移动端例子:IOS 视频解码器
本文记录IOS平台下基于FFmpeg的视频解码器。该示例C语言的源代码来自于《最简单的基于FFMPEG+SDL的视频播放器》。相关的概念就不再重复记录了。源代码项目的目录结构如图所示。C代码位于ViewController.m文件中,内容如下所示。
2015-07-28 19:02:45
34963
6
原创 最简单的基于FFmpeg的移动端例子:IOS HelloWorld
本文记录IOS平台下基于FFmpeg的HelloWorld程序。该示例C语言的源代码来自于《最简单的基于FFMPEG的Helloworld程序》。相关的概念就不再重复记录了。IOS程序使用FFmpeg类库的说明IOS应用程序使用FFmpeg类库的流程如下所示。1. 编译FFmpeg类库编译IOS的FFmpeg类库需要支持5种架构:armv7、armv7s、arm64、i386、x86_64。其中前
2015-07-27 20:18:17
40053
22
原创 《基于 FFmpeg + SDL 的视频播放器的制作》课程的视频
这两天开始带广播电视工程大二的暑假小学期的课程设计了。本次小学期课程内容为《基于 FFmpeg + SDL 的视频播放器的制作》,其中主要讲述了视音频开发的入门知识。由于感觉本课程的内容不但适合本科生,而且也比较适合无视音频基础的开发者入门使用,所以在讲课的同时也录制了一部分内容并上传到了网上,方便新手学习FFmpeg的开发。
2015-07-26 15:00:56
101503
195
原创 最简单的基于FFmpeg的移动端例子附件:SDL Android HelloWorld
本文记录一个安卓平台下SDL的例子。该例子读取并显示了一张BMP图片,通过该例子可以了解SDL在安卓平台下的使用。本文中使用的SDL版本为2.0。Android程序SDL2类库使用说明简单记录一下Android程序使用SDL2类库的方法。这部分的信息可以参考SDL2源代码目录中的README-android.txt文件。SDL2使用的步骤可以分为以下步骤:(1)配置Android工程a) 新建工程
2015-07-25 23:02:55
24410
27
原创 最简单的基于FFmpeg的移动端例子附件:Android 自带播放器
前几篇文章记录的都是安卓平台下基于FFmpeg的多媒体程序。作为对比,本文记录一个基于安卓自带多媒体框架OpenCore的视频播放器。安卓自带的多媒体框架的使用方法相对移植FFmpeg来说简单太多了,只需要调用几个接口函数就能控制视频的播放。不再过多记录它的使用方法。源代码项目的目录结构如图所示。Java源代码位于src目录。Android程序Java端代码位于src\com\leixiaohua
2015-07-25 20:00:30
31518
8
原创 最简单的基于FFmpeg的移动端例子:Android 视频转码器
本文记录一个安卓平台下基于FFmpeg的视频转码器。该转码器实际上移植自ffmpeg工程中的ffmpeg.c源代码。有关ffmpeg.c的源代码可以参考文章《ffmpeg.c函数结构简单分析(画图)》,在这里就不重复记录了。源代码项目的目录结构如图所示。Java源代码位于src目录,而C代码位于jni目录。Android程序Java端代码位于src\com\leixiaohua1020\sffmp
2015-07-25 17:10:54
79625
75
原创 最简单的基于FFmpeg的移动端例子:Android 推流器
本文记录一个安卓平台下基于FFmpeg的视频推流器。该推流器C语言的源代码来自于《最简单的基于FFMPEG的推流器》。相关的概念就不再重复记录了。源代码项目的目录结构如图所示。Java源代码位于src目录,而C代码位于jni目录。 Android程序Java端代码位于src\com\leixiaohua1020\sffmpegandroidstreamer\MainActivity.java,如下
2015-07-25 14:10:50
55207
74
原创 最简单的基于FFmpeg的移动端例子:Android 视频解码器-单个库版
本文记录另一个安卓平台下基于FFmpeg的视频解码器。与前一篇文章记录的解码器不同,本文记录的解码器不再使用libavcodec.so、libavformat.so等类库,而只使用了一个类库——libffmpeg.so。该视频解码器C语言的源代码来自于《最简单的基于FFMPEG+SDL的视频播放器》。相关的概念就不再重复记录了。FFmpeg类库的打包记录一下FFmpeg类库打包的方
2015-07-25 11:42:31
27812
8
原创 最简单的基于FFmpeg的移动端例子:Android 视频解码器
本文记录一个安卓平台下基于FFmpeg的视频解码器。该视频解码器C语言的源代码来自于《100行代码实现最简单的基于FFMPEG+SDL的视频播放器》。相关的概念就不再重复记录了。源代码项目的目录结构如图所示。Java源代码位于src目录,而C代码位于jni目录。Android程序Java端代码位于src\com\leixiaohua1020\sffmpegandroiddecoder\MainAc
2015-07-24 19:02:29
55120
42
最简单的基于FFmpeg的内存读写的例子 1.1
2015-02-13
最简单的基于FFMPEG的AVDevice的例子 1.2
2015-02-13
最简单的基于FFmpeg的libswscale的教程 1.1
2015-02-13
最简单的基于FFmpeg的AVFilter例子(叠加水印) 1.1
2015-02-13
最简单的基于FFmpeg的推流器(以推送RTMP为例) 1.1
2015-02-13
最简单的基于FFmpeg的封装格式处理 1.2
2015-02-13
最简单的基于FFMPEG的音频编码器 1.1
2015-02-13
最简单的基于FFmpeg的编码器 1.2
2015-02-13
最简单的基于FFmpeg的图像编码器 1.1
2015-02-13
最简单的基于FFMPEG+SDL的音频播放器 2.1
2015-02-13
最简单的基于DirectShow的示例
2015-01-10
最简单的基于FFMPEG的AVDevice的例子 1.1
2015-01-09
最简单的基于libVLC的例子
2015-01-08
最简单的基于FFMPEG+SDL的视频播放器 2.3
2015-01-03
最简单的基于FFmpeg的编码器 1.1
2015-01-03
最简单的基于FFmpeg的libswscale的教程
2014-12-23
最简单的基于libRTMP的示例
2014-12-23
最简单的基于FFmpeg的封装格式处理的例子 1.1
2014-12-21
最简单的视音频播放示例 1.1
2014-12-21
最简单的视频编码器示例
2014-12-21
最简单的视音频播放示例
2014-10-18
最简单的基于FFmpeg的封装格式处理的例子
2014-10-06
最简单的基于FFmpeg的内存读写的例子
2014-10-05
最简单的基于FFMPEG+SDL的视频播放器 2.2
2014-10-04
最简单的基于FFmpeg的AVFilter例子 1.2
2016-02-01
视音频数据处理入门
2016-01-29
传媒大学广播电视工程系小学期课程 - 基于FFmpeg+SDL的视频播放器的制作
2015-07-26
最简单的基于FFmpeg的移动端例子
2015-07-22
最简单的基于FFmpeg的推流器 1.2
2015-07-22
最简单的基于FFMPEG+SDL的音频播放器 2.2
2015-07-22
最简单的基于FFMPEG+SDL的视频播放器 2.5
2015-07-22
最简单的基于FFmpeg的AVUtil例子 (AVLog, AVOption等)
2015-07-22
TIandSI 3.0 windows
2015-05-30
TIandSI 3.0
2015-05-30
最简单的Flash流媒体例子
2015-02-25
QAM调制与解调仿真程序
2015-02-21
最简单的基于FFMPEG+SDL的视频播放器 2.4
2015-02-13
最简单的基于FFMPEG+SDL的视频播放器-最终版
2015-02-12
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人