def test_it_should_tell_the_truth_about_MP4_files(self): test_file = File('/path/to/file.MP4') self.assertFalse(test_file.is_image()) self.assertTrue(test_file.is_video()) self.assertEqual(test_file.filename(), '/path/to/file.MP4') self.assertEqual(test_file.ext(), '.mp4') self.assertEqual(test_file.media_type(), 'MP4') self.assertEqual(test_file.date_taken_tag(), 'QuickTime:CreateDate') self.assertEqual(test_file.rotation_tag(), 'Composite:Rotation')
def test_it_should_tell_the_truth_about_MTS_files(self): test_file = File('/path/to/file.MTS') self.assertFalse(test_file.is_image()) self.assertTrue(test_file.is_video()) self.assertEqual(test_file.filename(), '/path/to/file.MTS') self.assertEqual(test_file.ext(), '.mts') self.assertEqual(test_file.media_type(), 'MTS') self.assertEqual(test_file.date_taken_tag(), 'H264:DateTimeOriginal') self.assertEqual(test_file.rotation_tag(), 'Composite:Rotation')
def test_it_should_tell_the_truth_about_JPEG_files(self): test_file = File('/path/to/file.JPEG') self.assertTrue(test_file.is_image()) self.assertFalse(test_file.is_video()) self.assertEqual(test_file.filename(), '/path/to/file.JPEG') self.assertEqual(test_file.ext(), '.jpeg') self.assertEqual(test_file.media_type(), 'JPEG') self.assertEqual(test_file.date_taken_tag(), 'EXIF:DateTimeOriginal') self.assertEqual(test_file.rotation_tag(), 'EXIF:Orientation')
def generate_thumbnail(self, path_to_file, path_to_thumbnail): thumbnail_dir = os.path.dirname(path_to_thumbnail) if not os.path.isdir(thumbnail_dir): self.util.mkdirp(thumbnail_dir) thumbnail_size = self.config.thumbnail_size() f = File(path_to_file) if f.is_image(): original_image = Image.open(path_to_file) original_image.thumbnail((thumbnail_size, thumbnail_size), Image.ANTIALIAS) original_image.save(path_to_thumbnail) elif f.is_video(): ffmpeg_cmd = ['ffmpeg', '-y', '-i', path_to_file, '-vframes', '1', '-ss', '0', '-vf', 'scale=\'if(gte(iw,ih),' + str(thumbnail_size) + ',-1)\':\'if(gte(iw,ih),-1,' + str(thumbnail_size) + ')\'', path_to_thumbnail] self.executor.execute(ffmpeg_cmd) else: raise RuntimeError('Unrecognized file extension!')