/** * Updates the dimension (height, width) and duration metadata of the specified media file in FAL * * @param \TYPO3\CMS\Core\Resource\File $file FAL record * @return void */ protected function setFileMetadata(\TYPO3\CMS\Core\Resource\File $file) { // Get file for local processing $localFile = $file->getForLocalProcessing(FALSE); // Fetch media information $parser = new \PHPVideoToolkit\MediaParser(); $fileInfo = $parser->getFileInformation($localFile); // Collect relevant media information $fileMetadata = array(); $fileMetadata['duration'] = $fileInfo['duration']->total_seconds; if (isset($fileInfo['video']['dimensions'])) { $fileMetadata['height'] = $fileInfo['video']['dimensions']['height']; $fileMetadata['width'] = $fileInfo['video']['dimensions']['width']; } // Update metadata of FAL record if (!empty($fileMetadata)) { $file->_updateMetaDataProperties($fileMetadata); $this->metaDataRepository->update($file->getUid(), $fileMetadata); } }