рдЪреБрдирд╛рд╡реЛрдВ рдореЗрдВ рдХреИрдорд░реЛрдВ рд╕реЗ рдмреБрд▓ рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ

рдЪреЗрддрд╛рд╡рдиреАред рд╣рдмрд░ - рд░рд╛рдЬрдиреАрддрд┐ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВред рдХреГрдкрдпрд╛ рдЗрд╕реЗ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рдЪрд░реНрдЪрд╛ рдХрд░рдиреЗ рд╕реЗ рдмрдЪрдирд╛ рдЪрд╛рд╣рд┐рдПред
рд░реВрд╕ рдореЗрдВ рдкрд╣рд▓реЗ рдЪреБрдирд╛рд╡реЛрдВ рдХреА рдкреНрд░рддреНрдпрд╛рд╢рд╛ рдореЗрдВ, рдЬрд┐рд╕рдХреЗ рджреМрд░рд╛рди рд╕рднреА рдорддрджрд╛рди рдХреЗрдВрджреНрд░ рд╡реЗрдмрдХреИрдо рд╕реЗ рд▓реИрд╕ рдереЗ, рдХрдИ рдиреЗ рдХреИрдорд░реЗ рдХреЗ рд▓рд┐рдП рдЦреБрдж рд╕реЗ рд╡реАрдбрд┐рдпреЛ рд░рд┐рдХреЙрд░реНрдб рдХрд░рдиреЗ рдХреА рдЗрдЪреНрдЫрд╛ рд╡реНрдпрдХреНрдд рдХреАред рдЗрд╕рдХреЗ рд▓рд┐рдП, FRAPS рджреНрд╡рд╛рд░рд╛ рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рд╕реЗ рд▓реЗрдХрд░ ffmpeg рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдЖрджрд┐ рдХреЗ рд▓рд┐рдП рдХрдИ рддрд░рд╣ рдХреЗ рд╕рдорд╛рдзрд╛рди рдкреЗрд╢ рдХрд┐рдП рдЧрдПред рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, рд╕рдмрд╕реЗ рд╕рдлрд▓, рдХреНрд╡рд░реНрдЯреЛрд╡реНрд╕реНрдХреА рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдереА, рдЬрд┐рд╕реЗ рдпрд╣рд╛рдВ рдкреЛрд╕реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛
рдЗрд╕ рдЫреЛрдЯреЗ рд╕реЗ рд╡рд┐рд╖рдп рдореЗрдВ, рдореИрдВ рдЕрдкрдиреЗ рд╕рдорд╛рдзрд╛рди рдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ рдФрд░ рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рдпрд╛рдж рдХрд░реВрдВрдЧрд╛ рдХрд┐ рдкреВрд░реА рдкреНрд░рдгрд╛рд▓реА рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддреА рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдХрд▓ рд╕реЗ рд╕рдВрд╕рджреАрдп рдЪреБрдирд╛рд╡ рдпреВрдХреНрд░реЗрди рдореЗрдВ рд╣реЛрдВрдЧреЗ, рдЬрд┐рд╕реЗ рдХреЛрдИ рднреА vybory2012.gov.ua рдкрд░ рджреЗрдЦ рд╕рдХрддрд╛ рд╣реИред


рддреЛ рдЖрдкрдХреЛ рдХреНрдпрд╛ рдкрддрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП:
рдкреНрд░рддреНрдпреЗрдХ рдХреИрдорд░реЗ рдХреЗ рд▓рд┐рдП, рдкреНрд░рддреНрдпреЗрдХ 15 рд╕реЗрдХрдВрдб рдореЗрдВ рдПрдХ рддрд╛рдЬрд╝рд╛ рдкреНрд▓реЗрд▓рд┐рд╕реНрдЯ рддреИрдпрд╛рд░ рдХреА рдЬрд╛рддреА рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд╡реАрдбрд┐рдпреЛ рдХреЗ рдЕрдВрддрд┐рдо 4 рдЯреБрдХрдбрд╝реЛрдВ рдХреЗ рд▓рд┐рдП рд╕реАрдзреЗ рд▓рд┐рдВрдХ рд╣реЛрддреЗ рд╣реИрдВ, рдкреНрд░рддреНрдпреЗрдХ рдЯреБрдХрдбрд╝реЗ рдХреА рдЕрд╡рдзрд┐ 15 рд╕реЗрдХрдВрдб рд╣реЛрддреА рд╣реИред рддрджрдиреБрд╕рд╛рд░, рдПрдХ рдорд┐рдирдЯ рдореЗрдВ рдПрдХ рдмрд╛рд░ рдкреНрд▓реЗрд▓рд┐рд╕реНрдЯ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрдкрдбреЗрдЯ рд╣реЛ рдЬрд╛рддреА рд╣реИ, рдФрд░ рдХреБрдЫ рд╕рдордп рдХреЗ рд▓рд┐рдП рд╡рд┐рдЦрдВрдбрди рдЙрдкрд▓рдмреНрдз рд░рд╣рддрд╛ рд╣реИред
рдкреНрд▓реЗрд▓рд┐рд╕реНрдЯ рдХреЛ рдХрдИ рд╕рд░реНрд╡рд░реЛрдВ рдкрд░ рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬреЛ рдлреЙрд░реНрдо http: // server /variant.m3u8?cid= uid & var = Origin рдХреЗ рд▓рд┐рдВрдХ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЙрдкрд▓рдмреНрдз рд╣реИ рдФрд░ рдпрд╣ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:
#EXTM3U #EXT-X-MEDIA-SEQUENCE:6885 #EXT-X-TARGETDURATION:15 #EXT-X-ALLOW-CACHE:NO #EXT-X-PROGRAM-DATE-TIME:2012-10-27T11:02:08Z #EXTINF:13, /segment.ts?cid=f0ffd596-aaa6-4601-9432-70d717dd666a&var=orig&ts=1351335728.24-1351335741.20 #EXTINF:11, /segment.ts?cid=f0ffd596-aaa6-4601-9432-70d717dd666a&var=orig&ts=1351335741.20-1351335752.28 #EXTINF:11, /segment.ts?cid=f0ffd596-aaa6-4601-9432-70d717dd666a&var=orig&ts=1351335752.28-1351335763.40 #EXTINF:14, /segment.ts?cid=f0ffd596-aaa6-4601-9432-70d717dd666a&var=orig&ts=1351335763.40-1351335776.92 #EXTINF:11, /segment.ts?cid=f0ffd596-aaa6-4601-9432-70d717dd666a&var=orig&ts=1351335776.92-1351335788.36 

рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдкреНрд░рдкрддреНрд░ /segment.ts?cid= f0ffd596-aaa6-4601-9432-70d717dd666a рдФрд░ var = Origin & ts = 1351335728.24-135735741.20.20 рдХрд╛ рд▓рд┐рдВрдХ рдХреИрдорд░рд╛ f0ffd596-aaa-aa6-466-aa6-a6-66-a6-a6-a6-a6-a6-a6-a6-a6-a6-a6-w6-a6-a6-w6-a6 & hl = hi рдкрд░ рдЖ рдЧрдпрд╛ рд╣реИред рдЬрдЯрд┐рд▓ рдпреВрдирд┐рдХреНрд╕ рд╕рдордп рдкреНрд░рд╛рд░реВрдкред
рд╕рдордп-рд╕рдордп рдкрд░, рдПрдХ рдмрд╛рд░, рдПрдХ рдмрд╛рд░ рдкреНрд▓реЗрд▓рд┐рд╕реНрдЯ рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рдиреЗ рдФрд░ рд╕рднреА рдЙрдкрд▓рдмреНрдз рдЯреБрдХрдбрд╝реЛрдВ рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рд╕реЗ рд╣рдореЗрдВ рдХреИрдорд░реЗ рд╕реЗ рдЕрдзрд┐рдХрддрдо рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рд╣реЛрдЧреА, рдЙрди рдХреНрд╖рдгреЛрдВ рдХреЛ рдЫреЛрдбрд╝рдХрд░ рдЬрдм рдХреИрдорд░реЗ рдХреА рддрд░рдл рдЗрдВрдЯрд░рдиреЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЧрд╛рдпрдм рд╣реЛ рдЬрд╛рдПрдЧрд╛ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХреБрдЫ рдЗрд╕ рддрд░рд╣:
 # -*- coding: utf-8 -*- # vybory2012 (Proof of concept), yegorov-p import urllib import os from time import strftime, localtime, sleep import socket import threading #  syslog,     syslog_server='127.0.0.1' syslog_port=514 # ,     directory='dumps' #  id ,     ,     cams=[ ['563-1', "f0ffd596-aaa6-4601-9432-70d717dd666a",["82.207.0.3","82.207.0.3","82.207.0.3"]] ] #    LEVEL = { 'emerg': 0, 'alert':1, 'crit': 2, 'err': 3, 'warning': 4, 'notice': 5, 'info': 6, 'debug': 7 } #,   .  ,  =( def syslog(message, level=LEVEL['notice'], host=syslog_server, port=syslog_port): sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) data = '<%d>%s' % (level + 24, message) sock.sendto(data, (host, port)) sock.close() #  def cam_rip(num,hash,servers): syslog('Recording cam %s at %s'%(hash, num), level=LEVEL['info']) try: os.mkdir('./%s/%s'%(directory,num)) except: pass #   while 1: try: server=servers[0] #   page = urllib.urlopen("http://%s/variant.m3u8?cid=%s&var=orig"%(server,hash)).read() #  ,         if '/segment' in page: for i in page.split('\n'): if '/segment' in i: filename=strftime("%d-%b-%H-%M-%S", localtime(int(i[-13:-3]))) f=open('./%s/%s/%s.ts'%(directory,num,filename),'wb') #syslog('Chunk %s saved'%(filename), level=LEVEL['notice']) f.write(urllib.urlopen("http://%s%s"%(server,i)).read()) f.close() else: #          syslog('No signal!Rotating server on cam %s at %s'%(hash,num), level=LEVEL['err']) servers.append(servers[0]) del servers[0] sleep(60) except Exception,e: syslog('Error on cam %s: %s'%(hash,e), level=LEVEL['err']) servers.append(servers[0]) del servers[0] try: os.mkdir(directory) except: pass #       for i in cams: threading.Thread(target=cam_rip, kwargs={"num": i[0],"hash": i[1],"servers": i[2]}).start() sleep(1) syslog('System started.', level=LEVEL['notice']) 


рд╣рдо рдЗрд╕ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдЪрд▓рд╛рддреЗ рд╣реИрдВ, рдпрд╣ рд╕рдВрдХреЗрдд рджреЗрддрд╛ рд╣реИ рдХрд┐ рдЪреЛрдВрд╕ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдлрд╝реЛрд▓реНрдбрд░ рдФрд░, рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реВрдк рд╕реЗ, рдЙрд╕ syslog рд╕рд░реНрд╡рд░ рдХрд╛ рдкрддрд╛ рдЬрд╣рд╛рдВ рд╕рднреА рд╡рд░реНрддрдорд╛рди рдЬрд╛рдирдХрд╛рд░реА рдбрд╛рд▓реА рдЬрд╛рдПрдЧреАред
рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╣рдордиреЗ рдПрдХ рдмрд┐рдВрджреБ рдХреЛ рдирдЬрд░рдЕрдВрджрд╛рдЬ рдХрд░ рджрд┐рдпрд╛ - рдЬрд╣рд╛рдВ рдкреНрд▓реЗрд▓рд┐рд╕реНрдЯ рдФрд░ рд╕рд░реНрд╡рд░ рдФрд░ рдХреИрдорд░рд╛ рдЖрдИрдбреА рдХреЗ рд▓рд┐рдП рд╕реНрд░реЛрдд рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рд╣реИ? рдпрд╣ рдПрдХ рдЫреЛрдЯреЗ рд╕реЗ рд╡рд┐рд╖рдпрд╛рдВрддрд░ рдХрд░рдиреЗ рд▓рд╛рдпрдХ рд╣реИред рд░реВрд╕ рдореЗрдВ рдЪреБрдирд╛рд╡реЛрдВ рдореЗрдВ рдЗрд╕ рдкреНрд░рдгрд╛рд▓реА рдХрд╛ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдЙрдкрд░реЛрдХреНрдд рдЕрдЬрдЧрд░ рд▓рд┐рдкрд┐ рдХреА рдорджрдж рд╕реЗ, рдореИрдВ рдЕрдкрдиреЗ рд╢рд╣рд░ рдореЗрдВ рд╕рднреА рдХреИрдорд░реЛрдВ рдХреЛ рд░рд┐рдХреЙрд░реНрдб рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдерд╛ред рд╣рд╛рд▓рд╛рдБрдХрд┐, рддрдм рд╕реЗ рдЗрдВрдЬрди рдореЗрдВ рдХреБрдЫ рдмрджрд▓рд╛рд╡ рд╣реБрдП рд╣реИрдВред рдкрд╣рд▓реЗ, рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рдбреЗрдЯрд╛ рдХреЛ рд▓реЙрдЧ рдЗрди рдХрд┐рдП рдмрд┐рдирд╛ рднреА рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рдерд╛ред рдЕрдм рдЖрдкрдХреЛ рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдХреИрдорд░реЗ рдХреЛ рдЕрдкрдиреЗ рдкрд╕рдВрджреАрджрд╛ рдореЗрдВ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рдХреИрдорд░рд╛ рд╣реИрд╢ рдФрд░ рд╕рд░реНрд╡рд░ рдЖрдИрдкреА рдкрддреЗ рдХреЗ рд╕рд╛рде рдПрдХ рдлрд╝рд╛рдЗрд▓ рдЖрдкрдХреЗ рдЦрд╛рддреЗ / рдЪреИрдирд▓реЛрдВ рдкрд░ рдЙрдкрд▓рдмреНрдз рд╣реЛрдЧреА? рд╕реНрдЯреЗрд╢рди_рдЖрдИрдбреА = рд╕реАрдЖрдИрдбреА (рдЬрд╣рд╛рдВ рд╕реАрдЖрдИрдбреА тАЛтАЛрдХреИрдорд░рд╛ рдЖрдИрдбреА рд╣реИ)ред рджреЛрдкрд╣рд░ рдХреЗ рд▓рдЧрднрдЧ рджреЛ рдмрдЬреЗ, рдореИрдВрдиреЗ рдПрдХ рдкреВрд░рд╛ рд╣реИрд╢ рдбреЗрдЯрд╛рдмреЗрд╕ рдЗрдХрдЯреНрдард╛ рдХрд░рдиреЗ рдФрд░ рдЗрд╕реЗ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд░реВрдк рд╕реЗ рдбрд╛рд▓рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛, рд▓реЗрдХрд┐рди рдЕрдм рд╕рд░реНрд╡рд░, рдореБрдЦреНрдп рд▓реЛрдб рд╕реЗ рдкрд╣рд▓реЗ рднреА, рд╕рдордп-рд╕рдордп рдкрд░ 502 рддреНрд░реБрдЯрд┐рдпрд╛рдВ рдлреЗрдВрдХрддреЗ рд╣реИрдВ, рдЬреЛ рдХрд┐ 32,184 рдЦрдВрдбреЛрдВ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ = рдХреЛ рдЬрдЯрд┐рд▓ рдХрд░рддрд╛ рд╣реИ, рд╣реИрд╢ рд▓рдЧрднрдЧ 5,000 рд╕реЗ рдЙрдкрд▓рдмреНрдз рд╣реИ, рдФрд░ рдереЛрдбрд╝рд╛ рдХрдо рдХрд░рдХреЗред рдпрд╣ рдЖрдВрдХрдбрд╝рд╛ рдмрдврд╝ рд░рд╣рд╛ рд╣реИред рд╡рд░реНрддрдорд╛рди рдбреЗрдЯрд╛
рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рд╡рд░реНрддрдорд╛рди рдбреЗрдЯрд╛ рд╡рд╛рдВрдЫрд┐рдд рдХреИрдорд░рд╛ рдЦреЛрд▓рдХрд░ рдФрд░ Firebug рдпрд╛ рдЗрд╕рдХреЗ рд╕рдордХрдХреНрд╖реЛрдВ рдореЗрдВ CorePlayer.instances.core_player_1.source.origin рдЪрд▓рд╛рдХрд░ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рд╡рд░реНрддрдорд╛рди рд╕рд░реНрд╡рд░ рд╣реА рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХреЗрдЧрд╛ (рдФрд░ рдпрд╣ рдЧрд┐рд░ рдЬрд╛рдПрдЧрд╛, рд░реВрд╕реА рдЪреБрдирд╛рд╡реЛрдВ рдХреЗ рдЕрдиреБрднрд╡ рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП)ред

рдлрд┐рд▓рд╣рд╛рд▓, рдХреИрдорд░реЛрдВ рдкрд░ рдкреНрд▓рдЧ рджрд┐рдЦрд╛рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдЬрд╛рд╣рд┐рд░ рд╣реИ рдХрд┐ рдпреВрдХреНрд░реЗрдиреА рд╕рд╣рдпреЛрдЧрд┐рдпреЛрдВ рдиреЗ рд░реВрд╕реА рдЕрдиреБрднрд╡ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрд╛, рдФрд░ рд╕реНрдХреВрд▓реЛрдВ, рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдФрд░ рдЫрд╛рддреНрд░рд╛рд╡рд╛рд╕реЛрдВ рдХреЗ рд░реЛрдЬрдорд░реНрд░рд╛ рдХреЗ рдЬреАрд╡рди рдХреЛ рдирд╣реАрдВ рджрд┐рдЦрд╛рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред
UPD 7:50 MSK: 99% рдХреИрдорд░реЛрдВ рдкрд░ рдбреЗрдЯрд╛ рдПрдХрддреНрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ред рдХреИрдорд░реЛрдВ рд╕реЗ рдЪрд┐рддреНрд░ рдЪрд▓рд╛ рдЧрдпрд╛ рд╣реИ, рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдкреВрд░реНрдг рд╣реЛрддреА рд╣реИред

Source: https://habr.com/ru/post/In156417/


All Articles