���� JFIF �� � ( %"1"%)+...383,7(-.-
![]() Server : Apache/2.4.6 (CentOS) OpenSSL/1.0.2k-fips PHP/7.4.20 System : Linux st2.domain.com 3.10.0-1127.10.1.el7.x86_64 #1 SMP Wed Jun 3 14:28:03 UTC 2020 x86_64 User : apache ( 48) PHP Version : 7.4.20 Disable Function : NONE Directory : /var/www/html/video/ |
<?php //set_time_limit(0); //ini_set('memory_limit', -1); require 'vendor/autoload.php'; require "configs.php"; require "lib/class_db.php"; $DB = new db_driver; $DB->connect($INFO); function str_encode($data,$pwd) { $x = 0; $a = 0; $j = 0; $Zcrypt = ''; $pwd_length = strlen($pwd); for ($i = 0; $i < 255; $i++) { $key[$i] = ord(substr($pwd, ($i % $pwd_length)+1, 1)); $counter[$i] = $i; } for ($i = 0; $i < 255; $i++) { $x = ($x + $counter[$i] + $key[$i]) % 256; $temp_swap = $counter[$i]; $counter[$i] = $counter[$x]; $counter[$x] = $temp_swap; } for ($i = 0; $i < strlen($data); $i++) { $a = ($a + 1) % 256; $j = ($j + $counter[$a]) % 256; $temp = $counter[$a]; $counter[$a] = $counter[$j]; $counter[$j] = $temp; $k = $counter[(($counter[$a] + $counter[$j]) % 256)]; $Zcipher = ord(substr($data, $i, 1)) ^ $k; $Zcrypt .= chr($Zcipher); } return $Zcrypt; } function curl_func($url) { $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); $head[] = "Connection: keep-alive"; $head[] = "Keep-Alive: 300"; $head[] = "Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7"; $head[] = "Accept-Language: en-us,en;q=0.5"; curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.61 Safari/537.36 x-client-data: CJW2yQEIpbbJAQjBtskBCKmdygEYu7rKARiavsoB'); curl_setopt($ch, CURLOPT_HTTPHEADER, $head); curl_setopt($ch, CURLOPT_REFERER, 'https://m.youtube.com'); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($ch, CURLOPT_TIMEOUT, 60); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 60); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE); curl_setopt($ch, CURLOPT_HTTPHEADER, array('Expect:')); $page = curl_exec($ch); curl_close($ch); return $page; } function getClient() { $client = new Google_Client(); $client->setApplicationName('Google Drive API PHP Quickstart'); $client->setScopes(Google_Service_Drive::DRIVE); $client->setAuthConfig('credentials.json'); $client->setAccessType('offline'); $client->setPrompt('select_account consent'); // Load previously authorized token from a file, if it exists. // The file token.json stores the user's access and refresh tokens, and is // created automatically when the authorization flow completes for the first // time. $tokenPath = 'token/token.json'; if (file_exists($tokenPath)) { $accessToken = json_decode(file_get_contents($tokenPath), true); $client->setAccessToken($accessToken); } // If there is no previous token or it's expired. if ($client->isAccessTokenExpired()) { // Refresh the token if possible, else fetch a new one. if ($client->getRefreshToken()) { $client->fetchAccessTokenWithRefreshToken($client->getRefreshToken()); } else { // Request authorization from the user. /*$authUrl = $client->createAuthUrl(); printf("Open the following link in your browser:\n%s\n", $authUrl); print 'Enter verification code: ';*/ //$authCode = trim(fgets(STDIN)); $authCode = '4/1wHkQiMjA0GZnGYPksVMTJtSx6oOyy1qmF8t0UST4SMxVq3YNsE5femsBMgHnZ4CLukmYrMRTHeb_HLVSVL4y10'; // Exchange authorization code for an access token. $accessToken = $client->fetchAccessTokenWithAuthCode($authCode); $client->setAccessToken($accessToken); // Check to see if there was an error. if (array_key_exists('error', $accessToken)) { throw new Exception(join(', ', $accessToken)); } } // Save the token to a file. if (!file_exists(dirname($tokenPath))) { mkdir(dirname($tokenPath), 0777, true); } file_put_contents($tokenPath, json_encode($client->getAccessToken())); } return $client; } function formatSizeUnits($bytes) { if ($bytes >= 1073741824) { $bytes = number_format($bytes / 1073741824, 2) . ' GB'; } elseif ($bytes >= 1048576) { $bytes = number_format($bytes / 1048576, 2) . ' MB'; } elseif ($bytes >= 1024) { $bytes = number_format($bytes / 1024, 2) . ' KB'; } elseif ($bytes > 1) { $bytes = $bytes . ' bytes'; } elseif ($bytes == 1) { $bytes = $bytes . ' byte'; } else { $bytes = '0 bytes'; } return $bytes; } $menus_id = intval($_REQUEST['menus_id']); $month_now = date("Y").'/'.date("m").'/'.date("d"); if(!is_dir("anime/".$month_now."/")) { mkdir("anime/".$month_now."/",0755,true); } if(!is_dir("error_log/".$month_now."/")) { mkdir("error_log/".$month_now."/",0755,true); } $root_path = $INFO['root_path']; $txt_file_name = $_FILES['file']['name']; $txt_file_name_base = str_replace('.mp4','',$txt_file_name); $file_size=formatSizeUnits($_FILES['file']['size']); $id = uniqid().'-'.time().'_'; $second_thum = rand(10,60); move_uploaded_file($_FILES['file']['tmp_name'],'anime/'.$month_now.'/'.$id.'_tmp.mp4'); $out1 = shell_exec('ffmpeg -v error -i '.$root_path.'/anime/'.$month_now.'/'.$id.'_tmp.mp4 -f null - 2>'.$root_path.'/error_log/'.$month_now.'/'.$id.'_tmp.log'); //fix video can play /*$out1 = shell_exec('ffmpeg -i '.$root_path.'/anime/'.$month_now.'/'.$id.'_tmp.mp4 '.$root_path.'/anime/'.$month_now.'/'.$id.'_tmp_new.mp4');*/ //convert video to ts /*$out3 = shell_exec('ffmpeg -i '.$root_path.'/anime/'.$month_now.'/'.$id.'_tmp_new.mp4 -codec: copy -bsf:v h264_mp4toannexb -start_number 0 -hls_time 10 -hls_list_size 0 -f hls '.$root_path.'/anime/'.$month_now.'/playlist_'.$id.'.m3u8');*/ //$out4 = shell_exec('ffmpeg -ss 00:00:'.$second_thum.' -i '.$_FILES['file']['tmp_name'].' -frames:v 1 -vf scale=-1:281 '.$root_path.'/thumb/'.$month_now.'/playlist_'.$id.'.png'); $arr['status'] = 'ok'; $txt_error = 'no'; if(file_exists('error_log/'.$month_now.'/'.$id.'_tmp.log')){ if(trim(file_get_contents('error_log/'.$month_now.'/'.$id.'_tmp.log')) != ''){ $txt_error = 'yes'; } } $arr_insert = array('menus_id'=>$menus_id,'video_name'=>$txt_file_name,'video_link'=>'','video_size'=>$file_size,'time_post'=>time(),'epi_name'=>$txt_file_name_base,'thumb_name'=>'','subtitle'=>'','video_done'=>'no','video_tmp'=>'anime/'.$month_now.'/'.$id.'_tmp.mp4','video_error'=>$txt_error); $video_id = $DB->do_insert('tb_video',$arr_insert); //split if video no error if($txt_error=='no'){ $out3 = shell_exec('ffmpeg -i '.$root_path.'/anime/'.$month_now.'/'.$id.'_tmp.mp4 -codec: copy -bsf:v h264_mp4toannexb -start_number 0 -hls_time 10 -hls_list_size 0 -f hls '.$root_path.'/anime/'.$month_now.'/playlist_'.$video_id.'.m3u8'); $arr_update = array('video_done'=>'yes','video_link'=>'/embed/'.$month_now.'/playlist_'.$video_id.'.m3u8'); $DB->do_update('tb_video',$arr_update,' WHERE video_id='.$video_id); unlink('anime/'.$month_now.'/'.$id.'_tmp.mp4'); } //print to screen $arr['path'] = '/embed/'.$month_now.'/playlist_'.$video_id.'.m3u8|'.$txt_file_name_base; $arr['file_name'] = $txt_file_name; /*unlink('anime/'.$month_now.'/'.$id.'_tmp.mp4'); unlink('anime/'.$month_now.'/'.$id.'_tmp_new.mp4');*/ echo json_encode($arr); $DB->free_result(); $DB->close_db(); exit(); ?>