嵌入式arm linux平台获取网络摄像头RTSP视频流的开发

说明:

最近要做一物联网项目的需求,通过物联网数据采集网关根据需要联动触发局域网内网络摄像头(例如海康,雄迈,天视通等各种品牌的摄像头)的视频上传到中国移动ONENET云服务器平台,硬件平台是嵌入式ARM LINUX平台的,通过了解,这些摄像头的厂家基本都没有提供嵌入式ARM平台的SDK供开发者开发,例如海康的摄像头,提供的SDK只有PC版本的,所以通过厂家SDK开发是行不通的;但发现,网络摄像头基本上都是有RTSP视频流功能的, RTSP(Real Time Streaming Protocol)是由Real Network和Netscape共同提出的如何有效地在IP网络上传输流媒体数据的应用层协议.所以可以通过在嵌入式ARM LINUX平台上访问摄像头的RTSP视频流的方法实现相应的需求.

要实现ARM LINUX平台上访问网络摄像头,就需要在ARM LINUX上实现RTSP客户端功能,偿试两种方案,一是应用openrtsp实现,但发现编码效果不是很好,然后改用了ffmpeg方案,稳定性及效率都满足需求.可以实时读取RTSP视频流数据并播放或转码成自己想要的视频格式.测试了各种品牌(泰科、天地伟业、深圳帝之特、海康威视Hikvision、亚安Yaan)的摄像头兼容性很好.

硬件环境

硬件平台: FETMX6UL-C

软件平台:linux

编译器:arm-linux-gcc

摄像头:海康摄像头(也可以其他品牌的网络摄像头,只要支持RTSP协议即可)

FFMPEG移植

下载ffmpeg-4.2.2.tar.bz2源码包

可以从官网下载源码包,也可以在文档结尾的链接下载.

执行configure配置如下,生成 makefile

./configure --prefix=/opt/trash/ffmpeg2 --disable-static --enable-shared --disable-x86asm --enable-gpl --enable-nonfree --enable-cross-compile --arch=arm --target-os=linux --cross-prefix=arm-linux- --cc=arm-linux-gcc --enable-pthreads --enable-ffplay --enable-decoder=h264

configure命令

执行make编译

执行make install安装

耐心等待编译成功后会编译出如下ffmpeg命令及相关的动态库.接着来就可以用ffmpeg命令及引用相应的动态库编程实现了.ffmpeg是很强大的音频视频处理工具命令.  动态库文件较大,也可以根据需求配置去掉部分功能重新编译减少库文件大小.

命令应用

ffmpeg命令用法:

ffmpeg [options] [[infile options] -i infile]... {[outfile options] outfile}...

-i 设定输入流

-f 设定输出格式

-ss 开始时间

-b 设定视频流量,默认为200Kbit/s

-r 设定帧速率,默认为25

-s 设定画面的宽与高

-aspect 设定画面的比例

-vn 不处理视频

-vcodec 设定视频编解码器,未设定时则使用与输入流相同的编解码器 

-ar 设定采样率

-ac 设定声音的Channel数

-acodec 设定声音编解码器,未设定时则使用与输入流相同的编解码器

-an 不处理音频

用ffmpeg工具命令将rtsp视频流生成MP4视频文件执行如下图的命令可以生成5秒的MP4视频文件,说明ffmpeg移植成功;

命令执行
命令执行结果

DEMO程序WEB网页设计

WEB网页设计了一个DEMO程序根据输入的RTSP视频流地址请求获取视频播放演示,设计应用了HTML与JS,CGI技术来设计;在浏览里输入开发板的IP地址/camera.html即可以打开demo网页,输入rtspurl,点击获取视频即可以在arm linux平台上播放指定摄像头的视频.

网页界面展示
html,js代码
CGI源码程序


源码下载

包括文中的FFMPEG源码及HTML,CGI源码;

链接:ffmpeg源码及web源码

链接:https://pan.baidu.com/s/1AgsH2IBTLHuP6xx4CJNbmQ

提取码:ycpx

或扫码下载:


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,417评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,921评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,850评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,945评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,069评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,188评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,239评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,994评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,409评论 1 304
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,735评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,898评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,578评论 4 336
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,205评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,916评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,156评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,722评论 2 363
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,781评论 2 351

推荐阅读更多精彩内容