自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

雷霄骅(leixiaohua1020)的专栏

一个广院工科生的视音频技术笔记

  • 博客(965)
  • 资源 (140)
  • 收藏
  • 关注

原创 视频编码器评测系统:VideoCodecRank

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

2015-07-04 13:49:16 62983 279

原创 我的开源视音频项目汇总

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

2015-01-13 01:17:34 151428 327

原创 开源实时视频码流分析软件:VideoEye

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

2014-06-26 00:38:22 103381 142

原创 [总结]视音频编解码技术零基础学习方法

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

2014-06-16 00:12:43 467294 641

原创 [总结]视频质量评价技术零基础学习方法

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

2014-04-21 00:26:25 53828 27

原创 [总结]RTMP流媒体技术零基础学习方法

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

2013-11-18 00:10:34 147874 82

原创 [总结]FFMPEG视音频编解码零基础学习方法

在CSDN上的这一段日子,接触到了很多同行业的人,尤其是使用FFMPEG进行视音频编解码的人,有的已经是有多年经验的“大神”,有的是刚开始学习的初学者。在和大家探讨的过程中,我忽然发现了一个问题:在“大神”和初学者之间好像有一个不可逾越的鸿沟。“大神”们水平高超,探讨着深奥的问题;而初学者们还停留在入门阶段。究竟是什么原因造成的这种“两极分化”呢?最后,我发现了问题的关键:FFMPEG难度比较大,却没有一个循序渐进,由简单到复杂的教程...

2013-11-16 00:04:05 1010996 917

转载 [投稿] Speex回声消除原理深度解析

本文是音频处理的朋友icoolmedia(QQ:314138065)的投稿。对音频处理有兴趣的朋友可以通过下面的方式与他交流:作者:icoolmedia QQ:314138065 音视频算法讨论QQ群:374737122

2016-04-19 09:44:13 78881 120

转载 [投稿]房间声学原理与Schroeder混响算法实现

本文是音频处理的朋友icoolmedia(QQ:314138065)的投稿。对音频处理有兴趣的朋友可以通过下面的方式与他交流:作者:icoolmedia QQ:314138065 音视频算法讨论QQ群:374737122 原文公式较多,因此直接贴上图片。

2016-03-03 16:38:06 47417

转载 [投稿]一个频域语音降噪算法实现及改进方法

本文是音频处理的朋友icoolmedia(QQ:314138065)的投稿。对音频处理有兴趣的朋友可以通过下面的方式与他交流:作者:icoolmedia QQ:314138065 音视频算法讨论QQ群:374737122 原文公式较多,因此直接贴上图片。

2016-03-03 16:34:29 54197 3

原创 最简单的基于FFmpeg的AVfilter的例子-纯净版

有关FFmpeg的avfilter已经写过一个水印叠加的例子《最简单的基于FFmpeg的AVfilter例子(水印叠加)》,本文作为补充再记录一个纯净版的avfilter的例子。此前libavfilter一直是结合着libavcodec等类库的接口函数使用的,因此我一直以为libavfilter库与libavcodec等类库是高度耦合的(也就是如果想使用libavfilter的视音频特效功能的话必

2016-02-01 13:55:04 103331 59

原创 视音频数据处理入门: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 177214 44

原创 视音频数据处理入门:FLV封装格式解析

前两篇文章介绍了音频码流处理程序和视频码流处理程序,本文介绍将他们打包到一起后的数据——封装格式数据的处理程序。封装格式数据在视频播放器中的位置如下所示。本文中的程序是一个FLV封装格式解析程序。该程序可以从FLV中分析得到它的基本单元Tag,并且可以简单解析Tag首部的字段。通过修改该程序可以实现不同的FLV格式数据处理功能。原理FLV封装格式是由一个FLV Header文件头和一个一个的Tag

2016-01-31 18:57:10 116859 20

原创 视音频数据处理入门:AAC音频码流解析

本文继续上一篇文章的内容,介绍一个音频码流处理程序。音频码流在视频播放器中的位置如下所示。本文中的程序是一个AAC码流解析程序。该程序可以从AAC码流中分析得到它的基本单元ADTS frame,并且可以简单解析ADTS frame首部的字段。通过修改该程序可以实现不同的AAC码流处理功能。原理AAC原始码流(又称为“裸流”)是由一个一个的ADTS frame组成的。他们的结构如下图所示。其中每个A

2016-01-31 11:55:51 116934 61

原创 视音频数据处理入门:H.264视频码流解析

前两篇文章介绍的YUV/RGB处理程序以及PCM处理程序都属于视音频原始数据的处理程序。从本文开始介绍视音频码流的处理程序。本文介绍的程序是视频码流处理程序。视频码流在视频播放器中的位置如下所示。本文中的程序是一个H.264码流解析程序。该程序可以从H.264码流中分析得到它的基本单元NALU,并且可以简单解析NALU首部的字段。通过修改该程序可以实现不同的H.264码流处理功能。原理H.264原

2016-01-31 00:19:50 226479 98

原创 视音频数据处理入门:PCM音频采样数据处理

上一篇文章记录了RGB/YUV视频像素数据的处理方法,本文继续上一篇文章的内容,记录PCM音频采样数据的处理方法。音频采样数据在视频播放器的解码流程中的位置如下图所示。本文分别介绍如下几个PCM音频采样数据处理函数:  分离PCM16LE双声道音频采样数据的左声道和右声道  将PCM16LE双声道音频采样数据中左声道的音量降一半  将PCM16LE双声道音频采样数据的声音速度提高一倍  将PCM1

2016-01-29 23:32:13 166351 71

原创 视音频数据处理入门:RGB、YUV像素数据处理

有段时间没有写博客了,这两天写起博客来竟然感觉有些兴奋,仿佛找回了原来的感觉。前一阵子在梳理以前文章的时候,发现自己虽然总结了各种视音频应用程序,却还缺少一个适合无视音频背景人员学习的“最基础”的程序。因此抽时间将以前写过的代码整理成了一个小项目。

2016-01-29 17:01:12 256400 180

原创 修改了一个YUV/RGB播放器

最近在学习过程中查看YUV/RGB像素数据的时候,发现找不到一个合适的播放器。主流的YUV播放器大多只支持YUV格式播放,却不支持RGB格式数据播放。而我正好需要查看RGB像素数据。在Sourceforge上找到了一个比较好用的既支持YUV又支持RGB的播放器,但是发现有一些小毛病,于是把这个播放器源代码下载下来并且做了一些修改,感觉好用了很多。在这里写文章记录一下。 该播放器使用比较简单,可以通

2016-01-06 00:21:26 66548 25

转载 [投稿]Speex回声消除代码分析

本文是音频处理的朋友icoolmedia(QQ:314138065)的投稿。对音频处理有兴趣的朋友可以通过下面的方式与他交流:作者:icoolmedia QQ:314138065 音视频算法讨论QQ群:374737122 先说明下,这里的代码流程是修改过的Speex流程,但与Speex代码差异不大,应该不影响阅读。 (1)用RemoveDCoffset函数进行去直流 (2)远端信号预加重后放入x[

2015-12-03 18:47:20 43465 3

原创 CSDN《老友记》简记

上周参加了CSDN主办的SDCC 2015 (中国软件开发者大会) 中的《老友记》活动。《老友记》中云集了CSDN员工、社区专家、合作伙伴等各种IT行业的朋友。这次活动是我从2013年开始在CSDN写博客之后第一次参加线下活动,认识了很多未曾谋面的网络上的朋友,感觉很有纪念意义。昨天晚上在微信群里收到了大家的合照,写篇小短文记录一下。 《老友记》是上周四晚上在北京朗丽兹西山花园酒店举办的。这个地点

2015-11-28 15:47:05 46205 25

原创 HEVC官方软件HM源代码简单分析-编码器TAppEncoder

上一篇文章总结了HEVC官方参考软件HM中的视频解码器TAppDecoder的结构,本文继续分析HM中的视频编码器TAppEncoder。函数调用关系图HM中的HEVC视频编码器TAppEncoder的函数调用关系图如下所示。单击查看更清晰的大图下面解释一下图中关键标记的含义。函数背景色函数在图中以方框的形式表现出来。不同的背景色标志了该函数不同的作用:白色背景的函数:不加区分的普通内部函数。黄色

2015-11-23 22:46:49 57686 16

原创 HEVC官方软件HM源代码简单分析-解码器TAppDecoder

本文记录HEVC官方参考软件HM的源代码结构。HM相比于JM来说,采用了面向对象的编程方法,因而结构相对更加清晰。HM包含了视频解码器TAppDecoder和视频编码器TAppEncoder。本文记录视频解码器TAppDecoder的结构。函数调用关系图HM中的HEVC视频解码器TAppDecoder的函数调用关系图如下所示。单击查看更清晰的大图下面解释一下图中关键标记的含义。函数背景色函数在图中

2015-11-23 13:49:44 54361 5

原创 美国见闻(下)

前一篇文章记录了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 42309 10

原创 美国见闻(上)

前几天参加了微软在美国西雅图举办的2015年度MVP Global Summit(MVP全球峰会),并且顺道在美国游览了几天,在此记录一下自己的所见所闻。 今年4月份的时候获得了微软的MVP奖项。微软MVP获奖证书样子如下。  微软MVP这个奖项提供了一系列参加会议进行学习交流的机会,MVP峰会只是其中的一个活动。在这之前已经参加过Microsoft Windows 10发布会、2015年度Mic

2015-11-18 19:12:02 53312 36

原创 H.264官方软件JM源代码简单分析-编码器lencod

上一篇文章总结了H.264官方参考软件JM中的视频解码器ldecod的结构,本文继续分析JM中的视频编码器lencod。函数调用关系图JM中的H.264视频编码器lencod的函数调用关系图如下所示。

2015-11-18 14:56:04 51604 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 54007 1

转载 [投稿]谱减法语音降噪原理

本文是音频处理的朋友icoolmedia(QQ:314138065)的投稿。各位做视音频技术朋友如果好的原创技术文章并希望通过我的博客分享给大家,也欢迎投稿到我的邮箱:[email protected],我会选择内容合适的文章注明作者及联系方式后进行发布。希望通过这种方式帮助大家结交更多的同道中人~谱减法语音降噪基本原理谱减算法为最早的语音降噪算法之一,它的提出,基于一个简单的原理

2015-08-04 14:57:22 76217 19

原创 最简单的基于FFmpeg的移动端例子:Windows Phone HelloWorld

本文记录Windows Phone平台下基于FFmpeg的HelloWorld程序。该示例C语言的源代码来自于《最简单的基于FFMPEG的Helloworld程序》。相关的概念就不再重复记录了。 由于在FFmpeg移动端开发方面只有Android和IOS的实战经验,所以我一开始的时候只做了Android和IOS的示例程序。前两天参加了微软在水立方的Windows 10发布会,会前浏览信息的时候发现

2015-08-01 22:25:48 22856 16

原创 最简单的基于FFmpeg的移动端例子附件:IOS自带播放器

前几篇文章记录的都是IOS下基于FFmpeg的多媒体程序。本文记录一个IOS下自带的视频播放器。相比于移植FFmpeg来说,IOS自带的多媒体框架播放视频要简单很多——只需要调用几个接口就可以了。源代码项目的源代码位于ViewController.m文件中,内容如下所示。

2015-08-01 17:03:47 23340 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 27167 16

原创 最简单的基于FFmpeg的移动端例子:IOS 推流器

本文记录IOS平台下基于FFmpeg的推流器。该示例C语言的源代码来自于《最简单的基于FFMPEG的推流器》。相关的概念就不再重复记录了。源代码项目的目录结构如图所示。C代码位于ViewController.m文件中,内容如下所示。

2015-07-29 12:57:35 38138 21

原创 最简单的基于FFmpeg的移动端例子:IOS 视频解码器

本文记录IOS平台下基于FFmpeg的视频解码器。该示例C语言的源代码来自于《最简单的基于FFMPEG+SDL的视频播放器》。相关的概念就不再重复记录了。源代码项目的目录结构如图所示。C代码位于ViewController.m文件中,内容如下所示。

2015-07-28 19:02:45 34646 25

原创 最简单的基于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 39688 22

原创 《基于 FFmpeg + SDL 的视频播放器的制作》课程的视频

这两天开始带广播电视工程大二的暑假小学期的课程设计了。本次小学期课程内容为《基于 FFmpeg + SDL 的视频播放器的制作》,其中主要讲述了视音频开发的入门知识。由于感觉本课程的内容不但适合本科生,而且也比较适合无视音频基础的开发者入门使用,所以在讲课的同时也录制了一部分内容并上传到了网上,方便新手学习FFmpeg的开发。

2015-07-26 15:00:56 99041 192

原创 最简单的基于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 24103 27

原创 最简单的基于FFmpeg的移动端例子附件:Android 自带播放器

前几篇文章记录的都是安卓平台下基于FFmpeg的多媒体程序。作为对比,本文记录一个基于安卓自带多媒体框架OpenCore的视频播放器。安卓自带的多媒体框架的使用方法相对移植FFmpeg来说简单太多了,只需要调用几个接口函数就能控制视频的播放。不再过多记录它的使用方法。源代码项目的目录结构如图所示。Java源代码位于src目录。Android程序Java端代码位于src\com\leixiaohua

2015-07-25 20:00:30 31109 18

原创 最简单的基于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 79150 75

原创 最简单的基于FFmpeg的移动端例子:Android 推流器

本文记录一个安卓平台下基于FFmpeg的视频推流器。该推流器C语言的源代码来自于《最简单的基于FFMPEG的推流器》。相关的概念就不再重复记录了。源代码项目的目录结构如图所示。Java源代码位于src目录,而C代码位于jni目录。 Android程序Java端代码位于src\com\leixiaohua1020\sffmpegandroidstreamer\MainActivity.java,如下

2015-07-25 14:10:50 54575 74

原创 最简单的基于FFmpeg的移动端例子:Android 视频解码器-单个库版

本文记录另一个安卓平台下基于FFmpeg的视频解码器。与前一篇文章记录的解码器不同,本文记录的解码器不再使用libavcodec.so、libavformat.so等类库,而只使用了一个类库——libffmpeg.so。该视频解码器C语言的源代码来自于《最简单的基于FFMPEG+SDL的视频播放器》。相关的概念就不再重复记录了。FFmpeg类库的打包记录一下FFmpeg类库打包的方

2015-07-25 11:42:31 27347 26

原创 最简单的基于FFmpeg的移动端例子:Android 视频解码器

本文记录一个安卓平台下基于FFmpeg的视频解码器。该视频解码器C语言的源代码来自于《100行代码实现最简单的基于FFMPEG+SDL的视频播放器》。相关的概念就不再重复记录了。源代码项目的目录结构如图所示。Java源代码位于src目录,而C代码位于jni目录。Android程序Java端代码位于src\com\leixiaohua1020\sffmpegandroiddecoder\MainAc

2015-07-24 19:02:29 54447 42

最简单的基于FFmpeg的内存读写的例子 1.1

本程序实现了FFmpeg对内存中的视频数据的读写。包含两个工程: simplest_ffmpeg_mem_player:播放内存中视频数据的播放器。 simplest_ffmpeg_mem_transcoder:转码内存中数据的转码器。 1.1版本增加了多平台下编译的支持:Windows,MacOS,以及Linux。

2015-02-13

最简单的基于FFMPEG的AVDevice的例子 1.2

FFMPEG工程浩大,可以参考的书籍又不是很多,因此很多刚学习FFMPEG的人常常感觉到无从下手。因此做了一个FFmpeg中的libavdevice类库的使用例子。 本工程包含两个基于FFmpeg的libavdevice的例子: simplest_ffmpeg_grabdesktop:屏幕录制。 simplest_ffmpeg_readcamera:读取摄像头。 1.2版本增加了多平台下编译的支持:Windows,MacOS,以及Linux。

2015-02-13

最简单的基于FFmpeg的libswscale的教程 1.1

本教程是最简单的基于FFmpeg的libswscale进行像素处理的教程。它包含了两个工程: simplest_ffmpeg_swscale: 最简单的libswscale的教程(YUV420P转RGB24)。 simplest_pic_gen: 生成各种测试图片的工具。 1.1版本增加了多平台下编译的支持:Windows,MacOS,以及Linux。

2015-02-13

最简单的基于FFmpeg的AVFilter例子(叠加水印) 1.1

本程序使用FFmpeg的AVfilter实现了视频的水印叠加功能。可以将一张PNG图片作为水印叠加到视频上。 是最简单的FFmpeg的AVFilter方面的教程。适合FFmpeg的初学者。 1.1版本增加了多平台下编译的支持:Windows,MacOS,以及Linux。

2015-02-13

最简单的基于FFmpeg的推流器(以推送RTMP为例) 1.1

本例子实现了推送本地视频至流媒体服务器(以RTMP为例)。是使用FFmpeg进行流媒体推送最简单的教程。 1.1版本增加了多平台下编译的支持:Windows,MacOS,以及Linux。

2015-02-13

最简单的基于FFmpeg的封装格式处理 1.2

该解决方案包含了使用FFmpeg进行封装格式处理的各种例子: simplest ffmpeg demuxer:视音频分离器 simplest ffmpeg demuxer simple:视音频分离器(简化版) simplest ffmpeg muxer:视音频复用器 simplest ffmpeg remuxer:封装格式转换器 1.2版本增加了多平台下编译的支持:Windows,MacOS,以及Linux。

2015-02-13

最简单的基于FFMPEG的音频编码器 1.1

该音频编码器实现了音频PCM采样数据编码为AAC码流。 尽管该音频编码器的代码十分简单,但是几乎包含了使用FFMPEG编码一个音频所有必备的API。十分适合FFmpeg的初学者。 1.1版本增加了多平台下编译的支持:Windows,MacOS,以及Linux。

2015-02-13

最简单的基于FFmpeg的编码器 1.2

本程序实现了YUV像素数据编码为视频码流(H.265,H264,MPEG2,VP8等等)。是最简单的FFmpeg视频编码方面的教程。它包含以下两个子项目: simplest_ffmpeg_video_encoder:最简单的基于FFmpeg的视频编码器。使用libavcodec和libavformat编码并且封装视频。 simplest_ffmpeg_video_encoder_pure:最简单的基于FFmpeg的视频编码器-纯净版。仅使用libavcodec编码视频,不使用libavformat。 1.2版本增加了多平台下编译的支持:Windows,MacOS,以及Linux。

2015-02-13

最简单的基于FFmpeg的图像编码器 1.1

该图像编码器实现了YUV420P的数据编码为JPEG图片。尽管该图像编码器的代码十分简单,但是几乎包含了使用FFMPEG编码一个图像所有必备的API。十分适合FFmpeg的初学者。 1.1版本增加了多平台下编译的支持:Windows,MacOS,以及Linux。

2015-02-13

最简单的基于FFMPEG+SDL的音频播放器 2.1

本程序实现了音频的解码和播放。是最简单的FFmpeg音频解码方面的教程。通过学习本例子可以了解FFmpeg的解码流程。该版本使用SDL 2.0替换了第一个版本中的SDL 1.0。 2.1版本增加了多平台下编译的支持:Windows,MacOS,以及Linux。

2015-02-13

最简单的基于DirectShow的示例

本程序包含了DirectShow开发的示例程序。适合DirectShow初学者进行学习。 它包含了以下几个子程序: simplest_directshow_player: 最简单的基于DirectShow的视频播放器。 simplest_directshow_player_custom: 最简单的基于DirectShow的视频播放器(Custom)。 playerGUI: 最简单的基于DirectShow的播放器-图形界面版。 simplest_directshow_info: 最简单的Directshow信息显示例子。 simplest_directshow_filter: 目前还未完成。

2015-01-10

最简单的基于FFMPEG的AVDevice的例子 1.1

本工程包含两个基于FFmpeg的libavdevice的例子: simplest_ffmpeg_grabdesktop:屏幕录制。 simplest_ffmpeg_readcamera:读取摄像头。 工程基于VC2010,配置都已经做好,可以直接运行查看结果。 1.1版更新: 弹出的窗口可以移动了。

2015-01-09

最简单的基于libVLC的例子

本工程是包含了一些基于libVLC的示例程序。一共包含了如下几个子程序。 playerGUI: 最简单的基于libVLC的播放器-图形界面版。 simplest_libvlc_example: 最简单的基于libVLC的播放器。 simplest_libvlc_streamer: 最简单的基于libVLC的推流器。

2015-01-08

最简单的基于FFMPEG+SDL的视频播放器 2.3

本程序实现了视频文件的解码和显示(支持HEVC,H.264,MPEG2等)。 是最简单的FFmpeg视频解码方面的教程。 通过学习本例子可以了解FFmpeg的解码流程。 项目包含3个工程: simplest_ffmpeg_player:标准版,FFmpeg学习的开始。 simplest_ffmpeg_player_su:SU(SDL Update)版,加入了简单的SDL的Event。 simplest_ffmpeg_decoder_pure:一个纯净的解码器。 2.3版加入simplest_ffmpeg_decoder_pure工程。

2015-01-03

最简单的基于FFmpeg的编码器 1.1

本程序实现了YUV像素数据编码为视频码流(H.265,H264,MPEG2,VP8等等)。 是最简单的FFmpeg视频编码方面的教程。 它包含以下两个子项目: simplest_ffmpeg_video_encoder:最简单的基于FFmpeg的视频编码器。使用libavcodec和libavformat编码并且封装视频。 simplest_ffmpeg_video_encoder_pure:最简单的基于FFmpeg的视频编码器-纯净版。仅使用libavcodec编码视频,不使用libavformat。

2015-01-03

最简单的基于FFmpeg的libswscale的教程

本教程是最简单的基于FFmpeg的libswscale进行像素处理的教程。它包含了两个工程: simplest_ffmpeg_swscale: 最简单的libswscale的教程。 simplest_pic_gen: 生成各种测试图片的工具。

2014-12-23

最简单的基于libRTMP的示例

本工程包含了LibRTMP的使用示例,包含如下子工程: simplest_librtmp_receive: 接收RTMP流媒体并在本地保存成FLV格式的文件。 simplest_librtmp_send_flv: 将FLV格式的视音频文件使用RTMP推送至RTMP流媒体服务器。 simplest_librtmp_send264: 将内存中的H.264数据推送至RTMP流媒体服务器。

2014-12-23

最简单的基于FFmpeg的封装格式处理的例子 1.1

该解决方案包含了使用FFmpeg进行封装格式处理的各种例子: simplest ffmpeg demuxer:视音频分离器 simplest ffmpeg demuxer simple:视音频分离器(简化版) simplest ffmpeg muxer:视音频复用器 simplest ffmpeg remuxer:封装格式转换器 1 1版修复了以下问题: 1 Release版本下的运行问题 2 simplest ffmpeg muxer分装H 264裸流的时候丢失声音的错误">该解决方案包含了使用FFmpeg进行封装格式处理的各种例子: simplest ffmpeg demuxer:视音频分离器 simplest ffmpeg demuxer simple:视音频分离器(简化版) simplest ffmpeg muxer:视音频复用器 simplest ffmpeg remuxer:封装格式转换器 1 1 [更多]

2014-12-21

最简单的视音频播放示例 1.1

本工程包含了使用各种API(Direct3D,OpenGL,GDI,DirectSound,SDL2)播放多媒体例子。 其中音频输入为PCM采样数据。输出至系统的声卡播放出来。 视频输入为YUV/RGB像素数据。输出至显示器上的一个窗口播放出来。 通过本工程的代码初学者可以快速学习使用这几个API播放视频和音频的技术。 一共包括了如下几个子工程: simplest_audio_play_directsound: 使用DirectSound播放PCM音频采样数据。 simplest_audio_play_sdl2: 使用SDL2播放PCM音频采样数据。 simplest_video_play_direct3d: 使用Direct3D的Surface播放RGB/YUV视频像素数据。 simplest_video_play_direct3d_texture:使用Direct3D的Texture播放RGB视频像素数据。 simplest_video_play_gdi: 使用GDI播放RGB/YUV视频像素数据。 simplest_video_play_opengl: 使用OpenGL播放RGB/YUV视频像素数据。 simplest_video_play_opengl_texture: 使用OpenGL的Texture播放YUV视频像素数据。 simplest_video_play_sdl2: 使用SDL2播放RGB/YUV视频像素数据。 1.1版修复了一些问题

2014-12-21

最简单的视频编码器示例

该解决方案包含了几个常见的编码器的使用示例: simplest_vpx_encoder:最简单的基于libvpx的视频编码器 simplest_x264_encoder:最简单的基于libx264的视频编码器 simplest_x265_encoder:最简单的基于libx265的视频编码器

2014-12-21

最简单的视音频播放示例

本工程包含了使用各种API(Direct3D,OpenGL,GDI,DirectSound,SDL2)播放多媒体例子。 其中音频输入为PCM采样数据。输出至系统的声卡播放出来。 视频输入为YUV/RGB像素数据。输出至显示器上的一个窗口播放出来。 通过本工程的代码初学者可以快速学习使用这几个API播放视频和音频的技术。 一共包括了如下几个子工程: simplest_audio_play_directsound: 使用DirectSound播放PCM音频采样数据。 simplest_audio_play_sdl2: 使用SDL2播放PCM音频采样数据。 simplest_video_play_direct3d: 使用Direct3D的Surface播放RGB/YUV视频像素数据。 simplest_video_play_direct3d_texture:使用Direct3D的Texture播放RGB视频像素数据。 simplest_video_play_gdi: 使用GDI播放RGB/YUV视频像素数据。 simplest_video_play_opengl: 使用OpenGL播放RGB/YUV视频像素数据。 simplest_video_play_opengl_texture: 使用OpenGL的Texture播放YUV视频像素数据。 simplest_video_play_sdl2: 使用SDL2播放RGB/YUV视频像素数据。

2014-10-18

最简单的基于FFmpeg的封装格式处理的例子

该解决方案包含了使用FFmpeg进行封装格式处理的各种例子: simplest_ffmpeg_demuxer:视音频分离器。 simplest_ffmpeg_demuxer_simple:视音频分离器(简化版)。 simplest_ffmpeg_muxer:视音频复用器。 simplest_ffmpeg_remuxer:封装格式转换器。

2014-10-06

最简单的基于FFmpeg的推流器(以推送RTMP为例)

本例子实现了推送本地视频至流媒体服务器(以RTMP为例)。 是使用FFmpeg进行流媒体推送最简单的教程。

2014-10-06

最简单的基于FFmpeg的内存读写的例子

本程序实现了FFmpeg对内存中的视频数据的读写。包含两个工程: simplest_ffmpeg_mem_player:播放内存中视频数据的播放器。 simplest_ffmpeg_mem_transcoder:转码内存中数据的转码器。

2014-10-05

最简单的基于FFMPEG+SDL的视频播放器 2.2

本程序实现了视频文件的解码和显示(支持HEVC,H.264,MPEG2等)。 是最简单的FFmpeg视频解码方面的教程。 通过学习本例子可以了解FFmpeg的解码流程。 项目包含两个工程: simplest_ffmpeg_player:标准版,FFmpeg学习的开始。 simplest_ffmpeg_player_su:SU(SDL Update)版,加入了简单的SDL的Event。 工程采用了VC2010,FFmpeg使用了较新的类库,SDL使用了2.0版本。 这是更新的2.2版本。增加了“flush_decoder”功能,用于在解码循环结束后,输出解码器中剩余的几帧数据。

2014-10-04

最简单的基于FFmpeg的AVFilter例子 1.2

本程序使用包含下面两个项目: simplest_ffmpeg_video_filter:可以将一张PNG图片作为水印叠加到视频上,结合使用了libavfilter,libavcodec等类库。 simplest_ffmpeg_video_filter_pure:可以给YUV像素数据加特效,只用了libavfilter库。

2016-02-01

视音频数据处理入门

本项目包含如下几种视音频数据解析示例: (1)像素数据处理程序。包含RGB和YUV像素格式处理的函数。 (2)音频采样数据处理程序。包含PCM音频采样格式处理的函数。 (3)H.264码流分析程序。可以分离并解析NALU。 (4)AAC码流分析程序。可以分离并解析ADTS帧。 (5)FLV封装格式分析程序。可以将FLV中的MP3音频码流分离出来。 (6)UDP-RTP协议分析程序。可以将分析UDP/RTP/MPEG-TS数据包。

2016-01-29

YUV Player

自己修改过的YUV播放器,支持RGB、YUV等格式的播放。

2016-01-06

传媒大学广播电视工程系小学期课程 - 基于FFmpeg+SDL的视频播放器的制作

传媒大学广播电视工程系小学期课程《基于FFmpeg+SDL 的视频播放器的制作》的资料。包括: PPT-PDF:课程的PPT 工具:视音频处理软件以及测试视频 代码:课程中的代码 其它文档:一些参考资料

2015-07-26

最简单的基于FFmpeg的移动端例子

本解决方案包含了使用FFmpeg在移动端处理多媒体的各种例子: [Android] simplest_android_player: 基于安卓接口的视频播放器 simplest_ffmpeg_android_helloworld: 安卓平台下基于FFmpeg的HelloWorld程序 simplest_ffmpeg_android_decoder: 安卓平台下最简单的基于FFmpeg的视频解码器 simplest_ffmpeg_android_decoder_onelib: 安卓平台下最简单的基于FFmpeg的视频解码器-单库版 simplest_ffmpeg_android_streamer: 安卓平台下最简单的基于FFmpeg的推流器 simplest_ffmpeg_android_transcoder: 安卓平台下移植的FFmpeg命令行工具 simplest_sdl_android_helloworld: 移植SDL到安卓平台的最简单程序 [IOS] simplest_ios_player: 基于IOS接口的视频播放器 simplest_ffmpeg_ios_helloworld: IOS平台下基于FFmpeg的HelloWorld程序 simplest_ffmpeg_ios_decoder: IOS平台下最简单的基于FFmpeg的视频解码器 simplest_ffmpeg_ios_streamer: IOS平台下最简单的基于FFmpeg的推流器 simplest_ffmpeg_ios_transcoder: IOS平台下移植的ffmpeg.c命令行工具 simplest_sdl_ios_helloworld: 移植SDL到IOS平台的最简单程序

2015-07-22

最简单的基于FFmpeg的推流器 1.2

本例子实现了推送本地视频至流媒体服务器(以RTMP为例)。 是使用FFmpeg进行流媒体推送最简单的教程。 解决方案包含2个项目: simplest_ffmpeg_streamer: 将本地视频文件推送至流媒体服务器。 simplest_ffmpeg_receiver: 将流媒体数据保存成本地文件。

2015-07-22

最简单的基于FFMPEG+SDL的音频播放器 2.2

本程序实现了音频的解码和播放。是最简单的FFmpeg音频解码方面的教程。 通过学习本例子可以了解FFmpeg的解码流程。 项目包含3个工程: simplest_ffmpeg_audio_player:基于FFmpeg+SDL的音频解码器 simplest_ffmpeg_audio_decoder:音频解码器。使用了libavcodec和libavformat。 simplest_audio_play_sdl2:使用SDL2播放PCM采样数据的例子。

2015-07-22

最简单的基于FFMPEG+SDL的视频播放器 2.5

本程序实现了视频文件的解码和显示(支持HEVC,H.264,MPEG2等)。 是最简单的FFmpeg视频解码方面的教程。 通过学习本例子可以了解FFmpeg的解码流程。 项目包含6个工程: simplest_ffmpeg_player:标准版,FFmpeg学习的开始。 simplest_ffmpeg_player_su:SU(SDL Update)版,加入了简单的SDL的Event。 simplest_ffmpeg_decoder:一个包含了封装格式处理功能的解码器。使用了libavcodec和libavformat。 simplest_ffmpeg_decoder_pure:一个纯净的解码器。只使用libavcodec(没有使用libavformat)。 simplest_video_play_sdl2:使用SDL2播放YUV的例子。 simplest_ffmpeg_helloworld:输出FFmpeg类库的信息。

2015-07-22

最简单的基于FFmpeg的AVUtil例子 (AVLog, AVOption等)

本程序是FFmpeg中的libavutil的示例,目前包含: AVLog AVOption (AVClass) AVDictionary ParseUtil

2015-07-22

TIandSI 3.0 windows

本工具用于计算视频的时间信息(TI,也称为时间复杂度),以及空间 信息(SI,也称为空间复杂度),以上两个指标取自于ITU-R BT.1788标准。 该项目包含了4个工程: TIandSI : 计算YUV数据的TI和SI-图形界面版。 TIandSIcmd : 计算YUV数据的TI和SI-命令行版。 TIandSIpro : 计算压缩码流数据的TI和SI-图形界面版。 TIandSIprocmd : 计算压缩码流数据的TI和SI-命令行版。

2015-05-30

TIandSI 3.0

本工具用于计算视频的时间信息(TI,也称为时间复杂度),以及空间 信息(SI,也称为空间复杂度),以上两个指标取自于ITU-R BT.1788标准。 该项目包含了4个工程: TIandSI : 计算YUV数据的TI和SI-图形界面版。 TIandSIcmd : 计算YUV数据的TI和SI-命令行版。 TIandSIpro : 计算压缩码流数据的TI和SI-图形界面版。 TIandSIprocmd : 计算压缩码流数据的TI和SI-命令行版。

2015-05-30

最简单的Flash流媒体例子

本工程包含如下基于Flash技术的流媒体的例子: simplest_as3_rtmp_player:最简单的RTMP播放器(基于ActionScript) simplest_as3_rtmp_streamer:最简单的RTMP推流器(基于ActionScript) rtmp_sample_player_adobe:从Adobe Flash Media Sever提取出来的测试播放器 rtmp_sample_player_wowza:从Wowza服务器中提取出来的测试播放器 rtmp_sample_player_flowplayer:基于FlowPlayer的RTMP/HTTP播放器(添加RTMP plugin) rtmp_sample_player_videojs:基于VideoJS的RTMP/HTTP播放器 rtmp_sample_player_jwplayer:基于JWplayer的RTMP/HTTP播放器 hls_sample_player_flowplayer:基于FlowPlayer的HLS播放器(添加HLS plugin) hls_video_player_html5:基于HTML5的HLS/HTTP播放器 activex_vlc_player:基于VLC的ActiveX控件的播放器 注意:某些播放器直接打开html页面是不能工作的,需要把播放器放到Web服务器上。 (例如Apache或者Nginx)

2015-02-25

QAM调制与解调仿真程序

一个仿真DVB-C(Cable,数字有线电视)系统中QAM调制和解调的程序。在这个程序中,每执行一步操作,都会画出时域信号图和频域信号图,同时会在控制台打印出有关变量的取值,对于理解QAM调制与解调有一定的帮助。

2015-02-21

最简单的基于FFMPEG+SDL的视频播放器 2.4

本程序实现了视频文件的解码和显示(支持HEVC,H.264,MPEG2等)。是最简单的FFmpeg视频解码方面的教程。通过学习本例子可以了解FFmpeg的解码流程。 项目包含3个工程: simplest_ffmpeg_player:标准版,FFmpeg学习的开始。 simplest_ffmpeg_player_su:SU(SDL Update)版,加入了简单的SDL的Event。 simplest_ffmpeg_decoder_pure:一个纯净的解码器。 2.4版本增加了多平台下编译的支持:Windows,MacOS,以及Linux

2015-02-13

最简单的基于FFMPEG+SDL的视频播放器-最终版

本程序实现了视频文件的解码和显示(支持HEVC,H.264,MPEG2等)。是最简单的FFmpeg视频解码方面的教程。通过学习本例子可以了解FFmpeg的解码流程。 项目包含两个工程: simplest_ffmpeg_player:标准版,FFmpeg学习的开始。 simplest_ffmpeg_player_su:SU(SDL Update)版,加入了简单的SDL的Event。 这显示该程序的最终版,除了支持VC2010之外,也支持如下几种编译方式: cl.exe命令行编译; mingw编译; gcc编译; gcc(MacOS)编译; 此外修复了个别操作系统(例如Ubuntu)中绿屏的问题。

2015-02-12

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除