用Delphi实现一套完整的多媒体直播系统

4 Comments 2013-11-09 admin

        上文介绍了如何用实现基于RTMP协议的多媒体直播系统,但是因为服务器和播放端都是第三方的,所以本文介绍一个从采集推送、服务器和播放端都是自己实现的系统。自己全部实现的优点就是全部可控,例如延迟可以控制在0.1秒。

        1、采集端。采集端跟前文的RTMP采集其实没有什么区别,但是有两个地方需要注意,一个就是视频压缩,因为我使用的H264是老版本的,这个版本要求视频的长和宽都必须是16的倍数,而对于视频文件来说,有些尺寸不一定能够满足,所以对于不满足条件的,我压缩强制了16位对齐(前文RTMP的H264我使用的是新版本的,所以不存在这个问题)。另外一个地方是音频压缩,我使用的是AAC,压缩的时候一定要注意输入的样本数量必须跟配置信息的一样,否则解压后播放起来会爆音。

live1

        2、服务器端。服务器端实现起来很简单,就是一个数据转发而已,我这里只是简单的写了一个:

live2

        3、播放端。播放端是继承自TSource的一个Filter,这个Filter有两个Pin,一个播放视频,一个播放音频。

live3

live4

        实际上,视频直播现在已经流行视频用D3D,音频用IAudioClient,播放起来更加清晰,实现起来也更加简单,不需要什么DirectxShow的知识。点这里下载演示程序,相关问题请加QQ群讨论,另外群共享里面也有一些相关的代码。

分类:多媒体相关

4 Comments 发表评论

发表评论

(required)

(required), (Hidden)

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

TrackBack URL  |  RSS feed for comments on this post.


日历

2023年 9月
 123
45678910
11121314151617
18192021222324
252627282930  

近期文章