- 博客(20)
- 资源 (135)
- 收藏
- 关注
原创 最简单的视音频播放示例9:SDL2播放PCM
本文记录SDL播放音频的技术。在这里使用的版本是SDL2。实际上SDL本身并不提供视音频播放的功能,它只是封装了视音频播放的底层API。在Windows平台下,SDL封装了Direct3D这类的API用于播放视频;封装了DirectSound这类的API用于播放音频。因为SDL的编写目的就是简化视音频播放的开发难度,所以使用SDL播放视频(YUV/RGB)和音频(PCM)数据非常的容易。SDL简介
2014-10-31 00:23:11 38731 11
原创 最简单的视音频播放示例8:DirectSound播放PCM
本文记录DirectSound播放音频的技术。DirectSound是Windows下最常见的音频播放技术。目前大部分的音频播放应用都是通过DirectSound来播放的。本文记录一个使用DirectSound播放PCM的例子。注:一位仁兄已经提醒我DirectSound已经计划被XAudio2取代了。后来考证了一下发现确有此事。因此在下次更新中考虑加入XAudio2播放PCM的例子。本文仍然记录
2014-10-30 00:08:36 35475 19
原创 最简单的视音频播放示例7:SDL2播放RGB/YUV
本文记录SDL播放视频的技术。在这里使用的版本是SDL2。实际上SDL本身并不提供视音频播放的功能,它只是封装了视音频播放的底层API。在Windows平台下,SDL封装了Direct3D这类的API用于播放视频;封装了DirectSound这类的API用于播放音频。因为SDL的编写目的就是简化视音频播放的开发难度,所以使用SDL播放视频(YUV/RGB)和音频(PCM)数据非常的容易。
2014-10-29 00:18:23 32347 24
原创 最简单的视音频播放示例6:OpenGL播放YUV420P(通过Texture,使用Shader)
本文记录OpenGL播放视频的技术。上一篇文章中,介绍了一种简单的使用OpenGL显示视频的方式。但是那还不是OpenGL显示视频技术的精髓。和Direct3D一样,OpenGL更好的显示视频的方式也是通过纹理(Texture)。本文介绍OpenGL通过纹理的方式显示视频的技术。 OpenGL中纹理和Direct3D纹理的不同OpenGL中的纹理的坐标和Direct3D中的坐标是不一样的。在Dir
2014-10-28 00:35:40 59779 54
原创 最简单的视音频播放示例5:OpenGL播放RGB/YUV
本文记录OpenGL播放视频的技术。OpenGL是一个和Direct3D同一层面的技术。相比于Direct3D,OpenGL具有跨平台的优势。尽管在游戏领域,DirectX的影响力已渐渐超越OpenGL并被大多数PC游戏开发商所采用,但在专业高端绘图领域,OpenGL因为色彩准确,仍然是不能被取代的主角。OpenGL简介从网上搜集了一些有关OpenGL简介方面的知识,在这里列出来。开放图形库(英语
2014-10-27 12:35:41 41358 17
原创 最简单的视音频播放示例4:Direct3D播放RGB(通过Texture)
本文接着上一篇文章继续记录Direct3D(简称D3D)播放视频的技术。上一篇文章中已经记录了使用Direct3D中的Surface渲染视频的技术。本文记录一种稍微复杂但是更加灵活的渲染视频的方式:使用Direct3D中的Texture(纹理)渲染视频。 纹理有关的基础知识在记录使用Direct3D的Texture渲染视频的技术之前,首先记录一下有关纹理的基础知识。我自己归纳总结了以下几点知识。1
2014-10-22 02:26:51 23747 10
原创 最简单的视音频播放示例3:Direct3D播放YUV,RGB(通过Surface)
上一篇文章记录了GDI播放视频的技术。打算接下来写两篇文章记录Direct3D(简称D3D)播放视频的技术。Direct3D应该Windows下最常用的播放视频的技术。实际上视频播放只是Direct3D的“副业”,它主要用于3D游戏制作。当前主流的游戏几乎都是使用Direct3D制作的,例如《地下城与勇士》,《穿越火线》,《英雄联盟》,《魔兽世界》,《QQ飞车》等等。使用Direct3D可以用两种
2014-10-21 00:14:27 40763 22
原创 最简单的视音频播放示例2:GDI播放YUV, RGB
前一篇文章对“Simplest Media Play”工程作了概括性介绍。后续几篇文章打算详细介绍每个子工程中的几种技术。在记录Direct3D,OpenGL这两种相对复杂的技术之前,打算先记录一种和它们属于同一层面的的简单的技术——GDI作为热身。GDI简介下面这段文字摘自维基百科:图形设备接口(Graphics Device Interface或Graphical Device Interfa
2014-10-20 00:25:08 21979 13
原创 最简单的视音频播放示例1:总述
前言最近研究了一下Windows平台下的视音频播放的技术。在Windows平台下的视频播放技术主要有以下三种:GDI,Direct3D和OpenGL;音频播放技术主要是DirectSound。这些技术属于比较底层的技术,因此使用起来相对来说还是比较复杂的。我在学习的过程中也发现这一领域一直缺少比较简单直观的示例程序,因此打算做些示例程序,同时写一些相关的文章,方便这一领域的人学习相关的知识。打算重
2014-10-19 00:09:00 29301 26
原创 最简单的基于FFmpeg的封装格式处理:视音频复用器(muxer)
打算记录一下基于FFmpeg的封装格式处理方面的例子。包括了视音频分离,复用,封装格式转换。这是第3篇。本文记录一个基于FFmpeg的视音频复用器(Simplest FFmpeg muxer)。视音频复用器(Muxer)即是将视频压缩数据(例如H.264)和音频压缩数据(例如AAC)合并到一个封装格式数据(例如MKV)中去。如图所示。在这个过程中并不涉及到编码和解码。 本文记录的程序将一个H.26
2014-10-09 00:47:17 101194 113
原创 最简单的基于FFmpeg的封装格式处理:视音频分离器(demuxer)
打算记录一下基于FFmpeg的封装格式处理方面的例子。包括了视音频分离,复用,封装格式转换。这是第2篇。本文记录一个基于FFmpeg的视音频分离器(Simplest FFmpeg demuxer)。视音频分离器(Demuxer)即是将封装格式数据(例如MKV)中的视频压缩数据(例如H.264)和音频压缩数据(例如AAC)分离开。如图所示。在这个过程中并不涉及到编码和解码。本文记录的程序可以将一个M
2014-10-08 00:58:56 50495 30
原创 最简单的基于FFmpeg的封装格式处理:视音频分离器简化版(demuxer-simple)
最近打算记录一下基于FFmpeg的视音频分离,复用,封装格式转换相关的例子。有关封转格式转换的例子在之前的文章:《最简单的基于FFMPEG的封装格式转换器(无编解码)》中已经有过记录,不再重复。因此计划写3篇文章分别记录视频的复用器(Muxer)和分离器(Demuxer)。这是第1篇。本文记录一个基于FFmpeg的视音频分离器简单版(Simplest FFmpeg Demuxer Simple)。视音频分离器(Demuxer)即是将封装格式数据(例
2014-10-07 12:54:03 38378 21
原创 最简单的基于FFmpeg的推流器(以推送RTMP为例)
本文记录一个最简单的基于FFmpeg的推流器(simplest ffmpeg streamer)。推流器的作用就是将本地的视频数据推送至流媒体服务器。本文记录的推流器,可以将本地的 MOV / AVI / MKV / MP4 / FLV 等格式的媒体文件,通过流媒体协议(例如RTMP,HTTP,UDP,TCP,RTP等等)以直播流的形式推送出去。由于流媒体协议种类繁多,不一一记录。在这里记录将本地
2014-10-06 00:35:29 305078 161
原创 最简单的基于FFmpeg的内存读写的例子:内存转码器
上篇文章记录了一个基于FFmpeg的内存播放器,可以使用FFmpeg读取并播放内存中的数据。这篇文章记录一个基于FFmpeg的内存转码器。该转码器可以使用FFmpeg读取内存中的数据,转码之后再将数据输出到内存。关于如何从内存读取数据,以及如何将数据输出到内存,可以参考文章: FFmpeg读写内存的关键点有2个:1. 初始化自定义的AVIOContext,指定自定义的回调函数。2.
2014-10-05 13:30:35 29499 29
原创 最简单的基于FFmpeg的内存读写的例子:内存播放器
打算记录两个最简单的FFmpeg进行内存读写的例子。之前的所有有关FFmpeg的例子都是对文件进行操作的。例如《最简单的基于FFmpeg+SDL的视频播放器》播放的是一个视频的文件。而《最简单的基于FFmpeg的转码器》也是将一个视频文件转换为另一个视频文件。《最简单的基于FFmpeg的视频编码器(YUV编码为H.264)》也是最后编码得到一个H.264视频文件。实际上,并不是所有视频的编码,解码
2014-10-05 12:15:44 36627 28
原创 最简单的基于FFmpeg的视频编码器-更新版(YUV编码为HEVC(H.265))
前一阵子做过一个基于FFmpeg的视频编码器的例子:最简单的基于FFMPEG的视频编码器(YUV编码为H.264)在该例子中,可以将YUV像素数据(YUV420P)编码为H.264码流。因为如今FFmpeg已经实现了对libx265的支持,因此对上述编码H.264的例子进行了升级,使之变成编码H.265(HEVC)的例子。比较早的FFmpeg的类库(大约几个月以前的版本,我这里编译时间是2014.
2014-10-04 14:12:45 58716 35
原创 ffplay.c函数结构简单分析(画图)
最近重温了一下FFplay的源代码。FFplay是FFmpeg项目提供的播放器示例。尽管FFplay只是一个简单的播放器示例,它的源代码的量也是不少的。之前看代码,主要是集中于某一个“点”进行研究,而没有从总体结构上进行分析。本文就打算弥补之前学习的不足,从总体结构上分析一下FFplay的源代码,画图理一下它的结构。其中还有诸多不足,以后有机会慢慢完善。
2014-10-04 12:48:54 36726 11
原创 ffmpeg.c函数结构简单分析(画图)
前一阵子研究转码的时候看了FFmpeg的源代码。由于ffmpeg.c的代码相对比较长,而且其中有相当一部分是AVFilter有关的代码(这一部分一直不太熟),因此之前学习FFmpeg的时候一直也没有好好分析一下其源代码。最近正好看了看AVFilter的知识,顺便就看了下FFmpeg的源代码,在这里画图理一下它的结构。先说明一下自己画的结构图的规则:图中仅画出了比较重要的函数之间的调用关系。粉红色的
2014-10-04 00:12:40 39992 19
原创 最简单的基于FFmpeg的AVDevice例子(屏幕录制)
FFmpeg中有一个和多媒体设备交互的类库:Libavdevice。使用这个库可以读取电脑的多媒体设备的数据,或者输出数据到指定的多媒体设备上。计划写2个有关FFmpeg的libavdevice类库的例子。上篇文章记录了一个基于FFmpeg的Libavdevice类库读取摄像头数据的例子。本篇文章记录一个基于FFmpeg的Libavdevice类库录制屏幕的例子。本文程序录制当前桌面内容并且解
2014-10-02 13:19:23 74475 93
原创 最简单的基于FFmpeg的AVDevice例子(读取摄像头)
FFmpeg中有一个和多媒体设备交互的类库:Libavdevice。使用这个库可以读取电脑(或者其他设备上)的多媒体设备的数据,或者输出数据到指定的多媒体设备上。Libavdevice支持以下设备作为输入端:alsaavfoundationbktrdshowdv1394fbdevgdigrabiec61883jacklavfilibcdiolibdc1394openalosspulseqtkits
2014-10-01 00:09:19 98433 115
最简单的基于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关注的人