public function view($page = 'overview') { if (!file_exists(APPPATH . '/views/pages/' . $page . '.php')) { show_404(); } $data['title'] = ucfirst($page); $data['api_key'] = $this->session->api_key; $data['api_url'] = Bitcodin::getBaseUrl(); if (!isset($this->session->page_limit) or !is_numeric($this->session->page_limit)) { $this->session->page_limit = 10; } $data['page_limit'] = $this->session->page_limit; $page_files = get_filenames(APPPATH . '/views/pages'); $menu_items = array(); foreach ($page_files as $file) { $name = basename($file, '.php'); $menu_items[] = ucfirst($name); } $index = array_search('Home', $menu_items); $home = $menu_items[$index]; unset($menu_items[$index]); array_unshift($menu_items, $home); if ($page == 'overview') { Bitcodin::setApiToken($this->session->api_key); try { $encodingProfiles = EncodingProfile::getListAll(); if (count($encodingProfiles) <= 0) { $encProf = new \stdClass(); $encProf->encodingProfileId = 0; $encProf->name = "No encoding profile available"; $encodingProfiles = array("No encoding profiles found"); } $outputs = Output::getListAll(); if (count($outputs) <= 0) { $output = new \stdClass(); $output->outputId = 0; $output->name = "No output available"; $outputs = array($output); } } catch (BitcodinException $ex) { $output = new \stdClass(); $output->outputId = 0; $output->name = "No output available"; $outputs = array($output); $encProf = new \stdClass(); $encProf->encodingProfileId = 0; $encProf->name = "No encoding profile available"; $encodingProfiles = array($encProf); } $data['encodingProfiles'] = $encodingProfiles; $data['outputs'] = $outputs; } $data['menu_items'] = $menu_items; $this->load->view('templates/header', $data); $this->load->view('pages/' . $page, $data); $this->load->view('templates/footer', $data); }
public function setUp() { parent::setUp(); $baseUrl = $this->getApiBaseUrl(); $apiKey = $this->getApiKey(); if (!is_null($baseUrl)) { Bitcodin::setBaseUrl($baseUrl); } if (!is_null($apiKey)) { Bitcodin::setApiToken($this->getApiKey()); } }
public function update_tab($status, $page = 0, $selectedId = -1) { Bitcodin::setApiToken($this->session->api_key); try { $page_limit = $this->session->page_limit; if ($status == 'RUNNING') { $liveInstances = LiveStream::getAll(array('RUNNING', 'STARTING', 'STOPPING')); } else { $liveInstances = LiveStream::getAll($status, $page_limit, $page_limit * $page); } if (!isset($liveInstances) or $liveInstances === NULL) { $liveInstances = array(); } $count = LiveStream::getCount(); $data['count'] = $count; $data['liveInstances'] = $liveInstances; $data['status'] = $status; $num_pages = 0; if ($status == 'RUNNING') { $num_pages = ceil($count->running / $page_limit); } elseif ($status == 'TERMINATED') { $num_pages = ceil($count->terminated / $page_limit); } elseif ($status == 'ERROR') { $num_pages = ceil($count->error / $page_limit); } $data['num_pages'] = $num_pages; $data['active_page'] = $page; $data['selected_id'] = $selectedId; echo $this->load->view('templates/livestreams', $data, TRUE); if ($selectedId != -1) { foreach ($liveInstances as $liveInstance) { if ($liveInstance->id == $selectedId) { $data['selected_instance'] = $liveInstance; } } echo $this->load->view('templates/details.php', $data, TRUE); } } catch (\Exception $ex) { echo "<div class='top-buffer'></div><div class='alert alert-danger' role='alert'>" . $ex->getMessage() . "</div>"; } }
use bitcodin\Input; use bitcodin\HttpInputConfig; use bitcodin\EncodingProfile; use bitcodin\EncodingProfileConfig; use bitcodin\ManifestTypes; require_once __DIR__ . '/../vendor/autoload.php'; function getHeight($width, $aspectRatio) { $height = intval(round($width / $aspectRatio, 0)); if ($height % 2 != 0) { $height++; } return $height; } /* CONFIGURATION */ Bitcodin::setApiToken('Insert Your Api Key here'); // Your can find your api key in the settings menu. Your account (right corner) -> Settings -> API $inputConfig = new HttpInputConfig(); $inputConfig->url = 'http://eu-storage.bitcodin.com/inputs/Sintel.2010.720p.mkv'; $input = Input::create($inputConfig); $inputVideoMediaConfiguration = NULL; foreach ($input->getVideoMediaConfigurations() as $inputMediaConfiguration) { if ($inputMediaConfiguration->type === 'video') { $inputVideoMediaConfiguration = $inputMediaConfiguration; break; } } if (is_null($inputVideoMediaConfiguration)) { throw new \Exception("No video media configuration found!"); } $inputWidth = $inputVideoMediaConfiguration->displayAspectRatioNum;
<form class="ui large form" name="createQuality" action="AddQualityFromBitcodin.php"> <div class="ui labeled input" style="padding-bottom: 2px;width: 100%"> <a class="ui label" style="width: 135px">Api Key</a> <input type="text" name="apiKey" required="true" placeholder="API Key" <?php if (isset($_GET['apiKey'])) { echo "value='" . $_GET['apiKey'] . "'"; } ?> > </div> <button class="ui button" style="width: 100%">Set API Key</button> </form> <?php if (isset($_GET['apiKey'])) { Bitcodin::setApiToken($_GET['apiKey']); $jobs = Job::getList(); ?> <table id='data' class="ui right aligned celled table"> <thead> <tr> <th>Thumbnail</th> <th>Encoding ID</th> <th>Input ID</th> <th>Calculate Quality</th> </tr> </thead> <tbody> <?php foreach ($jobs->jobs as $job) { if ($job->status == "Finished") {
require_once __DIR__ . '/../vendor/autoload.php'; use bitcodin\AudioStreamConfig; use bitcodin\AzureBlobStorageInputConfig; use bitcodin\AzureOutputConfig; use bitcodin\Bitcodin; use bitcodin\EncodingProfile; use bitcodin\EncodingProfileConfig; use bitcodin\Input; use bitcodin\Job; use bitcodin\JobConfig; use bitcodin\JobSpeedTypes; use bitcodin\ManifestTypes; use bitcodin\Output; use bitcodin\VideoStreamConfig; /* CONFIGURATION */ Bitcodin::setApiToken('insertYourApiToken'); // Your can find your api key in the settings menu. Your account (right corner) -> Settings -> API $azureBlobStorageAccountKey = 'yourAccountKey'; $azureBlobStorageAccountName = 'yourAccountname'; $azureBlobStorageContainer = 'usedContainer'; $inputConfig = new AzureBlobStorageInputConfig(); $inputConfig->accountName = $azureBlobStorageAccountName; $inputConfig->accountKey = $azureBlobStorageAccountKey; $inputConfig->container = $azureBlobStorageContainer; $inputConfig->url = 'http://yourAccountname.blob.core.windows.net/usedContainer/video.mkv'; $input = Input::create($inputConfig); $encodingProfileConfig = new EncodingProfileConfig(); $encodingProfileConfig->name = 'MyApiTestEncodingProfile'; /* CREATE VIDEO STREAM CONFIGS */ $videoStreamConfig1 = new VideoStreamConfig(); $videoStreamConfig1->bitrate = 4800000;
public function testErrorPatchRequest() { Bitcodin::setApiToken($this->getApiKey()); //$this->setExpectedException('\bitcodin\exceptions\BitcodinResourceNotFoundException'); ConcreteApiResource::patchRequest('/lkajljow/', NULL, 404); }
// Ask for Api key, Not reqired. If Api key is not set, no usable Outputs wil be printed if (isset($_SESSION['post_data'])) { echo "Already logged in </br>"; $_POST['apiKey'] = $_SESSION['post_data']['apiKey']; } if (!isset($_POST['apiKey'])) { echo "Create new Quality:<br />"; echo "<form action='createQuality.php' method='post'>\n\t <p>Bitmovin Api Key <input type='text' value='' name='apiKey' /></p>\n\t <p><input type='submit' /></p>\n\t</form>"; } else { if (isset($_POST['newId'])) { echo "Job created with ID: " . $_POST['newId']; } else { echo "<script type='text/javascript'>\n\n function handleTableClick(evt) {\n var node = evt.target || evt.srcElement;\n if (node.name == 'setUrls') {\n location.replace(location.href + '?orig=document.getElementById(\\'newOrigUrl\\').value');\n window.location.reload(true);\n }\n }\n\n </script>"; $_SESSION['post_data'] = $_POST; $apiKey = $_POST['apiKey']; Bitcodin::setApiToken($apiKey); $jobs = Job::getList(); echo "<table border='1' id='showJobs' >\n\t\t\t<thead>\n\t\t\t\t<tr>\n\t\t\t\t\tEncoding ID\n\t\t\t\t</tr>\n\t\t\t\t<tr>\n\t\t\t\t\tInput ID\n\t\t\t\t</tr>\n\t\t\t\t<tr>\n Calculate Quality\n </tr>\n\t\t\t</thead>\n\t\t\t<tbody>"; foreach ($jobs->jobs as $job) { if ($job->status == "Finished") { echo "<tr><td>" . $job->jobId . "</td><td>" . $job->input->inputId . "</td>\n\t\t\t<td><form name='f1' method='get'>\n\t\t\t <input name='orig' type='hidden' id='newOrigUrl' value=" . $job->input->url . ">\n\t\t\t <input name='mpd' type='hidden' id='newMpdUrl' value=" . json_decode(json_encode($job->manifestUrls), true)['mpdUrl'] . ">\n\t\t\t <button name='setUrls' >Get Urls</form>\n </form>\n </td>"; } } echo "</tbody></table>"; if (!isset($_POST['urlOriginal']) || !isset($_POST['urlMpd'])) { if (isset($_GET['orig'])) { $orig = $_GET['orig']; } else { $orig = ""; } if (isset($_GET['mpd'])) {
use bitcodin\Bitcodin; use bitcodin\VideoStreamConfig; use bitcodin\AudioStreamConfig; use bitcodin\Job; use bitcodin\JobConfig; use bitcodin\Input; use bitcodin\HttpInputConfig; use bitcodin\EncodingProfile; use bitcodin\EncodingProfileConfig; use bitcodin\ManifestTypes; use bitcodin\TransmuxConfig; use bitcodin\Transmuxing; require_once __DIR__ . '/../vendor/autoload.php'; /* CONFIGURATION */ Bitcodin::setApiToken('INSERT YOUR API KEY HERE'); // Your can find your api key in the settings menu. Your account (right corner) -> Settings -> API $inputConfig = new HttpInputConfig(); $inputConfig->url = 'http://eu-storage.bitcodin.com/inputs/Sintel.2010.720p.mkv'; $input = Input::create($inputConfig); $encodingProfileConfig = new EncodingProfileConfig(); $encodingProfileConfig->name = 'ApiExampleProfile'; /* CREATE VIDEO STREAM CONFIGS */ $videoStreamConfig1 = new VideoStreamConfig(); $videoStreamConfig1->bitrate = 4800000; $videoStreamConfig1->height = 1080; $videoStreamConfig1->width = 1920; $encodingProfileConfig->videoStreamConfigs[] = $videoStreamConfig1; $videoStreamConfig2 = new VideoStreamConfig(); $videoStreamConfig2->bitrate = 2400000; $videoStreamConfig2->height = 720;
use bitcodin\AudioStreamConfig; use bitcodin\Job; use bitcodin\JobConfig; use bitcodin\Input; use bitcodin\HttpInputConfig; use bitcodin\EncodingProfile; use bitcodin\EncodingProfileConfig; use bitcodin\ManifestTypes; use bitcodin\VttMpdConfig; use bitcodin\VttMpd; use bitcodin\VttSubtitle; use bitcodin\Output; use bitcodin\FtpOutputConfig; require_once __DIR__ . '/../vendor/autoload.php'; ///* CONFIGURATION */ Bitcodin::setApiToken('YOUR API KEY'); // Your can find your api key in the settings menu. Your account (right corner) -> Settings -> API $inputConfig = new HttpInputConfig(); $inputConfig->url = 'http://eu-storage.bitcodin.com/inputs/Sintel.2010.720p.mkv'; $input = Input::create($inputConfig); $encodingProfileConfig = new EncodingProfileConfig(); $encodingProfileConfig->name = 'MyApiTestEncodingProfile'; /* CREATE VIDEO STREAM CONFIGS */ $videoStreamConfig1 = new VideoStreamConfig(); $videoStreamConfig1->bitrate = 4800000; $videoStreamConfig1->height = 1080; $videoStreamConfig1->width = 1920; $encodingProfileConfig->videoStreamConfigs[] = $videoStreamConfig1; $videoStreamConfig2 = new VideoStreamConfig(); $videoStreamConfig2->bitrate = 2400000; $videoStreamConfig2->height = 720;
public function __construct() { parent::__construct(); Bitcodin::setApiToken($this->getApiKey()); }
public function setUp() { parent::setUp(); Bitcodin::enableHttps(); }
<?php require_once __DIR__ . '/../vendor/autoload.php'; use bitcodin\Bitcodin; /* CONFIGURATION */ Bitcodin::setApiToken('insertYourApiKey'); // Your can find your api key in the settings menu. Your account (right corner) -> Settings -> API Bitcodin::enableHttps(); // Use the API as always
/** * @param $url * @param $expectedStatusCode * @return \GuzzleHttp\Message\FutureResponse|\GuzzleHttp\Message\ResponseInterface|\GuzzleHttp\Ring\Future\FutureInterface|null * @throws BitcodinException */ protected static function _deleteRequest($url, $expectedStatusCode) { $httpClient = self::getClient(); try { $res = $httpClient->delete(Bitcodin::getBaseUrl() . $url, ['headers' => self::getHeaders()]); } catch (BadResponseException $ex) { $res = $ex->getResponse(); } self::_checkExpectedStatus($res, $expectedStatusCode); return $res; }
use bitcodin\JobSpeedTypes; use bitcodin\VideoStreamConfig; use bitcodin\AudioStreamConfig; use bitcodin\Job; use bitcodin\JobConfig; use bitcodin\Input; use bitcodin\HttpInputConfig; use bitcodin\EncodingProfile; use bitcodin\EncodingProfileConfig; use bitcodin\ManifestTypes; use bitcodin\Output; use bitcodin\FtpOutputConfig; use bitcodin\WatermarkConfig; require_once __DIR__ . '/../vendor/autoload.php'; /* CONFIGURATION */ Bitcodin::setApiToken('insertApiKey'); // Your can find your api key in the settings menu. Your account (right corner) -> Settings -> API $inputConfig = new HttpInputConfig(); $inputConfig->url = 'http://eu-storage.bitcodin.com/inputs/Sintel.2010.720p.mkv'; $input = Input::create($inputConfig); $encodingProfileConfig = new EncodingProfileConfig(); $encodingProfileConfig->name = 'MyApiTestEncodingProfile'; /* CREATE VIDEO STREAM CONFIGS */ $videoStreamConfig1 = new VideoStreamConfig(); $videoStreamConfig1->bitrate = 4800000; $videoStreamConfig1->height = 1080; $videoStreamConfig1->width = 1920; $encodingProfileConfig->videoStreamConfigs[] = $videoStreamConfig1; $videoStreamConfig2 = new VideoStreamConfig(); $videoStreamConfig2->bitrate = 2400000; $videoStreamConfig2->height = 720;