python从Mjpg-streamer中取出一张jpg照片

来源:互联网 发布:闪电抢购软件怎么样 编辑:程序博客网 时间:2024/05/18 01:39
#!/usr/bin/env python# encoding=utf-8import time#导入定时import urllib2#导入urlimport re#导入正则import commands#导入调用shell命令模块def mjpg_jpg():commands.getstatusoutput('/etc/init.d/mjpg-streamer start')#开启mjpg-streamer进程a = commands.getstatusoutput('ps')print atime.sleep(1)#延时req = urllib2.urlopen("http://192.168.1.1:8080/?action=stream")buf = req.read(71)#取出包含jpg长度的信息头a = "\d+"#设置匹配规则取出jpg数据长度m = re.findall(a,buf)#正则取出print "jpg0:",m#打印出来看看buf_1 = req.read(27)#取出mjpeg包含运行时间数据,没用扔掉if len(m) > 0:jpg_s0 = int(m[0])#jpg长度转intjpg0 = req.read(jpg_s0)        #取出jpg数据l = req.read(3)#垃圾扔掉buf = req.read(71)a = "\d+"m = re.findall(a,buf)print "jpg1:", mbuf_1 = req.read(27)if len(m) > 0:jpg_s1 = int(m[0])jpg1 = req.read(jpg_s1)l = req.read(3)buf = req.read(71)a = "\d+"m = re.findall(a,buf)print "jpg2:",mbuf_1 = req.read(27)if len(m) > 0:jpg_s2 = int(m[0])jpg2 = req.read(jpg_s2)l = req.read(3)buf = req.read(71)a = "\d+"m = re.findall(a,buf)print "jpg3:",mbuf_1 = req.read(27)if len(m) > 0:jpg_s3 = int(m[0])jpg3 = req.read(jpg_s3)l = req.read(3)buf = req.read(71)a = "\d+"m = re.findall(a,buf)print "jpg4:",mbuf_1 = req.read(27)if len(m) > 0:jpg_s4 = int(m[0])jpg4 = req.read(jpg_s4)l = req.read(3)#下面部分比列表中哪帧数据最大就用哪张jpg_list = [jpg_s0,jpg_s1,jpg_s2,jpg_s3,jpg_s4]aa = 0for i in jpg_list:if i>aa:aa = iif len(jpg0)==aa:jpg = jpg0elif len(jpg1)==aa:jpg = jpg1elif len(jpg2)==aa:jpg = jpg2elif len(jpg3)==aa:jpg = jpg3elif len(jpg4)==aa:jpg = jpg4print aaprint jpg_s0,jpg_s1,jpg_s2,jpg_s3,jpg_s4#上面############下面这部分将jpg写入以时间命名的文件名b = time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time()))c = b+".jpg"print cfp = open(c,"w")fp.write(jpg)fp.close()commands.getstatusoutput('/etc/init.d/mjpg-streamer stop')#关闭mjpg-streamer进程a = commands.getstatusoutput('ps')print aif __name__ == '__main__':mjpg_jpg()#time.sleep(0.5)#延时0.5秒,防止占用cpu资源

0 0
原创粉丝点击