2024年8月26日发(作者:茹雪莲)
l RM盯 TER 惠
● 敖■
矿 l f o匹 lnf r
【本文献信息】高西萍,曾浩,程瑶.iPhone 4手机视频监控系统的设计[J].2012,36(3)
iPhone 4手机视频监控系统的设计
高西萍,曾浩,程瑶
(重庆邮电大学通信学院,重庆400065)
【摘要】给出了一套基于iPhone 4的手机视频监控系统方案,详细说明了系统服务器端和客户端的模块设计。经测试,该方案的
设计合理,性能良好,能满足手机视频监控的基本需求,用户能够通过手机进行视频查看、云台控制等操作,且监控画面清晰流畅。
【关键词】视频监控;iPhone 4;系统服务器;客户端模块
【中图分类号】TN919.8;TP277 【文献标识码】A
Design of Mobile Video Surveillanee Based on iPhone 4
GAO Xiping,ZENG Hao,CHENG Yao
^U
(School ofCommunication,Chongqing University ofPosts and Telecommunication,Chongqing400065,China)
【Abstract】A video surveillance system based on iPhone 4 is given,and the structure and programming of the server and client are introduced.Finally,
after the test,the design works well and can satisfy the demand of mobile’S video surveillance.Users can watch the video and control the pan head by
iPhone 4.The surveillance pictures are clear and smooth.
匈
【Key words】video surveillnce;aiPhone 4;system severr;client module
1 系统介绍
用户同时通过移动网络访问某个交通要道的监控点的情
况。因此移动视频监控系统主要存在两个问题:服务器性
手机视频监控近几年发展非常迅速,手机终端的发展 能不足和网络拥塞 。鉴于此,本设计服务器端采用多
也是非常迅猛,特别是随着iPhone手机的推出,手机进入了
台服务器组成的集群共同提供流媒体服务,其服务器端的
—
个新的时代,用iPhone手机已经成为一种时尚。在这种
架构图如图2所示。
手机视频监控系统可以分为4个层次:前端采集设
趋势下,基于iPhone的软件开发具有很好的市场前景。
备、服务器、移动通信网络、手机终端(iPhone 4)。本文给
出的基于iPhone 4的手机视频监控系统采用C/S(客户
端/服务器)模型,整体的框架图如图1所示。
图2集群式服务器端的架构图
图1 系统框架图
服务器端由3G人口网关服务器、认证服务器、3G流
服务器端和客户端之间采用TCP方式传输数据l1]。
媒体服务器、通信服务器、云台控制服务器等模块组成。
服务器端采用集群式服务器系统的设计架构,根据3G网 1)3G入口网关服务器。系统对外公布的人口地址
P地址。该服务器的主要功能是接收用户
络的状况加入子码流传输和管理。iPhone手机客户端主
是该服务器的I
调用认证服务器的认证功能对用户进行身份
要有用户登录、权限管理和云台控制等功能。客户端基于
的连接请求,
iOS4.3及以上的操作系统,主要完成信令处理、解码上屏
验证,同时取得当前负载最低的流媒体服务器,并利用重
P地址和端口号返回给用
等功能,其中在解码方面客户端会对所有H.264格式的
定向功能将流媒体服务器的I
视频编码流进行统一的解码处理。
户。引人人口网关服务器可以对外屏蔽认证服务器和流
媒体服务器,使得这两个服务器与外界完全隔绝,保证了
系统的安全。主要负责用户认证转发、权限转发信息以及
压力分配的处理。
2服务端的设计
移动视频监控系统的特点是并发量大,会出现很多
48 《电视技术》第36卷第3期(总第378期)I投稿网址h ̄p://www.VideoE.cn
熬
IN RM TER 霪_
音视
它与现有的MPEG-2,MPEG-4及H.263相比,具有
2)认证服务器。功能包括维护当前在线用户列表、
格式,
用户权限认证等用户管理。认证服务器对外提供各种用
明显的优越性,特别是编码效率上的提高,使之能用于许
264格式
户权限认证的功能,比如用户登录认证、流媒体访问权限
多新的领域 ],该系统中的客户端会对所有H.
认证、云台控制权限认证。
的视频编码流进行统一的解码处理。
目前PC平台的H.264解码器比较完善,其中开源的
3)3G流媒体服务器。流媒体服务器是这个系统的
核心,主要功能是为用户提供流媒体的服务。由于一台服
解码器主要包括JM decoder,1264 decoder,x264 decoder,
ibavcodec.Intel IPP simple p|ayer等。但是在
务器无法支持大量用户并发所需的计算能力和网络带宽,
FFmpeg l
Phone OS平台还没有可用的解码器,所以必须对现有PC
系统中设置了多台媒体服务器为用户提供服务。每台流
i
媒体服务器之间相互独立,流媒体服务器与用户之间形成 平台上的解码器进行修改,使之能够在iPhone OS平台上正
一
对多的关系,用户在一次流媒体会话中不能在不同流媒
确运行,即将解码器由PC平台移植至iPhone OS平台 。
体之间进行切换。
FFmpeg是一个集录制、转换、音视频编码解码功能为
4)通信服务器。因为网络摄像机不能满足高并发,
一
体的完整的开源解决方案。FFmpeg的解码流程总的可
无法实现实时的视音频数据的传输。因此通信服务器的
以概括为 ]:打开一个文件后,读取里面的视频流,找到对
功能是接收网络摄像机的音视频数据,然后发给3G流媒
应的解码器并打开,从流中读取帧数据并解码。具体的视
体服务器。
频解码流程如图4所示。
5)云台控制服务器。云台控制服务器的本质是网络
摄像机云台控制服务的代理服务器。云台控制服务器收
到客户端发送的云台控制后,转换成标准的云台控制指
令,然后发动到前端采集设备。
3客户端的设计
从2007年发布至今,苹果手机已经从最早的iPhone
一
代升级到了iPhone 4。iPhone OS是由苹果公司为
iPhone开发的操作系统,iPhone 4采用苹果最新的iPhone
OS 4.0系统。
本系统中手机客户端主要完成解码和上屏、云台控
制的功能 ],由此设计出客户端流媒体播放器的结构如
图3所示。
『I 音频视频播放 l 云台控制f
l
I音视频同步 I
控制信息
数据信息
匿巫
I音视频缓冲区 l
^
l L兰 i封季蕃制1
图4 FFmpeg视频解码流程图
1)初始化libavformat/libavcodec,实现代码为:
『蟮)出 『
av
register all();
这一步注册库中含有的所有可用的文件格式和编码
器,这样当打开一个文件时,它们才能够自动选择相应的
文件格式和编码器。
2)打开文件,实现代码为:
图3流媒体播放器系统结构图
if(av_open input_file(&pFonnatCtx,arsvE1],NULL,0,NULL)!=O)
本系统视频编码采用的是目前最流行的H.264编码
return一1;//Couldnt open file
投稿网址hnp://www.VideoE.cnf《电视技术》第36卷第3期(总第378期)49
I RM 瑚
代码为:
if(av_find_stream_info(pFormatCtx)<0)
return一1;//Couldnt find stream
惠
4 测试
●秘教簟
i F 0匹n i ‘ri
3)从AVFormatContext获取Stream的信息。实现
本文给出的基于iPhone 4的手机视频监控系统的服
务器端和客户端的详细设计,服务器端主要完成的是流媒
体编码和转发,客户端主要完成的是流媒体的解码和上
屏,还能对带有云台的摄像头进行控制,如调焦距、上、下、
左、右的控制。在MAC OS的模拟iPhone平台上,测试中
显示的监控画面如图5所示。
//Get a pointer to the codec context for the video stream
information pCodecCtx=pFormatCtx->streams[videoStream]-->codec:
流中关于编解码器的信息就是“eodec context”(编解
码器上下文)。这里面包含了流中所使用的关于编解码
器的所有信息,现在有了一个指向它的指针,下面要找到
真正的编解码器并且打开它。
4)寻找视频流的解码器并打开它,实现代码为:
//Find the decoder for the video stream
pCodec=avcodee
find
—
deooder(pCodecCtx->codec_id);
if(pCodec==NULL)
{
fprintf(stderr,”Unsupported codec!\n”);
return-1;//Codec not found
图5 测试中显示的监控画面
该视频图像的技术参数是:分辨力为CIF 352×288,
帧率为25 f/s,码率为128 kbit/s。前端网络摄像机的供应
商是大华,通过对前端设备的设置在监控画面上可以显示
视频遮挡、时间、通道号等信息,能满足用户视频查看、云
台控制的基本要求。
}
//Open codec
if(avcodec_open(pCodecCtx.pCodec)<0)
return-1;//Could not open codec
5)为解码帧分配内存,实现代码为:
AVFrame pFrame;
5 小结
本文给出了一套基于iPhone 4的手机视频监控系统
说明。本文设计的基于iPhone 4的手机视频监控系统的
方案,能满足手机用户的视频查看、云台控制的基本需求,
接下来的工作是对手机客户端的功能做进一步的扩展,增
pFrame=avcodec alloc frame();
6)不停地从码流中提取出帧数据,判断帧的类型,对
实现方案,并对系统服务器端和客户端的模块进行了设计
于视频帧调用avcodec_deeode_video()解码,实现代码为:
i=0;
while(av_read_frame(pFormatCtx.&packet)>=0)
{//Is this a packet from the video stream?
if(packet.stream—index==videoStream)
加手动录像、图像抓帧、短信报警等功能。
参考文献:
[1]张万芳,苏鸿根.基于RTP/UDP/IP协议实时传输H.264流媒体文
件[J].计算机工程与设计,2009,17(7):3l一35.
{//Decode video frame
avcodec
_
decode_video(pCodecCtx,pFrame,&frameFinished,
packet.data,packet.size);
}
}
[2]王超.移动视频监控系统的研究与实现[D].杭州:浙江大学,2010.
[3]马杰,田金文,柳键.流媒体技术及其文件格式[J].计算机工程与应
用,2003,9(13):49_52.
7)转换图像格式,实现代码为:
if(frameFinished)
{//Convert the image from its native format to RGB
img
_
[4]杜传赢.Symbian平台移动流媒体播放器的实现与优化[D].厦门:厦
门大学,2008.
convert((AVPicture )pFrmeRGB,PIaX—FMT_RGB24)
}
[5 J尹超超,龙昭华,谢显中.H.264实时视频通信终端的研究与实现
[J].电视技术,2011,35(3):53-56.
◇
因为准备输出保存24位RGB格式的JPEG文件,且
iPhone只支持RGB格式,因此必须把解码后的图像格式
从原来的YUV420转换为RGB格式。
8)解码完后,释放解码器,实现代码为:
aveodec
_
作者简介:
高西萍(1986一),女。硕士生,主要研究方向为移动通信;
曾浩(1964一),副教授,硕士生导师。主要研究方向为移动通信、
close(pCodecCtx); 电工理论和新技术等;
程瑶(1986一)。女,硕士生,主要研究方向为移动通信。
9)关闭输入文件,实现代码为:
av
close
input
file(pFormatCtx);
责任编辑:任健男 收稿日期:2011-09-20
50 《电视技术》第36卷第3期(总第378 Itli)l投稿网址http://www.VideoE.on
2024年8月26日发(作者:茹雪莲)
l RM盯 TER 惠
● 敖■
矿 l f o匹 lnf r
【本文献信息】高西萍,曾浩,程瑶.iPhone 4手机视频监控系统的设计[J].2012,36(3)
iPhone 4手机视频监控系统的设计
高西萍,曾浩,程瑶
(重庆邮电大学通信学院,重庆400065)
【摘要】给出了一套基于iPhone 4的手机视频监控系统方案,详细说明了系统服务器端和客户端的模块设计。经测试,该方案的
设计合理,性能良好,能满足手机视频监控的基本需求,用户能够通过手机进行视频查看、云台控制等操作,且监控画面清晰流畅。
【关键词】视频监控;iPhone 4;系统服务器;客户端模块
【中图分类号】TN919.8;TP277 【文献标识码】A
Design of Mobile Video Surveillanee Based on iPhone 4
GAO Xiping,ZENG Hao,CHENG Yao
^U
(School ofCommunication,Chongqing University ofPosts and Telecommunication,Chongqing400065,China)
【Abstract】A video surveillance system based on iPhone 4 is given,and the structure and programming of the server and client are introduced.Finally,
after the test,the design works well and can satisfy the demand of mobile’S video surveillance.Users can watch the video and control the pan head by
iPhone 4.The surveillance pictures are clear and smooth.
匈
【Key words】video surveillnce;aiPhone 4;system severr;client module
1 系统介绍
用户同时通过移动网络访问某个交通要道的监控点的情
况。因此移动视频监控系统主要存在两个问题:服务器性
手机视频监控近几年发展非常迅速,手机终端的发展 能不足和网络拥塞 。鉴于此,本设计服务器端采用多
也是非常迅猛,特别是随着iPhone手机的推出,手机进入了
台服务器组成的集群共同提供流媒体服务,其服务器端的
—
个新的时代,用iPhone手机已经成为一种时尚。在这种
架构图如图2所示。
手机视频监控系统可以分为4个层次:前端采集设
趋势下,基于iPhone的软件开发具有很好的市场前景。
备、服务器、移动通信网络、手机终端(iPhone 4)。本文给
出的基于iPhone 4的手机视频监控系统采用C/S(客户
端/服务器)模型,整体的框架图如图1所示。
图2集群式服务器端的架构图
图1 系统框架图
服务器端由3G人口网关服务器、认证服务器、3G流
服务器端和客户端之间采用TCP方式传输数据l1]。
媒体服务器、通信服务器、云台控制服务器等模块组成。
服务器端采用集群式服务器系统的设计架构,根据3G网 1)3G入口网关服务器。系统对外公布的人口地址
P地址。该服务器的主要功能是接收用户
络的状况加入子码流传输和管理。iPhone手机客户端主
是该服务器的I
调用认证服务器的认证功能对用户进行身份
要有用户登录、权限管理和云台控制等功能。客户端基于
的连接请求,
iOS4.3及以上的操作系统,主要完成信令处理、解码上屏
验证,同时取得当前负载最低的流媒体服务器,并利用重
P地址和端口号返回给用
等功能,其中在解码方面客户端会对所有H.264格式的
定向功能将流媒体服务器的I
视频编码流进行统一的解码处理。
户。引人人口网关服务器可以对外屏蔽认证服务器和流
媒体服务器,使得这两个服务器与外界完全隔绝,保证了
系统的安全。主要负责用户认证转发、权限转发信息以及
压力分配的处理。
2服务端的设计
移动视频监控系统的特点是并发量大,会出现很多
48 《电视技术》第36卷第3期(总第378期)I投稿网址h ̄p://www.VideoE.cn
熬
IN RM TER 霪_
音视
它与现有的MPEG-2,MPEG-4及H.263相比,具有
2)认证服务器。功能包括维护当前在线用户列表、
格式,
用户权限认证等用户管理。认证服务器对外提供各种用
明显的优越性,特别是编码效率上的提高,使之能用于许
264格式
户权限认证的功能,比如用户登录认证、流媒体访问权限
多新的领域 ],该系统中的客户端会对所有H.
认证、云台控制权限认证。
的视频编码流进行统一的解码处理。
目前PC平台的H.264解码器比较完善,其中开源的
3)3G流媒体服务器。流媒体服务器是这个系统的
核心,主要功能是为用户提供流媒体的服务。由于一台服
解码器主要包括JM decoder,1264 decoder,x264 decoder,
ibavcodec.Intel IPP simple p|ayer等。但是在
务器无法支持大量用户并发所需的计算能力和网络带宽,
FFmpeg l
Phone OS平台还没有可用的解码器,所以必须对现有PC
系统中设置了多台媒体服务器为用户提供服务。每台流
i
媒体服务器之间相互独立,流媒体服务器与用户之间形成 平台上的解码器进行修改,使之能够在iPhone OS平台上正
一
对多的关系,用户在一次流媒体会话中不能在不同流媒
确运行,即将解码器由PC平台移植至iPhone OS平台 。
体之间进行切换。
FFmpeg是一个集录制、转换、音视频编码解码功能为
4)通信服务器。因为网络摄像机不能满足高并发,
一
体的完整的开源解决方案。FFmpeg的解码流程总的可
无法实现实时的视音频数据的传输。因此通信服务器的
以概括为 ]:打开一个文件后,读取里面的视频流,找到对
功能是接收网络摄像机的音视频数据,然后发给3G流媒
应的解码器并打开,从流中读取帧数据并解码。具体的视
体服务器。
频解码流程如图4所示。
5)云台控制服务器。云台控制服务器的本质是网络
摄像机云台控制服务的代理服务器。云台控制服务器收
到客户端发送的云台控制后,转换成标准的云台控制指
令,然后发动到前端采集设备。
3客户端的设计
从2007年发布至今,苹果手机已经从最早的iPhone
一
代升级到了iPhone 4。iPhone OS是由苹果公司为
iPhone开发的操作系统,iPhone 4采用苹果最新的iPhone
OS 4.0系统。
本系统中手机客户端主要完成解码和上屏、云台控
制的功能 ],由此设计出客户端流媒体播放器的结构如
图3所示。
『I 音频视频播放 l 云台控制f
l
I音视频同步 I
控制信息
数据信息
匿巫
I音视频缓冲区 l
^
l L兰 i封季蕃制1
图4 FFmpeg视频解码流程图
1)初始化libavformat/libavcodec,实现代码为:
『蟮)出 『
av
register all();
这一步注册库中含有的所有可用的文件格式和编码
器,这样当打开一个文件时,它们才能够自动选择相应的
文件格式和编码器。
2)打开文件,实现代码为:
图3流媒体播放器系统结构图
if(av_open input_file(&pFonnatCtx,arsvE1],NULL,0,NULL)!=O)
本系统视频编码采用的是目前最流行的H.264编码
return一1;//Couldnt open file
投稿网址hnp://www.VideoE.cnf《电视技术》第36卷第3期(总第378期)49
I RM 瑚
代码为:
if(av_find_stream_info(pFormatCtx)<0)
return一1;//Couldnt find stream
惠
4 测试
●秘教簟
i F 0匹n i ‘ri
3)从AVFormatContext获取Stream的信息。实现
本文给出的基于iPhone 4的手机视频监控系统的服
务器端和客户端的详细设计,服务器端主要完成的是流媒
体编码和转发,客户端主要完成的是流媒体的解码和上
屏,还能对带有云台的摄像头进行控制,如调焦距、上、下、
左、右的控制。在MAC OS的模拟iPhone平台上,测试中
显示的监控画面如图5所示。
//Get a pointer to the codec context for the video stream
information pCodecCtx=pFormatCtx->streams[videoStream]-->codec:
流中关于编解码器的信息就是“eodec context”(编解
码器上下文)。这里面包含了流中所使用的关于编解码
器的所有信息,现在有了一个指向它的指针,下面要找到
真正的编解码器并且打开它。
4)寻找视频流的解码器并打开它,实现代码为:
//Find the decoder for the video stream
pCodec=avcodee
find
—
deooder(pCodecCtx->codec_id);
if(pCodec==NULL)
{
fprintf(stderr,”Unsupported codec!\n”);
return-1;//Codec not found
图5 测试中显示的监控画面
该视频图像的技术参数是:分辨力为CIF 352×288,
帧率为25 f/s,码率为128 kbit/s。前端网络摄像机的供应
商是大华,通过对前端设备的设置在监控画面上可以显示
视频遮挡、时间、通道号等信息,能满足用户视频查看、云
台控制的基本要求。
}
//Open codec
if(avcodec_open(pCodecCtx.pCodec)<0)
return-1;//Could not open codec
5)为解码帧分配内存,实现代码为:
AVFrame pFrame;
5 小结
本文给出了一套基于iPhone 4的手机视频监控系统
说明。本文设计的基于iPhone 4的手机视频监控系统的
方案,能满足手机用户的视频查看、云台控制的基本需求,
接下来的工作是对手机客户端的功能做进一步的扩展,增
pFrame=avcodec alloc frame();
6)不停地从码流中提取出帧数据,判断帧的类型,对
实现方案,并对系统服务器端和客户端的模块进行了设计
于视频帧调用avcodec_deeode_video()解码,实现代码为:
i=0;
while(av_read_frame(pFormatCtx.&packet)>=0)
{//Is this a packet from the video stream?
if(packet.stream—index==videoStream)
加手动录像、图像抓帧、短信报警等功能。
参考文献:
[1]张万芳,苏鸿根.基于RTP/UDP/IP协议实时传输H.264流媒体文
件[J].计算机工程与设计,2009,17(7):3l一35.
{//Decode video frame
avcodec
_
decode_video(pCodecCtx,pFrame,&frameFinished,
packet.data,packet.size);
}
}
[2]王超.移动视频监控系统的研究与实现[D].杭州:浙江大学,2010.
[3]马杰,田金文,柳键.流媒体技术及其文件格式[J].计算机工程与应
用,2003,9(13):49_52.
7)转换图像格式,实现代码为:
if(frameFinished)
{//Convert the image from its native format to RGB
img
_
[4]杜传赢.Symbian平台移动流媒体播放器的实现与优化[D].厦门:厦
门大学,2008.
convert((AVPicture )pFrmeRGB,PIaX—FMT_RGB24)
}
[5 J尹超超,龙昭华,谢显中.H.264实时视频通信终端的研究与实现
[J].电视技术,2011,35(3):53-56.
◇
因为准备输出保存24位RGB格式的JPEG文件,且
iPhone只支持RGB格式,因此必须把解码后的图像格式
从原来的YUV420转换为RGB格式。
8)解码完后,释放解码器,实现代码为:
aveodec
_
作者简介:
高西萍(1986一),女。硕士生,主要研究方向为移动通信;
曾浩(1964一),副教授,硕士生导师。主要研究方向为移动通信、
close(pCodecCtx); 电工理论和新技术等;
程瑶(1986一)。女,硕士生,主要研究方向为移动通信。
9)关闭输入文件,实现代码为:
av
close
input
file(pFormatCtx);
责任编辑:任健男 收稿日期:2011-09-20
50 《电视技术》第36卷第3期(总第378 Itli)l投稿网址http://www.VideoE.on