流媒体直播之一流媒体直播实现的整体方案和思路

来源:互联网 发布:诚信娱乐软件下载 编辑:程序博客网 时间:2024/05/22 05:21

最近由于导师项目需要进行网络屏与数据流的对接,需要实现的功能有RTSP传输,V4L2采集,H.264编码。为此本人也是各种百度,翻博客最终实现了VLC对开发板的摄像头采集的视频直播,为了让后来者免除本人所遇到的烦恼,决定抽出时间来写出一系列关于简易流媒体直播的博客,以供参考。
一、项目需求
鄙人认为一切项目的开发之初,首先我们需要了解自己要实现的功能是什么,也就是项目需求。这里我们需要设计一种RTSP嵌入式视频监控系统。该系统基于服务器/客户端的模式,用户使用PC机通过以太网实时监控观测对象。(很简单我们就是要在客户端看到自己开发板上摄像头采集到的图像)
二、项目准备
那么问题来了,当我们有这么个需求的时候我们就需要工具去实现它,这就是各种找资料的过程,这里直接说明,首先,我们要能够调用自己的摄像头,这里老一点的版本是v4l(video for linux),这里采用的罗技C270摄像头,采用V4L2协议(即v4l的升级版),由于不同型号的摄像头采集的格式不同,而后面介绍到的编码需要使用YUV420P图像格式,这里还需要用到ffmpeg库中的libswscale库来进行转格式;其次,我们这里项目需求明确说明需要通过以太网进行传输(网线),v4l2采集到的图像数据不可能直接通过以太网传输,这样占据的带宽较大,为使带宽减少需要用到现在普遍的压缩编码技术,通过查阅资料通常普遍采用的技术是H.264编码,这里采用x.264库进行H.264编码;然后,要实现RTSP协议,我们需要搭建RTSP服务器,本人采用网上普遍推荐的LIVE555开源库来进行RTSP服务器的搭建;最后服务器搭建好了,我们需要客户端来进行数据的接收与解码,由于本项目的最终目的是实现和网络屏对接即可,所以客户端的问题不用考虑只需使用RTSP协议的即可,本文使用的vlc播放器作为客户端。
三、系统设计
下面借用一篇论文中的图片来展示整体系统的实现。
系统架构图从图中可以看出经摄像头采集到的数据通过libswscale将图像格式转换为YUV420P然后利用x.264进行h.264编码,在通过RTSP发送到客户端。未完待续,下面将继续补充整个系统一步步的具体实现方式,敬请期待……

原创粉丝点击