⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 module.audio-video.quicktime.php

📁 CMS系统 提供学习研究修改最好了 比流行的一些CMS简单 但是更容易理解 是帮助你学习PHPCMS系统的好东东哦
💻 PHP
📖 第 1 页 / 共 4 页
字号:
			case 'SelO': // play SELection Only atom			case 'AllF': // play ALL Frames atom				$atomstructure['data'] = getid3_lib::BigEndian2Int($atomdata);				break;			case 'name': //			case 'MCPS': // Media Cleaner PRo			case '@PRM': // adobe PReMiere version			case '@PRQ': // adobe PRemiere Quicktime version				$atomstructure['data'] = $atomdata;				break;			case 'cmvd': // Compressed MooV Data atom				// Code by ubergeek豼bergeek*tv based on information from				// http://developer.apple.com/quicktime/icefloe/dispatch012.html				$atomstructure['unCompressedSize'] = getid3_lib::BigEndian2Int(substr($atomdata, 0, 4));				$CompressedFileData = substr($atomdata, 4);				if ($UncompressedHeader = @gzuncompress($CompressedFileData)) {					$atomstructure['subatoms'] = $this->QuicktimeParseContainerAtom($UncompressedHeader, $ThisFileInfo, 0, $atomHierarchy, $ParseAllPossibleAtoms);				} else {					$ThisFileInfo['warning'][] = 'Error decompressing compressed MOV atom at offset '.$atomstructure['offset'];				}				break;			case 'dcom': // Data COMpression atom				$atomstructure['compression_id']   = $atomdata;				$atomstructure['compression_text'] = $this->QuicktimeDCOMLookup($atomdata);				break;			case 'rdrf': // Reference movie Data ReFerence atom				$atomstructure['version']                = getid3_lib::BigEndian2Int(substr($atomdata,  0, 1));				$atomstructure['flags_raw']              = getid3_lib::BigEndian2Int(substr($atomdata,  1, 3));				$atomstructure['flags']['internal_data'] = (bool) ($atomstructure['flags_raw'] & 0x000001);				$atomstructure['reference_type_name']    =                           substr($atomdata,  4, 4);				$atomstructure['reference_length']       = getid3_lib::BigEndian2Int(substr($atomdata,  8, 4));				switch ($atomstructure['reference_type_name']) {					case 'url ':						$atomstructure['url']            =       $this->NoNullString(substr($atomdata, 12));						break;					case 'alis':						$atomstructure['file_alias']     =                           substr($atomdata, 12);						break;					case 'rsrc':						$atomstructure['resource_alias'] =                           substr($atomdata, 12);						break;					default:						$atomstructure['data']           =                           substr($atomdata, 12);						break;				}				break;			case 'rmqu': // Reference Movie QUality atom				$atomstructure['movie_quality'] = getid3_lib::BigEndian2Int($atomdata);				break;			case 'rmcs': // Reference Movie Cpu Speed atom				$atomstructure['version']          = getid3_lib::BigEndian2Int(substr($atomdata,  0, 1));				$atomstructure['flags_raw']        = getid3_lib::BigEndian2Int(substr($atomdata,  1, 3)); // hardcoded: 0x0000				$atomstructure['cpu_speed_rating'] = getid3_lib::BigEndian2Int(substr($atomdata,  4, 2));				break;			case 'rmvc': // Reference Movie Version Check atom				$atomstructure['version']            = getid3_lib::BigEndian2Int(substr($atomdata,  0, 1));				$atomstructure['flags_raw']          = getid3_lib::BigEndian2Int(substr($atomdata,  1, 3)); // hardcoded: 0x0000				$atomstructure['gestalt_selector']   =                           substr($atomdata,  4, 4);				$atomstructure['gestalt_value_mask'] = getid3_lib::BigEndian2Int(substr($atomdata,  8, 4));				$atomstructure['gestalt_value']      = getid3_lib::BigEndian2Int(substr($atomdata, 12, 4));				$atomstructure['gestalt_check_type'] = getid3_lib::BigEndian2Int(substr($atomdata, 14, 2));				break;			case 'rmcd': // Reference Movie Component check atom				$atomstructure['version']                = getid3_lib::BigEndian2Int(substr($atomdata,  0, 1));				$atomstructure['flags_raw']              = getid3_lib::BigEndian2Int(substr($atomdata,  1, 3)); // hardcoded: 0x0000				$atomstructure['component_type']         =                           substr($atomdata,  4, 4);				$atomstructure['component_subtype']      =                           substr($atomdata,  8, 4);				$atomstructure['component_manufacturer'] =                           substr($atomdata, 12, 4);				$atomstructure['component_flags_raw']    = getid3_lib::BigEndian2Int(substr($atomdata, 16, 4));				$atomstructure['component_flags_mask']   = getid3_lib::BigEndian2Int(substr($atomdata, 20, 4));				$atomstructure['component_min_version']  = getid3_lib::BigEndian2Int(substr($atomdata, 24, 4));				break;			case 'rmdr': // Reference Movie Data Rate atom				$atomstructure['version']       = getid3_lib::BigEndian2Int(substr($atomdata,  0, 1));				$atomstructure['flags_raw']     = getid3_lib::BigEndian2Int(substr($atomdata,  1, 3)); // hardcoded: 0x0000				$atomstructure['data_rate']     = getid3_lib::BigEndian2Int(substr($atomdata,  4, 4));				$atomstructure['data_rate_bps'] = $atomstructure['data_rate'] * 10;				break;			case 'rmla': // Reference Movie Language Atom				$atomstructure['version']     = getid3_lib::BigEndian2Int(substr($atomdata,  0, 1));				$atomstructure['flags_raw']   = getid3_lib::BigEndian2Int(substr($atomdata,  1, 3)); // hardcoded: 0x0000				$atomstructure['language_id'] = getid3_lib::BigEndian2Int(substr($atomdata,  4, 2));				$atomstructure['language']    = $this->QuicktimeLanguageLookup($atomstructure['language_id']);				if (empty($ThisFileInfo['comments']['language']) || (!in_array($atomstructure['language'], $ThisFileInfo['comments']['language']))) {					$ThisFileInfo['comments']['language'][] = $atomstructure['language'];				}				break;			case 'rmla': // Reference Movie Language Atom				$atomstructure['version']   = getid3_lib::BigEndian2Int(substr($atomdata,  0, 1));				$atomstructure['flags_raw'] = getid3_lib::BigEndian2Int(substr($atomdata,  1, 3)); // hardcoded: 0x0000				$atomstructure['track_id']  = getid3_lib::BigEndian2Int(substr($atomdata,  4, 2));				break;			case 'ptv ': // Print To Video - defines a movie's full screen mode				// http://developer.apple.com/documentation/QuickTime/APIREF/SOURCESIV/at_ptv-_pg.htm				$atomstructure['display_size_raw']  = getid3_lib::BigEndian2Int(substr($atomdata, 0, 2));				$atomstructure['reserved_1']        = getid3_lib::BigEndian2Int(substr($atomdata, 2, 2)); // hardcoded: 0x0000				$atomstructure['reserved_2']        = getid3_lib::BigEndian2Int(substr($atomdata, 4, 2)); // hardcoded: 0x0000				$atomstructure['slide_show_flag']   = getid3_lib::BigEndian2Int(substr($atomdata, 6, 1));				$atomstructure['play_on_open_flag'] = getid3_lib::BigEndian2Int(substr($atomdata, 7, 1));				$atomstructure['flags']['play_on_open'] = (bool) $atomstructure['play_on_open_flag'];				$atomstructure['flags']['slide_show']   = (bool) $atomstructure['slide_show_flag'];				$ptv_lookup[0] = 'normal';				$ptv_lookup[1] = 'double';				$ptv_lookup[2] = 'half';				$ptv_lookup[3] = 'full';				$ptv_lookup[4] = 'current';				if (isset($ptv_lookup[$atomstructure['display_size_raw']])) {					$atomstructure['display_size'] = $ptv_lookup[$atomstructure['display_size_raw']];				} else {					$ThisFileInfo['warning'][] = 'unknown "ptv " display constant ('.$atomstructure['display_size_raw'].')';				}				break;			case 'stsd': // Sample Table Sample Description atom				$atomstructure['version']        = getid3_lib::BigEndian2Int(substr($atomdata,  0, 1));				$atomstructure['flags_raw']      = getid3_lib::BigEndian2Int(substr($atomdata,  1, 3)); // hardcoded: 0x0000				$atomstructure['number_entries'] = getid3_lib::BigEndian2Int(substr($atomdata,  4, 4));				$stsdEntriesDataOffset = 8;				for ($i = 0; $i < $atomstructure['number_entries']; $i++) {					$atomstructure['sample_description_table'][$i]['size']             = getid3_lib::BigEndian2Int(substr($atomdata, $stsdEntriesDataOffset, 4));					$stsdEntriesDataOffset += 4;					$atomstructure['sample_description_table'][$i]['data_format']      =                           substr($atomdata, $stsdEntriesDataOffset, 4);					$stsdEntriesDataOffset += 4;					$atomstructure['sample_description_table'][$i]['reserved']         = getid3_lib::BigEndian2Int(substr($atomdata, $stsdEntriesDataOffset, 6));					$stsdEntriesDataOffset += 6;					$atomstructure['sample_description_table'][$i]['reference_index']  = getid3_lib::BigEndian2Int(substr($atomdata, $stsdEntriesDataOffset, 2));					$stsdEntriesDataOffset += 2;					$atomstructure['sample_description_table'][$i]['data']             =                           substr($atomdata, $stsdEntriesDataOffset, ($atomstructure['sample_description_table'][$i]['size'] - 4 - 4 - 6 - 2));					$stsdEntriesDataOffset += ($atomstructure['sample_description_table'][$i]['size'] - 4 - 4 - 6 - 2);					$atomstructure['sample_description_table'][$i]['encoder_version']  = getid3_lib::BigEndian2Int(substr($atomstructure['sample_description_table'][$i]['data'],  0, 2));					$atomstructure['sample_description_table'][$i]['encoder_revision'] = getid3_lib::BigEndian2Int(substr($atomstructure['sample_description_table'][$i]['data'],  2, 2));					$atomstructure['sample_description_table'][$i]['encoder_vendor']   =                           substr($atomstructure['sample_description_table'][$i]['data'],  4, 4);					switch ($atomstructure['sample_description_table'][$i]['encoder_vendor']) {						case "\x00\x00\x00\x00":							// audio atom							$atomstructure['sample_description_table'][$i]['audio_channels']       =   getid3_lib::BigEndian2Int(substr($atomstructure['sample_description_table'][$i]['data'],  8,  2));							$atomstructure['sample_description_table'][$i]['audio_bit_depth']      =   getid3_lib::BigEndian2Int(substr($atomstructure['sample_description_table'][$i]['data'], 10,  2));							$atomstructure['sample_description_table'][$i]['audio_compression_id'] =   getid3_lib::BigEndian2Int(substr($atomstructure['sample_description_table'][$i]['data'], 12,  2));							$atomstructure['sample_description_table'][$i]['audio_packet_size']    =   getid3_lib::BigEndian2Int(substr($atomstructure['sample_description_table'][$i]['data'], 14,  2));							$atomstructure['sample_description_table'][$i]['audio_sample_rate']    = getid3_lib::FixedPoint16_16(substr($atomstructure['sample_description_table'][$i]['data'], 16,  4));							switch ($atomstructure['sample_description_table'][$i]['data_format']) {								case 'mp4v':									$ThisFileInfo['fileformat'] = 'mp4';									$ThisFileInfo['error'][] = 'This version ('.GETID3_VERSION.') of getID3() does not fully support MPEG-4 audio/video streams';									break;								case 'qtvr':									$ThisFileInfo['video']['dataformat'] = 'quicktimevr';									break;								case 'mp4a':								default:									$ThisFileInfo['quicktime']['audio']['codec']       = $this->QuicktimeAudioCodecLookup($atomstructure['sample_description_table'][$i]['data_format']);									$ThisFileInfo['quicktime']['audio']['sample_rate'] = $atomstructure['sample_description_table'][$i]['audio_sample_rate'];									$ThisFileInfo['quicktime']['audio']['channels']    = $atomstructure['sample_description_table'][$i]['audio_channels'];									$ThisFileInfo['quicktime']['audio']['bit_depth']   = $atomstructure['sample_description_table'][$i]['audio_bit_depth'];									$ThisFileInfo['audio']['codec']                    = $ThisFileInfo['quicktime']['audio']['codec'];									$ThisFileInfo['audio']['sample_rate']              = $ThisFileInfo['quicktime']['audio']['sample_rate'];									$ThisFileInfo['audio']['channels']                 = $ThisFileInfo['quicktime']['audio']['channels'];									$ThisFileInfo['audio']['bits_per_sample']          = $ThisFileInfo['quicktime']['audio']['bit_depth'];									switch ($atomstructure['sample_description_table'][$i]['data_format']) {										case 'raw ': // PCM										case 'alac': // Apple Lossless Audio Codec											$ThisFileInfo['audio']['lossless'] = true;											break;										default:											$ThisFileInfo['audio']['lossless'] = false;											break;									}									break;							}							break;						default:							switch ($atomstructure['sample_description_table'][$i]['data_format']) {								case 'mp4s':									$ThisFileInfo['fileformat'] = 'mp4';									break;								default:

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -