自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

爱写代码的自由人

分享我的开发经验和流媒体方面的知识

  • 博客(23)
  • 资源 (49)
  • 收藏
  • 关注

转载 RTSP - RTP over TCP

原文链接:http://www.cnblogs.com/lidabo/p/4483497.htmlNormally, RTSP provide streaming over UDP. By nature, UDP is a better choice as it provides robust streaming capability for media. However, it is unlik...

2018-02-26 18:50:23 336 1

转载 rtsp摘要认证协议流程

1. rtsp摘要认证协议流程RTSP协议,全称Real Time Streaming Protocol,是应用层的协议,它主要实现的功能是传输并控制具有实时特性的媒体流,如音频(Audio)和视频(Video)。Rtsp认证主要分为两种:基本认证(basic authentication)和摘要认证( digest authentication )。基本认证是http 1.0提出的认证方案,其消...

2018-02-26 10:41:12 2942 1

转载 RTSP常用命令解释

1. RTSP的常用命令与解释       其中C是客户端,S是服务端。1.1  OPTIONS       C->S:       OPTION request //询问S有哪些方法可用       S->C:       OPTION response //S回应信息中包括提供的所有可用方法      使用举例:      客户端到服务端: OPTIONS rtsp://218.2...

2018-02-26 10:03:09 3910

转载 关于RTP时间戳及多媒体通信同步的问题

原文链接:http://www.rosoo.net/a/201101/10776.html 多媒体通信同步方法,主要有时间戳同步法、同步标记法、多路复用同步法三种。下面主要讨论时间戳同步法,特别是RTP时间戳同步。内容包括RTP媒体间同步的实现,为什么需要RTCP的NTP时间来实现媒体间同步?没有RTCP,能实现RTP媒体间的同步吗?DirectShow时间戳和RTP时间戳的区别,MPEG...

2018-02-26 09:43:11 1001

原创 如何用Directshow采集摄像头图像

      很多人接触Directshow都是从采集摄像头开始的,因为用Directshow做采集是Windows平台上最通用、最成熟的做法。 现在市场上大多数的摄像头和采集卡在Windows系统上的驱动基于WDM架构,微软定义了采集卡设备与上层程序间的通信驱动接口,这已经成为一种标准,因此,控制摄像头和采集图像基本都通过Directshow框架来实现。VLC,FFmpeg等软件支持采集摄像头图像...

2018-02-25 17:50:00 14242 10

原创 一个虚拟摄像头Filter(Virtual Cam Capture Filter)

当我们运行一些多媒体程序或者OpenCV的例子的时候,经常要用摄像头作为输入源,但是并不是每个用户电脑上都装了USB摄像头,那怎么办呢?可以在你系统上安装一个虚拟摄像头的Directshow插件,那么你系统上就多了一个“摄像头”了,但是实际上它不是物理摄像头,只是模拟摄像头设备可以采集图像。我的资源里提供了一个虚拟摄像头的代码,大家可以试用一下,下载地址:http://download.csd...

2018-02-25 14:54:31 28199 14

原创 如何用FFmpeg+Win32实现一个简单的音频播放器

    这个音频播放器是别人写的,我看到代码结构比较清晰,代码量比较精简,所以就拿来作为一个例子给大家讲解一下。这个播放器的界面是用Win32开发的,界面很简单,上面是菜单栏,下面是一个播放进度条,界面截图如下: 这个播放器使用FFmpeg来解析音频文件格式和解码音频,播放音频用到了DirectSound。这里要说一下播放音频的方法,在Windows平台,播放音频的方法有很多,比较常用的是:Dir...

2018-02-25 13:14:25 1353

原创 一个基于Directshow实现的音频播放器,支持歌词显示

之前在VC知识库上下载了一个基于Directshow做的音乐播放器,带歌词显示功能,觉得挺酷的。我下载了代码,编译了工程之后,运行起来的界面效果如下: 这个播放器支持的功能有:  支持播放MP3/AAC/WAV等常见的音频格式;  音乐播放控制(播放、暂停、停止、跳跃播放);  调节音量;   音乐播放过程中同步显示歌词;   歌词的文字颜色和背景色可调,并且可设置滚动方向;   歌词显示支持淡入...

2018-02-24 19:43:35 1310

原创 使用LAV Filter要注意的问题

前面的博文介绍了 LAV Filter 是一款很不错的开源的DirectShow视频分离和解码插件。但是使用时有一些要注意的地方。第一,是怎么注册。LAV Filter的目录下有3个Bat文件,分别运行这3个BAT文件,注册成功会有提示。但是有些用户注册的时候提示报错,是什么原因呢?这个一般是因为你执行命令的权限不够,需要提高到管理员权限运行,方法是:在系统的开始菜单中找到“命令提示符”,然后...

2018-02-24 15:42:59 28755 5

原创 目前最好的DirectShow分离器和解码器: LAV Filter

之前搞Directshow开发经常用到各种Directshow插件,用的比较多的是FFDShow解码器,还有MPC开源项目下那一堆乱七八糟的Filter。对于开发一个播放器来说,用这两个开源项目的Filter还不是很够用,特别是要支持某些比较新的或罕见的多媒体格式时经常缺少相应的分离器,或上网找找不到免费的,而商用的Filter价格又比较高。还有另外一个问题:面对越来越多的多媒体封装格式和编码格式...

2018-02-24 15:04:11 9210 1

原创 使用Directshow + LAVFilter做一个万能格式的多媒体播放器

在Windows平台上做播放器很多人会选择用DirectShow框架,因为Directshow来做播放器流程简单,接口又比较丰富,只要接上Filter,视频解析、解码、渲染、回放以及复杂的音视频同步问题通通由框架去完成,开发者做的工作比较简单。这篇文章就详细给大家讲怎么开发一个DirectShow播放器,并且搭配目前播放器领域最著名的Filter---LAVFilter。微软的Directsh...

2018-02-23 21:30:22 7853

转载 Release模式下加载FFmpeg提示“无法定位程序输入点XXX与动态链接库XXX.dll ”的问题解决

之前遇到一个很奇怪的问题:我的一个程序在Debug模块下运行没问题,而在Release模式下运行报错了,启动程序的时候提示“无法定位程序输入点CoTaskMemFree 于动态链接库avcodec-56.dll”,这个程序引用了FFmpeg的DLL,我开始以为是DLL的问题,但是之前用这些DLL都没有出现错误啊!我检查了编译选项多次也没发现什么问题。后来通过上网搜,终于在一篇博文中找到了答案...

2018-02-23 20:04:43 5468

原创 开发PS/TS流转ES的SDK

一、概述PS和TS流在广播电视、影音制作、安防监控等领域应用得很广泛。其中,PS流很久前就被应用于DVD光盘里的电影格式的封装容器,我们看过的很多DVD格式电影(即VOB)就是用PS容器封装的;PS流最近几年也迅速应用在安防领域,国标GBT 28181标准规定了视音频流通过网络传输要封装为PS格式;而TS流(传输流)则应用于电视直播领域很长一段时间,电视机顶盒接收的节目数据格式就是MPEG2-...

2018-02-23 17:38:55 1127

原创 如何用FFmpeg读取内存的PS/TS流,分离出视频和音频

之前做一个项目遇到一个问题:从网络中收到PS/TS流,需要从中分离出视频和音频,但是FFmpeg只支持标准的几种输入流协议(RTP/HTTP/RTSP/MMS),而我们的协议它不支持,所以就不能够用它来直接做接收。那能否由自己来接收数据然后让FFmpeg读取内存中的数据呢?答案当然是可以的,这就需要用到FFmpeg的探测流格式的功能,主要是用到了两个API: avio_alloc_cont...

2018-02-22 21:14:20 6186 1

原创 如何让FFMPEG生成的MP4文件做到边下载边播放

     一般通过FFmpeg生成的MP4文件如果没有经过特殊处理在播放的时候是要下载完整个文件才能播放,但是我们想将文件用于点播,比如放到Darwin RTSP Server的媒体目录里让访问的客户端播放,必须让它支持边下载边播放。将MP4文件转成可以逐渐播放的操作叫做“流化”,那如何对一个MP4文件进行“流化”呢?我们可以借助ffmpeg带的一个命令行工具--qt-faststart。  qt...

2018-02-22 11:46:00 7229 1

原创 新版FFmpeg编解码音频的问题

      很多人写的老程序还是用FFmpeg的旧版本,但一升级到新版本就遇到很多问题,首先是某些API不能用了,编译不通过,不过这个问题还是算比较容易解决的,遇到最头疼的一个问题是对音频的处理。以前FFmpeg编码和解码接受的音频格式多数是S16(AV_SAMPLE_FMT_S16),是Packed Format格式,就是左右两个声道是连续排列的,而FFmpeg新版本引进了新的排列格式AV_SA...

2018-02-22 11:32:11 1736

原创 如何用FFmpeg将输出的TS流写到内存

     最近需要实现一个功能:利用FFmpeg将编码出来的视频流和音频流混合封装成TS格式,然后通过自定义协议将TS流发送出去。因为发送协议是自己定义的,FFmpeg不支持这种网络协议,不能用它内置的协议。后来发现原来FFmpeg也支持将输出的流回调到给上层去处理,下面简单讲一下实现的流程。    首先,我们按照把流输出到文件的方式来处理,但是有小小的不同,下面是初始化输出流的代码:A...

2018-02-21 20:56:29 5927 7

原创 启动FFmpeg.exe进程完成通过命令行可以实现的功能

FFmpeg的功能很强大,包含编码,解码,各种输入输出格式的处理,但是使用它的API来实现功能有点困难,有没有更简单的方式?通常API能做的功能FFmpeg的官方工具即ffmpeg.exe都已经实现了,我们可以通过命令行直接调用ffmpeg.exe进程来完成。我的博客上跟这个话题相关的一篇文章《Java/PHP/C#等语言如何调用ffmpeg/ffprobe获得视音频文件的信息并输出为...

2018-02-21 19:46:42 8178

原创 降低FFmpeg的解码延时

     不知大家有没有发现FFmpeg长时间解码会出现延时增大(特别是在丢包的情况下)?如果在播放本地文件,这个问题是没有影响的。但是如果播放的是实时流,则图像的延时就越来越大。本人是做安防监控的,很多招标项目对解码器的图像延时都有要求:不能高于250毫秒。所以,对实时性要求高的场合,要尽量降低图像的延时。    网络摄像头从采集图像到通过网络传输到客户端解码的过程中都会产生延时,一般延时有...

2018-02-21 14:08:50 10712 3

原创 降低FFmpeg的编码延时

   之前用FFmpeg的H264编码器发现编码出来的视频延时很大,在解码器一端优化各种可能产生延时的地方之后,延时还是有一秒,上网一查发现很多人遇到相同的问题,不过好在看到一个帖子给出了这个问题的解决方法。   原来,FFmpeg的H264编码器为了提高编码的图像质量,默认会缓冲多帧图像,这个缓冲帧数跟GOP大小有关。我程序设置GOP等于100,结果缓冲了20多帧。为了降低编码延时,可以添加-p...

2018-02-21 12:27:24 8315

原创 用FFmpeg保存JPEG图片

//函数作用:将解码出来的YUV数据保存成JPG图像//out_file_name -- JPEG图像保存路径//w, h -- 图像宽高//linesize -- 图像的Y分量宽度(一般4字节对齐)//Y, U, V -- 指向图像Y,U,V三个平面的指针//int EncodeAndSaveJPEG(const char* out_file_name, int w, int h, ...

2018-02-21 10:47:19 8401

原创 用FFmpeg获取视频流+音频流的信息(编码格式、分辨率、帧率、播放时长...)

我们经常需要知道一个媒体文件所包含的媒体流的信息,比如文件格式、播放时长、码率、视音频编码格式,视频分辨率,帧率,音频属性等信息。如何使用FFmpeg API获取这些信息呢?下面我会给出一个完善的类,这个类封装了FFmpeg读取文件信息的相关的API,读者只需要调类的方法就可以获得相关的信息。这个类能够读取媒体文件的哪些信息呢?假如我们给出一个媒体文件(MP4,AVI,MKV。。。),里面至少...

2018-02-20 20:15:05 49963 18

原创 如何用FFmpeg API采集摄像头视频和麦克风音频,并实现录制文件的功能

之前一直用Directshow技术采集摄像头数据,但是觉得涉及的细节比较多,要开发者比较了解Directshow的框架知识,学习起来有一点点难度。最近发现很多人问怎么用FFmpeg采集摄像头图像,事实上FFmpeg很早就支持通过DShow获取采集设备(摄像头、麦克风)的数据了,只是网上提供的例子比较少。如果能用FFmpeg实现采集、编码和录制(或推流),那整个实现方案就简化很多,正因为这个...

2018-02-19 22:08:02 57601 50

使用FFmpeg API实现的RTMP接收类

基于FFmpeg实现的RTMP接收类,已经在项目中经过验证,完全可用。

2019-01-09

代码例子:如何用FFmpeg读取内存的PS/TS流,分离出视频和音频

演示如何用FFmpeg读取内存的PS/TS流,分离出视频和音频,用VC2008编译的,支持读取TS文件或PS文件到内存,支持分离、解码

2018-12-08

Android采集摄像头图像--MediaCodec编码

支持从摄像头采集图像,并用MediaCodec API进行硬编码,编码后的数据保存到一个H264文件。这个例子也支持软编码,使用的是FFmpeg。

2018-07-21

Directshow采集摄像头(或其他采集卡)图像的封装类

一个老外写的Directshow采集卡封装类,代码写得比较完善

2018-02-25

DirectX 9 SDK的安装包,包含DirectShow

Directshow SDK,包含DirectShow的SDK 文件, Samples例子,还有一个编译步骤

2018-02-25

FFmpeg + Directsound实现的音频播放器,只支持Windows系统

用FFmpeg解码音频文件,支持非常多的音频文件格式,音频输出用DirectSound,支持Seek播放,有播放进度显示。

2018-02-25

基于Directshow技术播放音频,带歌词显示功能的音乐播放器

用MFC开发的音乐播放器,带歌词显示,使用Directshow播放音频。

2018-02-24

一个基于FFmpeg实现的音频播放器,只支持Windows系统

一个FFmpeg实现播放音频的播放器,基于别人的代码改的,播放音频用WaveForm API,界面用Win32做的,能显示播放的进度。

2018-02-24

基于Directshow的万能格式播放器

一个基于Directshow的文件播放器,Filter插件是用大名鼎鼎的LAVSplitters,可以播放常见的文件格式。

2018-02-23

一个分离PS和TS流的动态库,带一个播放器Demo

可以从PS或TS文件中分离出音频和视频,也支持从内存读数据。里面有SDK的头文件和LIB库,并且有一个演示的例子

2018-02-23

Direct3D技术实现的图片浏览器V1.2

一个用Direct3D技术渲染的图像浏览器,支持图像旋转,图像放大,比例调整,还支持动画特效。

2018-02-18

基于Live555的RTSP服务器V1.2,视频源为摄像头

基于Live555写的RTSP服务器,有图形界面,支持采集USB摄像头的视频和麦克风的音频,支持编码参数设置。修改了上一版本的几个Bug。

2018-02-18

使用FFmpeg采集摄像头图像和麦克风音频

使用FFmpeg API采集摄像头图像和麦克风音频,支持图像预览,把图像和音频编码后保存成文件,实现视音频同步机制。为更好理解代码,请阅读我博客上相关的一篇文章:https://blog.csdn.net/zhoubotong2012/article/details/79338093

2018-02-15

VC的虚拟列表控件的用法

实现了一个基于MFC的虚拟列表控件,选择目录路径后,显示目录里的所有文件,该控件采用回调方式获取每一行ListItem的数据,显示到哪一页就加载哪一页的数据。用虚拟列表控件显示效率很高,可显示上万条的记录。

2018-02-08

用GDI+实现图片透明度变化的效果

实现图片淡入淡出效果,主要用了GDI++的AlphaBlend函数。

2018-02-08

播放器经典实现例子

Windows平台的播放器例子,实现了一个很好的播放器框架,简单易懂。

2018-02-08

Direct3D技术实现的图片动画效果

一个用Direct3D技术渲染的图像浏览器,支持图像旋转,图像放大,比例调整,还有支持多种动画特效。

2018-02-08

VC2008运行时库

VC2008的运行时库,某些VC2008编译的以MFC动态链接的EXE需要装这个库。

2018-02-06

Directshow SDK包(无须安装)

微软的Directshow SDK包,解压后把Include和Lib目录添加到工程路径。

2018-02-06

LAVSplitters---Directshow分离器和解码器Filter

世界上最好的Directshow分离器和解码器插件,目前开源播放器MPC也是调用这个的。

2018-02-06

VirtualCamConfig.rar

该工具是我写的虚拟摄像头Filter的配置工具,用来配置视频文件路径和帧率,详情请浏览网页:https://blog.csdn.net/zhoubotong2012/article/details/79368648

2019-12-24

Android摄像头获取图像_FFmpeg软编

实现如下功能: 在Android系统上采集摄像头图像,然后将图像压缩成H264,支持两种方式压缩:1. FFmpeg软编方式;2.调用MediaCodec硬件编码。压缩输出的流保存成文件。我博客上有一篇相关的文章:https://blog.csdn.net/zhoubotong2012/article/details/81144708

2019-11-25

OpenCV输出的图像嵌入显示到控件窗口中--TestCVShow(GDI && SDL).zip

默认OpenCV是采用弹出窗口的方式来显示图像的,而很多情况下我们需要将采集出来的图像用内嵌或子窗口方式显示到我们自己的软件窗口中。这个程序就是实现这样的功能:将OpenCV采集出来的图像帧内嵌显示到MFC的窗口中。分别采用了两种方法显示图像:一种是用GDI(仅支持Windows),另外一种用跨平台的SDL库。

2019-11-19

MPEG-PS/TS流实时流播放器例子--PsAndTsPlayer_V1.3.zip

该播放器支持PS/TS流读取,支持从文件读取或从内存读取,支持从网络(用UDP)接收到PS/TS流,然后送到SDK 缓冲区进行读取和解析。有拆包、分离ES帧、解码视频ES帧的功能。下载前请阅读我博客上的文章:https://blog.csdn.net/zhoubotong2012/article/details/79354950

2019-11-12

FFmpeg API读取视音频文件信息的一个工具----MediaFileInfoList.zip

一个含界面窗口的程序,调用FFmpeg API读取视音频文件信息(MP4、AVI、MKV...),可以读取文件播放时长、码率、视音频编码格式,视频分辨率,帧率,音频属性等信息。

2019-10-27

使用Direct3D技术实现的一个图片浏览器---ImageTex_2.1.zip

利用Direct3D实现的一个简单的图片浏览器,支持打开PNG、BMP、JPG文件,可以加载2个图层,支持对图层进行旋转、放大、改变图层大小等。

2019-10-24

使用Direct3D实现如幻灯片的动态图片切换效果---SlideShowD3D

支持3种图像切换特效(淡入淡出、水平扫描、百叶窗),利用Direct3D进行画图。

2019-10-24

Directshow播放文件封装类---VideoPlayGraph(evr).zip

DirectShow播放器构建FilterGraph播放文件的封装类,调用的Filters是LAV,支持连接VMR或EVR,支持设置解码模式为软解,硬解。

2019-10-17

SimplePlayer(DShow).zip

该播放器基于Directshow框架,调用的解码器来自于开源的LAVFilters。支持的所有常见的多媒体格式播放。

2019-10-17

SlideShow.zip--实现图片切换特效(如幻灯片效果)

SlideShow-- 实现多达11种图像切换特效(包括向上扫描,向左扫描,马赛克,水平栅条,淡入淡出等),利用GDI+进行画图。

2019-10-12

FFmpeg的加水印滤镜例子(有图形界面) ---ffmpeg_filter_mix_logo

ffmpeg_filter_mix_logo -- 在视频上叠加OSD文字或Logo图标,用到了FFmpeg的加水印滤镜。

2019-10-12

在视频上叠加OSD文字和Logo图标---SubtitleMixVideo

SubtitleMixVideo -- 在视频上叠加OSD文字和Logo图标,通过在原图像上修改像素的方法进行叠加,支持多种图像格式(RGB565/RGB555/RGB24/RGB32),可叠加多个OSD区域。

2019-10-12

在视频上叠加OSD文字和Logo图标--ShowVideoWithOSD

ShowVideoWithOSD -- 在视频上叠加OSD文字和Logo图标,采用渲染时叠加的方法,用到Directdraw API。

2019-10-12

Directshow渲染器Filter上叠加字幕和Logo--FileStreamDecode(Directshow)

FileStreamDecode(Directshow) -- 本例子基于Directshow框架,实现了一个自定义的Renderer Filter,带渲染视频功能,并且可以在视频上叠加OSD文字和Logo图标,用到Directdraw API渲染视频和叠加字幕。

2019-10-12

虚拟摄像头Filter代码--VirtualCamFilter_1.2

安装了这个Dshow插件之后,在系统中就模拟出一个虚拟的视频采集设备,使用Directshow的枚举视频设备方法能枚举出来。这个插件输出的图像是一个已知的视频文件解码出来的图像,需要通过一个工具配置输入的视频媒体文件路径,安装包中带着个工具。

2019-06-06

使用jrtplib发送和接收的例子--PlayStream V1.2

基于jrtplib实现了RTP发送和接收功能,支持发送H264、PS、TS等文件流,接收端读取发送端发来的数据后,取Payload数据,通过FFmpeg分离、解码出视频,将RGB格式的视频在窗口中显示。 了解更多内容请参阅我博客上的相关文章:https://blog.csdn.net/zhoubotong2012/article/category/7467116

2019-01-29

使用jrtplib发送和接收网络流(支持解码、播放)

基于jrtplib实现了RTP发送和接收功能,支持发送H264、PS、TS等文件流,接收端读取发送端发来的数据后,取Payload数据,通过FFmpeg分离、解码出视频,将RGB格式的视频在窗口中显示。该代码对应我博客上的一篇文章:https://blog.csdn.net/zhoubotong2012/article/details/86502327

2019-01-15

使用RTP协议发送和接收H264的例子(支持解码、播放)

MFC实现的窗口程序,集成了发送和接收RTP包的功能,接收到的视频用FFmpeg解码并显示出来。该例子代码对应我博客上的一篇文章:https://blog.csdn.net/zhoubotong2012/article/details/86510032

2019-01-15

jrtplib-3.11.1 实现RTP收发功能的静态库

JRTPLIB 是一个用C++语言实现的RTP库,目前已经可以运行在Windows、Linux、FreeBSD、Solaris、Unix和 VxWorks等多种操作系统上

2019-01-15

如何枚举系统的视音频采集设备

如何用Directshow API枚举系统的视音频采集设备,这是一个动态库,提供了一个接口获取系统所有的采集设备名称。

2019-01-09

空空如也

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

TA关注的人

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