рдЖрдИрдкреАрдЯреАрд╡реА рдХреА рдирд┐рдЧрд░рд╛рдиреА

рдорд▓реНрдЯреАрдХрд╛рд╕реНрдЯ рдзрд╛рд░рд╛рдУрдВ рдкрд░ рдирдЬрд░ рд░рдЦрдиреЗ рдХреА рдЬрд░реВрд░рдд рдереАред рддреИрдпрд╛рд░ рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХреА рддрд▓рд╛рд╢ рд╢реБрд░реВ рд╣реБрдИред рдкрд╣рд▓реА рдЪреАрдЬрд╝ рдЬреЛ рд╣рдо Google рдореЗрдВ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рддреЗ рд╣реИрдВ: IPTV- рд╡рд┐рд╢реНрд▓реЗрд╖рдХ , NetUP IPTVProbe ред рдкреНрд░рддреНрдпреЗрдХ рд╕рдорд╛рдзрд╛рди рдХреА рдЕрдкрдиреА рдЦрд╛рдорд┐рдпрд╛рдВ рдереАрдВ рдпрд╛ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдкреИрд╕реЗ рдЦрд░реНрдЪ рд╣реБрдПред рдЕрдкрдиреА рдирд┐рдЧрд░рд╛рдиреА рд╕реНрд╡рдпрдВ рдмрдирд╛рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рдЧрдпрд╛ред рдорд▓реНрдЯреАрдХрд╛рд╕реНрдЯ рд╕реНрдЯреНрд░реАрдо рдХреЗ рдкрддрди рдХреЛ рдЕрдзрд┐рд╕реВрдЪрд┐рдд рдФрд░ рд▓реЙрдЧ рдХрд░рдирд╛ рдореБрдЦреНрдп рдХрд╛рд░реНрдп рд╣реИред

рддрдВрддреНрд░:
Ffmpeg рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╣рдо NN рд╕рдордп рдХреЗ рд▓рд┐рдП рд╕реНрдЯреНрд░реАрдо рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рддреЗ рд╣реИрдВ, рдлрд╝реНрд░реЗрдо NN рд╕реЗрдХрдВрдб рд╕реЗ рд▓реЗрдирд╛ рд╢реБрд░реВ рдХрд░рддрд╛ рд╣реИ рддрд╛рдХрд┐ рдЪрд┐рддреНрд░ рдореЗрдВ рдХреЛрдИ рдХрд▓рд╛рдХреГрддрд┐рдпрд╛рдБ рди рд╣реЛрдВред рдпрджрд┐ рдПрдирдПрди рд╕реЗрдХрдВрдб рдХреЗ рднреАрддрд░ рдХреБрдЫ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИ, рддреЛ рд╣рдо рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдПрдХ рд╡рд╛рдкрд╕реА рддреНрд░реБрдЯрд┐ рдХреЗ рд╕рд╛рде рд▓рд┐рдЦрддреЗ рд╣реИрдВред рд╕рдм рдХреБрдЫ рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИред

рд╣рдо рдореБрдЦреНрдп рдШрдЯрдХ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдЧреЗ рдмрдврд╝рддреЗ рд╣реИрдВ:
sudo apt-get install apache2 php5 mysql-server libapache2-mod-php5 libapache2-mod-auth-mysql php5-mysql ffmpeg

рдПрдкрд╛рдЪреЗ - рд╡реЗрдм рдЗрдВрдЯрд░рдлреЗрд╕ рдХреЗ рд▓рд┐рдПред
mysql - рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рд╣рдо рдЖрдВрдХрдбрд╝реЛрдВ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдбреЗрдЯрд╛, рдФрд░ рдЪреИрдирд▓реЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░реЗрдВрдЧреЗред
ffmpeg - рд╣рдореЗрдВ рдорд▓реНрдЯреАрдХрд╛рд╕реНрдЯ рд╕реНрдЯреНрд░реАрдо рд╕реЗ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рд▓реЗрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред

рдореБрдЦреНрдп рдШрдЯрдХ рд╕реНрдерд╛рдкрд┐рдд рд╣реИрдВ, рдЪрд▓реЛ рд╢реБрд░реВ рдХрд░реЗрдВред

рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ (рдбрд┐рдлрд╝реЙрд▓реНрдЯ apache2 / var / www /), рдбреЗрдЯрд╛рдмреЗрд╕ рдХрдиреЗрдХреНрд╢рди рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЗ рд╕рд╛рде dbinit.php рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдПрдБ:

 <?php $dbhost = "localhost"; $dbname = "name"; $dbuser = "user"; $dbpass = "password"; mysql_connect($dbhost, $dbuser, $dbpass); mysql_query("set character_set_client='utf8'"); mysql_query("set character_set_results='utf8'"); mysql_query("set collation_connection='utf8_general_ci'"); mysql_select_db($dbname); ?> 


рдЖрдзрд╛рд░ рд╕рдВрд░рдЪрдирд╛:
рджрд┐рдирд╛рдВрдХ - TIMESTAMP (рджрд┐рдирд╛рдВрдХ рдЪреИрдирд▓ рдЧрд┐рд░ рдЧрдпрд╛ рдпрд╛ рдЙрдард╛рдпрд╛ рдЧрдпрд╛ рдерд╛)
рдирд╛рдо - рдкрд╛рда (рдЪреИрдирд▓ рдирд╛рдо)
рд░рд╛рдЬреНрдп - рдкрд╛рда (рд░рд╛рдЬреНрдп: рд╕рддреНрдп-рдЕрдк, рдЧрд▓рдд-рдбрд╛рдЙрди)

рдЪреИрдирд▓ рдХрдм рддрдХ рдбрд╛рдЙрди рд░рд╣рд╛, рдЗрд╕рдХреА рдЖрдЧреЗ рдХреА рдЧрдгрдирд╛ рдХреЗ рд▓рд┐рдП рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рд╣реИред

рд╣рдо рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдмрдирд╛рддреЗ рд╣реИрдВ рдЬреЛ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдФрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдЪреИрдирд▓реЛрдВ рдХреА "рдирд┐рдЧрд░рд╛рдиреА" рдХрд░реЗрдЧреАред
рдЪрд▓реЛ рдЗрд╕реЗ gen.php рдХрд╣рддреЗ рд╣реИрдВ

 <?php include "dbinit.php"; $query = "SELECT * FROM `name`"; $result = mysql_query($query); if (!$result) { print "<center>:" . mysql_error() . "</center>"; } elseif (mysql_num_rows($result) == 0) { print ""; } else { $rows = array(); while ($row = mysql_fetch_assoc($result)) { $rows[]= $row; } foreach($rows as $row) { echo exec('/usr/bin/timeout 20s /usr/bin/time -f %U -o /var/www/tmp/'.$row['name'].'.txt /usr/bin/ffmpeg -i udp://@'.$row['mcast'].' -y -f image2 -sameq -t 0.001 -ss 00:00:4 -s 120*80 /var/www/screen/'.$row['mcast'].'.jpg'); echo exec('/bin/cp -f /var/www/tmp/'.$row['mcast'].'.txt /var/www/rez/'); } ?> 

рдЖрдЗрдП рд╣рдо рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд╛рдЗрдиреЛрдВ рдкрд░ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред
рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдирд┐рд╖реНрдкрд╛рджрди рдЯрд╛рдЗрдордЖрдЙрдЯ (рдЯрд╛рдЗрдордЖрдЙрдЯ 20s) рд╕реЗрдЯ рдХрд░реЗрдВ, рдпрджрд┐ рдЪреИрдирд▓ рдЕрдиреБрдкрд▓рдмреНрдз рд╣реИ, рддреЛ рдпрд╣ рдмрд╣реБрдд рд▓рдВрдмреЗ рд╕рдордп рддрдХ рд▓рдЯрдХрд╛ рд░рд╣реЗрдЧрд╛ред
рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рд▓реЗрдиреЗ рдХрд╛ рд╕рдордп рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ:
  /usr/bin/time -f %U -o /var/www/tmp/'.$row['name'].'.txt 

рд╣рдЯрд╛рдиреЗ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ
 /usr/bin/ffmpeg -i udp://@'.$row['name'].' -y -f image2 -sameq -t 0.001 -ss 00:00:4 -s 120*80 /var/www/screen/'.$row['name'].'.jpg 


рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдЬреЛрдбрд╝рдирд╛:
рдПрдХ rez.php рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдПрдБ

 <?php $lines = file ('rez/'.$row['mcast'].'.txt'); if ($lines[0]=='') { $last_result=mysql_result(mysql_query("select state from name where name='".$row['name']."' order by date desc limit 0,1"),0); if($last_result=='true') { $query = "INSERT INTO `name` (`date`, `name`, `state`) VALUES ('{$date}', '{$row['name']}', 'false');"; mysql_query($query) or die(mysql_error()); } foreach ($A as $v) { echo exec('/usr/bin/perl /usr/local/scripts/jabber_alert.pl -e '.$v.'@jabber.server -n tv@jabber.server -w password -y '.translitIt ($row['name']).'-'.$row['mcast'].' << "EOF" read -d "^D" input'); } } else { $last_result=mysql_result(mysql_query("select state from name where name='".$row['name']."' order by date desc limit 0,1"),0); echo $last_result; if($last_result=='false') { $query = "INSERT INTO `name` (`date`, `name`, `state`) VALUES ('{$date}', '{$row['name']}', 'true');"; mysql_query($query) or die(mysql_error()); } echo $row['name']." ". $lines[1]." "; } ?> 

рдпрджрд┐ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рд▓рд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдирд┐рд╖реНрдкрд╛рджрди рдХрд╛ рд╕рдордп рдлрд╝рд╛рдЗрд▓ рдХреЛ рд▓рд┐рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдпрджрд┐ рдлрд╝рд╛рдЗрд▓ рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддреА рд╣реИ, рддреЛ рдпрд╣ рдЦрд╛рд▓реА рд╣реЛ рдЬрд╛рдПрдЧрд╛ред рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ, рд╣рдо рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕рд╛рдордЧреНрд░реА рдХреА рдЬрд╛рдВрдЪ рдХрд░рддреЗ рд╣реИрдВред

рд╣рдо рдЧрд┐рд░реЗ рд╣реБрдП рдЪреИрдирд▓ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рдЬрд╛рдмрд░ рдкрд░ рднреЗрдЬрддреЗ рд╣реИрдВ
 echo exec('/usr/bin/perl /usr/local/scripts/jabber_alert.pl -e '.$v.'@jabber.server -n tv@jabber.server -w password -y '.translitIt ($row['name']).'-'.$row['mcast'].' << "EOF" read -d "^D" input'); 

jabber_alert.pl

Index.php рдмрдирд╛рдПрдВ

 <?php foreach($rows as $row) { $work=mysql_result(mysql_query("select date from name where date>'".$row['date']." order by date limit 0,1'"),0); $date1 = new DateTime($work); $date2 = new DateTime($row['date']); $interval = $date2->diff($date1); if($work=="") { $style="red"; } else { $style="";} echo "<tr><td style='color:".$style."'><font color='red'>".$row['date']; if($work!="") { echo "</font> - <font color='green'>".$work."</font>"; } echo "</td><td>"; if($interval->format("%h") != 0) { echo $interval->format("%h. "); } echo $interval->format("%i. %s.")."</td><td style='color:".$style."'>".$row['name']."</td></tr>"; } ?> 

рдЧрд┐рд░реЗ / рдЙрднрд░реЗ рдЪреИрдирд▓реЛрдВ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рд░рдВрдЧ рджреЗрдВред

рддрд╛рдЬ рдореЗрдВ рджреЛ рд▓рд┐рдкрд┐рдпреЛрдВ рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдХреЛ рдЬреЛрдбрд╝реЗрдВред
рд╕рдорд╛рдзрд╛рди рдЗрддрдирд╛ рд╕реБрд░реБрдЪрд┐рдкреВрд░реНрдг рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЕрдкрдиреЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдХрд░рддрд╛ рд╣реИред

рд╕рдорд╛рдкреНрдд рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдк рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

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


All Articles