Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- /**
- *
- * @ This file is created by http://DeZender.Net
- * @ deZender (PHP7 Decoder for ionCube Encoder)
- *
- * @ Version : 4.1.0.1
- * @ Author : DeZender
- * @ Release on : 29.08.2020
- * @ Official site : http://DeZender.Net
- *
- */
- function getRogersSegments($rURL, $rLimit = NULL)
- {
- global $rMaxSegments;
- $rLimit = 10;
- $rManifest = getCURLURL($rURL);
- $rMPD = simplexml_load_string($rManifest);
- $rBaseURL = substr($rURL, 0, strripos($rURL, '/')) . '/';
- $rRepID = $rMPD->Period->AdaptationSet->Representation[count($rMPD->Period->AdaptationSet->Representation) - 1]->attributes()['id'];
- $rrVideoTemplate = str_replace('$RepresentationID$', $rRepID, $rMPD->Period->AdaptationSet->SegmentTemplate->attributes()['media']);
- $rInitSegment = str_replace('$RepresentationID$', $rRepID, $rBaseURL . $rMPD->Period->AdaptationSet->SegmentTemplate->attributes()['initialization']);
- foreach ($rMPD->Period->AdaptationSet->ContentProtection as $rContentProtection) {
- if (strtolower($rContentProtection->attributes()->schemeIdUri) == 'urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed') {
- list($rPSSH) = explode('</cenc:pssh>', explode('<cenc:pssh>', $rContentProtection->asXML())[1]);
- if (!$rPSSH) {
- list($rPSSH) = explode('<', explode('>', $rContentProtection->pssh->asXML())[1]);
- }
- $rVideoStart = NULL;
- $rVideoTemplate = NULL;
- $rObject = [
- 'pssh' => $rPSSH,
- 'audio' => NULL,
- 'video' => NULL,
- 'segments' => [],
- 'add' => 100
- ];
- foreach ($rMPD->Period->AdaptationSet as $rAdaptationSet) {
- if ($rAdaptationSet->attributes()['mimeType'] == 'video/mp4') {
- $rObject['video'] = $rInitSegment;
- foreach ($rAdaptationSet->SegmentTemplate->SegmentTimeline->S as $rSegment) {
- if (isset($rSegment->attributes()['t'])) {
- $rVideoStart = $rSegment->attributes()['t'];
- $rObject['add'] = $rSegment->attributes()['d'];
- }
- }
- }
- }
- foreach ($rMPD->Period->AdaptationSet as $rAdaptationSet) {
- $rVideoTemplate = str_replace('$RepresentationID$', $rRepID, $rAdaptationSet->SegmentTemplate->attributes()['media']);
- $rRepID = $rAdaptationSet->Representation->attributes()['id'];
- $rThisSegment = $rAdaptationSet->SegmentTemplate->attributes()['startNumber'];
- $rSegmentTemplate = str_replace('$RepresentationID$', $rRepID, $rAdaptationSet->SegmentTemplate[0]->attributes()['media']);
- $rInitSegment = str_replace('$RepresentationID$', $rRepID, $rBaseURL . $rAdaptationSet->SegmentTemplate[0]->attributes()['initialization']);
- if (($rAdaptationSet->attributes()['mimeType'] == 'audio/mp4') && ($rAdaptationSet->Representation->attributes()['codecs'] == 'mp4a.40.5')) {
- $rObject['audio'] = $rInitSegment;
- foreach ($rAdaptationSet->SegmentTemplate->SegmentTimeline->S as $rSegment) {
- if (isset($rSegment->attributes()['r'])) {
- $rRepeats = intval($rSegment->attributes()['r']) + 1;
- }
- else {
- $rRepeats = 1;
- }
- foreach (range(1, $rRepeats) as $rRepeat) {
- $rThisSegment = $rThisSegment + 1;
- $rVideoStart += $rObject['add'];
- $rObject['segments'][$rVideoStart]['audio'] = str_replace('$Number$', $rThisSegment, $rBaseURL . $rSegmentTemplate);
- $rObject['segments'][$rVideoStart]['video'] = str_replace('$Number$', $rThisSegment, $rBaseURL . $rrVideoTemplate);
- }
- }
- if (!$rLimit) {
- $rLimit = $rMaxSegments;
- }
- $rObject['segments'] = array_slice($rObject['segments'], -1 * $rLimit, $rLimit, true);
- return $rObject;
- }
- }
- }
- }
- }
- function plog($rText)
- {
- echo '[' . date('Y-m-d h:i:s') . '] ' . $rText . "\n";
- }
- function getURL($rURL, $rTimeout = 5)
- {
- $rContext = stream_context_create([
- 'http' => ['timeout' => $rTimeout]
- ..........................................................................
- ..............................................
- ....................
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement