diff options
author | Heshan Wanigasooriya <heshanmw@gmail.com> | 2010-12-05 12:52:20 +0000 |
---|---|---|
committer | Heshan Wanigasooriya <heshanmw@gmail.com> | 2010-12-05 12:52:20 +0000 |
commit | 973537f36c8f33473a00190aa64fc30b82d94c04 (patch) | |
tree | 2c2f99a3bd254b145453fab186fdc824d34a260f /plugins/video_zencoder/includes/zencoder.inc | |
parent | 07e453e2ff2f66017eb49cc0374aa1531805a043 (diff) | |
download | video-973537f36c8f33473a00190aa64fc30b82d94c04.tar.gz video-973537f36c8f33473a00190aa64fc30b82d94c04.tar.bz2 |
Removing all files
Diffstat (limited to 'plugins/video_zencoder/includes/zencoder.inc')
-rw-r--r-- | plugins/video_zencoder/includes/zencoder.inc | 280 |
1 files changed, 0 insertions, 280 deletions
diff --git a/plugins/video_zencoder/includes/zencoder.inc b/plugins/video_zencoder/includes/zencoder.inc deleted file mode 100644 index fcf7e48..0000000 --- a/plugins/video_zencoder/includes/zencoder.inc +++ /dev/null @@ -1,280 +0,0 @@ -<?php -//$Id$ -/* - * @file - * Class file to handle amazon s3 transfers. - * -*/ - -// Include our class file. -require_once('Zencoder.php'); - -define('VIDEO_ZC_PENDING', 0); -define('VIDEO_ZC_WORKING', 1); -define('VIDEO_ZC_ACTIVE', 2); -define('VIDEO_ZC_FAILED', 3); - -class video_zencoder_api { - - private $jobid; - private $access_key; - private $limit; - private $bucket; - - public function __construct() { - $this->access_key = variable_get('zencoder_api_key', ''); - $this->limit = variable_get('amazon_s3_limit',5); - $this->bucket = variable_get('amazon_s3_bucket', ''); - } - - - /** - * create transcoding job on Zencoder.com - */ - public function create($file) { - // API Key - $api_key = variable_get('zencoder_api_key', ''); - // File details - $filename = $file->filename; - // Get varialbes - $lable = 'VIDEO_' . $file->fid; - $base_url = $folder; - $width = variable_get('zc_width', ''); - $height = variable_get('zc_height', ''); - $quality = variable_get('zc_quality', 3); - $speed = variable_get('zc_speed', 3); - $upscale = variable_get('zc_upscale', ''); - $stretch = variable_get('zc_stretch', ''); - $frame_rate = variable_get('zc_frame_rate', ''); - $max_frame_rate = variable_get('zc_max_frame_rate', ''); - $keyframe_interval = variable_get('zc_key_frame_interval', ''); - $video_bitrate = variable_get('zc_vid_bit_rate', ''); - $bitrate_cap = variable_get('zc_bit_rate_cap', ''); - $buffer_size = variable_get('zc_buffer_size', ''); - $h264_profile = variable_get('zc_h245_profile', 1); - $h264_level = variable_get('zc_h245_level', 0); - $skip_video = variable_get('zc_skip_video', ''); - $audio_codec = variable_get('zc_audio_codec', 'aac'); - $audio_bitrate = variable_get('zc_audio_bitrate', ''); - $audio_channels = variable_get('zc_audio_channels', 2); - $audio_sample_rate = variable_get('zc_audio_sample_rate', ''); - $skip_audio = variable_get('zc_skip_audio', ''); - $thumb_no = variable_get('no_of_video_thumbs', 5); - // TODO : - $thumb_size = '160x120'; - $thumb_base = $baseurl; - $thumb_prefix = $filename; - $notify_url = variable_get('zc_notify_url', ''); - $notify_email = variable_get('zc_notify_email', 'heshanmw@gmail.com'); - $start_clip = variable_get('zc_start_clip', ''); - $clip_length = variable_get('zc_clip_length', ''); - - $bucket = $this->bucket; - - // Job details - $input_name = $bucket . '/' . $filename; -// watchdog('zencoder', $input_name); - - $zc_output = array(); - if(!empty($lable)) - $zc_output['label'] = $lable; - if(!empty($bucket)) - $zc_output['url'] = 's3://' . $bucket . '/' . $filename . '.flv'; - if(!empty($width)) - $zc_output['width'] = $width; - if(!empty($height)) - $zc_output['height'] = $height; - if($quality != 3) - $zc_output['quality'] = $quality; - if($speed != 3) - $zc_output['speed'] = $speed; - if(!empty($upscale)) - $zc_output['upscale'] = $upscale; - if(!empty($frame_rate)) - $zc_output['frame_rate'] = $frame_rate; - if(!empty($max_frame_rate)) - $zc_output['max_frame_rate'] = $max_frame_rate; - if(!empty($keyframe_interval)) - $zc_output['keyframe_interval'] = $keyframe_interval; - if(!empty($video_bitrate)) - $zc_output['video_bitrate'] = $video_bitrate; - if(!empty($bitrate_cap)) - $zc_output['bitrate_cap'] = $bitrate_cap; - if(!empty($buffer_size)) - $zc_output['buffer_size'] = $buffer_size; - if(($h264_profile != 1)) - $zc_output['h264_profile'] = $h264_profile; - if(($h264_level != 0)) - $zc_output['h264_level'] = $h264_level; - if(!empty($skip_video)) - $zc_output['skip_video'] = $skip_video; - if(($audio_codec != 'aac')) - $zc_output['audio_codec'] = $audio_codec; - if(!empty($audio_bitrate)) - $zc_output['audio_bitrate'] = $audio_bitrate; - if(($audio_channels != 2)) - $zc_output['audio_channels'] = $audio_channels; - if(!empty($audio_sample_rate)) - $zc_output['audio_sample_rate'] = $audio_sample_rate; - if(!empty($skip_audio)) - $zc_output['skip_audio'] = $skip_audio; - if(!empty($start_clip)) - $zc_output['start_clip'] = $start_clip; - if(!empty($clip_length)) - $zc_output['clip_length'] = $clip_length; - -// thumbnails - $thumbnails['number'] = $thumb_no; - if(!empty($thumb_size)) - $thumbnails['thumb_size'] = $thumb_size; - if(!empty($bucket)) - $thumbnails['base_url'] = 's3://' . $bucket; - if(!empty($lable)) - $thumbnails['prefix'] = $lable; - $zc_output['thumbnails'] = $thumbnails; - - // Notifications - if(!empty($notify_url)) - $notifications[] = $notify_url; - if(!empty($notify_email)) - $notifications[] = $notify_email; - $zc_output['notifications'] = $notifications; - - - $encoding_job_json = array( - 'test' => 1, -// 'download_connections' => -1, - 'api_key' => $this->access_key, - 'input' => 's3://' . $input_name . '', - 'output' => $zc_output - ); - - - watchdog('zencoder', json_encode($encoding_job_json)); - - $encoding_job = new ZencoderJob(json_encode($encoding_job_json)); - - // Check if it worked - if ($encoding_job->created) { -// watchdog('zencoder', $encoding_job->id); - return $encoding_job; - } - else { - foreach($encoding_job->errors as $error) { - // echo $error."\n"; - watchdog('zencoder', 'Zencoder reports some errors. !error', array('!error' => $error), WATCHDOG_ERROR); - } - return false; - } - - } - - /* - * Inserts file object into the database. - */ - public function insert($fid, $jobid = 0) { - db_query("INSERT INTO {video_zencoder} (fid, jobid, status) VALUES (%d, %d, %d)", $fid, $jobid, VIDEO_ZC_PENDING); - } - - /* - * Updates the database after a successful transfer to amazon. - */ - public function update($video) { - $result = db_query("UPDATE {video_zencoder} SET jobid = %d, outputid = %d, bucket='%s', filename='%s', filepath='%s', filemime='%s', filesize='%s', status=%d, completed=%d WHERE vid=%d", - $video->jobid, $video->outputid, $video->bucket, $video->filename, $video->filepath, $video->filemime, $video->filesize, VIDEO_ZC_ACTIVE, REQUEST_TIME, $video->vid); - return $result; - } - - public function working($vid) { - db_query("UPDATE {video_zencoder} SET status=%d WHERE vid=%d", VIDEO_ZC_WORKING, $vid); - } - - public function failed($vid) { - db_query("UPDATE {video_zencoder} SET status=%d WHERE vid=%d", VIDEO_ZC_FAILED, $vid); - } - /* - * Verifies the existence of a file id, returns the row or false if none found. - */ - public function verify($fid) { - $sql = db_query("SELECT * FROM {video_zencoder} WHERE fid=%d", $fid); - $row = db_fetch_object($sql); - return $row; - } - - public function delete($fid) { - // Lets get our file no matter the status and delete it. - if($video = $this->verify($fid)) { - // Lets delete our record from the database. - db_query("DELETE FROM {video_zencoder} WHERE vid=%d", $video->vid); - } - } - public function get_job_id() { - return $this->jobid; - } - /* - * Gets a video object from the database. - */ - public function get($fid) { - $sql = db_query("SELECT * FROM {video_zencoder} WHERE fid=%d AND status=%d", $fid, VIDEO_ZC_ACTIVE); - $row = db_fetch_object($sql); - return $row; - } - - /* - * Selects the pending queue to be transfered to amazon. - */ - public function queue() { - $video = false; - $sql = db_query("SELECT vid, fid FROM {video_zencoder} WHERE status=%d LIMIT %d", VIDEO_ZC_PENDING, $this->limit); - while($row = db_fetch_object($sql)) { - // We need to check if this file id exists in our S3 table to avoid filenot found error. - $sql_video = db_query("SELECT * FROM {video_s3} WHERE fid=%d", $row->fid); - if($sql_video_row = db_fetch_object($sql_video)) { - // This is a s3 file, lets verify it has been pushed and if so lets push Zencoder queue. - module_load_include('inc', 'video', '/includes/conversion'); - if($sql_video_row->status == VIDEO_ZC_ACTIVE) { - $video = $sql_video_row; - } - } - else { - // This is a regular video file, lets get our file object from the files table and push it to amazon. - $sql_files = db_query("SELECT * FROM {files} WHERE fid=%d", $row->fid); - if($sql_files_row = db_fetch_object($sql_files)) { - $video = $sql_files_row; - } - } - // If we have a video lets go ahead and send it. - if($video) { - // Get Output file info - // API Key - $api_key = variable_get('zencoder_api_key', ''); - - // Update our status to working. - $this->working($row->vid); - $filepath = $video->filepath; - $filename = basename($video->filepath); - if ($encoding_job = $this->create($video)) { - // Update our table. - $video->bucket = $this->bucket; - $video->filename = $filename . '.flv'; - $video->filemime = 'video/x-flv'; - $video->vid = $row->vid; - $video->jobid = $encoding_job->id; - $video->outputid = $encoding_job->outputs["VIDEO" . $video->fid]->id; - $prefix = $this->ssl ? 'https://' : 'http://'; - $video->filepath = $prefix . $video->bucket .'.s3.amazonaws.com/'. $filename . '.flv'; - if($this->update($video)) { - watchdog('zencoder', t('Successfully created trancoding job on file: !file into the bucket %bucket on Zencoder.', array('!file' => $filepath, '%bucket' => $this->bucket)), array(), WATCHDOG_INFO); - } - } - else { - watchdog('zencoder', 'Failed to queus our file to Zencoder.', array(), WATCHDOG_ERROR); - $this->failed($row->vid); - } - } - else { - watchdog('zencoder', 'We did not find the file id: '.$row->fid.' or it is still queued for ffmpeg processing or S3 push.', array(), WATCHDOG_DEBUG); - } - } - } -}
\ No newline at end of file |