自定义博客皮肤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)的专栏

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

  • 博客(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

本程序实现了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关注的人

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