4377| 1
|
[项目教程] OneNET视频能力体验------使用USB摄像头 |
本例程使用V4L2技术,采集USB摄像头数据,并在Ubuntu虚拟机中使用OneNET视频SDK,直接推流到OneNET视频云。 ---------------------------------- 其中USB采集部分是用的这位同学的代码, http://blog.csdn.net/li_wen01/article/details/71548079 在采集完毕之后再使用OneNET SDK推流,因为暂时优化得不好,先不发代码,优化好了再发上来。需要的同学可以先去他博客下载采集代码,再和sdk里面的代码融合一下- - SDK下载地址:https://open.iot.10086.cn/doc/art386.html#68 OneNET开发文档中心----公开协议产品指南-----6视频能力-----6.4接入SDK 1、基础知识 1.1 V4L2 v4L2全名是video for linux 2 ,是一个用于视频采集输出的一个编程框架,它支持许多USB摄像头,电视调谐器和相关设备,使其输出标准化,本章中我们会用到该框架采集USB摄像头。 1.2 H.264 H.264: H.264/AVC项目的目的是为了创建一个比以前的视频压缩标准,在更低的比特率的情况下依然能够提供良好视频质量的标准(如,一半或者更少于MPEG-2,H.263,或者MPEG-4 Part2 )。同时,还要不会太大的增加设计的复杂性。 优势: 1)网络亲和性,即可适用于各种传输网络 2)高的视频压缩比,当初提出的指标是比 H.263,MPEG-4,约为它们的 2 倍,现在都已基 实现; 我们使用了x264来进行编码,这是一个我们会在linux环境下用到的库。 [colo**460] x264 is a free software library and application for encoding video streams into the H.264/MPEG-4 AVC compression format, and is released under the terms of the GNU GPL. 注意:h.264是编码格式,libx264是编码库,也就是工具。 1.3 rtmp RTMP是Real Time Messaging Protocol(实时消息传输协议)的首字母缩写。该协议基于TCP,是一个协议族,包括RTMP基本协议及RTMPT/RTMPS/RTMPE等多种变种。 注意:rtmp是是是传输协议,而RTMPdump(libRTMP)则是一个为RTMP数据流处理而生的工具包 1.4 OneNET sdk OneNET视频能力是基于中移物联网OneNET平台构建的视频设备接入能力,为用户提供开放接入,远程设备控制,视频推流和云端分发等底层核心能力,并提供二次开发套件,方便用户定制开发自身行业应用。 设备接入,反向控制:支持MQTT协议接入 设备推流:支持RTMP推流 云端分发:支持RTMP, HLS分发 设备端推流:提供c-sdk,提供设备接入,推流等接口,可进行平台移植 播放端:支持三方常见播放器jwplayer、vlc、video.js SDK目录结构: doc : SDK相关文档 include : SDK API相关头文件
platforms : 平台相关的接口(include/platform.h)实现
sample : 各协议的示例
src :SDK内部实现 2、开发环境 2.1 Linux环境 需要装x.264库,RTMPlib库,cmake编译工具 方法1: 直接使用apt-get工具,来获取需要的库 sudo apt-get insatll libx264 sudo apt-get install cmake … 在编译过程中,如果提示缺少什么库,就直接apt-get install 就行了 方法2(推荐): (如果apt-get的cmake出问题的话,建议使用此方法来装cmake) 直接去官网获取对应的源码,然后 ./configure make && make install 注意:x264需要生成静态库 2.2 OneNET环境 请参考OneNET开发文档创建产品和设备 https://open.iot.10086.cn/doc/art388.html#68 创建完后获得其产品ID,设备ID,设备注册码。 3、实验描述及工程文件清单 3.1实验描述 该实验使用USB摄像头作为视频采集端,并使用linux v4l2来驱动该摄像头,在获取到YUV422数据后,将其进行h264格式封装,最后使用rtmp推流到OneNET视频云。 3.2实验流程 1、在OneNET开发者中心创建RTMP设备,参考本文2.2章 2、在ubuntu中安装开发环境,包括libx264,cmake等等,实际环境中缺少什么就再安装,参考本文2.1章 3、进入ubuntu系统,打开命令行窗口,进入开发目录,直接输入命令 sh videosamplebuild.sh,即可开始生成项目文件。 4、进入开发目录,输入以下两个命令,在输入这两个命令后,能够在OneNET开发者中心设备管理栏中看到该设备上线(会有一个小绿点提示) cd bin/ ./sample_ov5640 5、进入OneNET开发者中心,打开该产品,点击设备管理,再点击播放即可 7、实验效果 可以在OneNET开发者中心实时看到USB摄像头的视频显示 注意:如果在第三步cmake编译通不过的话,建议重装cmake, 3.1 程序逻辑流程(仅供参考): ont_video_live_stream_play open_camera init_camera start_capture RTMP_CreatePulish RTMP_InitVideoParams RTMP_SendScreenCapture SendScreenCapture read_frame stop_capture close_camera_device RTMP_DeletePublish |
© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed