class FFMPEGTestCase(TestCase): ''' test the frame grab from ffmpeg ''' def setUp(self): ''' initialisation for tests ''' self.ffmpeg_wrapper = MiniFFMPEGWrapper() def tearDown(self): ''' cleanup for tests ''' pass def test_image_generation(self): ''' test that the image file gets generated from the video ''' test_file_path = 'corroborator_app/fixtures/auth.m4v' self.ffmpeg_wrapper.video_file = test_file_path self.ffmpeg_wrapper.create_temp_filename() self.ffmpeg_wrapper.create_jpeg_from_video() self.assertIn('image/jpeg', mimetypes.guess_type(self.ffmpeg_wrapper.out_filename)) os.remove(self.ffmpeg_wrapper.out_filename)
class FFMPEGTestCase(TestCase): ''' test the frame grab from ffmpeg ''' def setUp(self): ''' initialisation for tests ''' self.ffmpeg_wrapper = MiniFFMPEGWrapper() def tearDown(self): ''' cleanup for tests ''' pass def test_image_generation(self): ''' test that the image file gets generated from the video ''' test_file_path = 'corroborator_app/fixtures/auth.m4v' self.ffmpeg_wrapper.video_file = test_file_path self.ffmpeg_wrapper.create_temp_filename() self.ffmpeg_wrapper.create_jpeg_from_video() self.assertIn( 'image/jpeg', mimetypes.guess_type(self.ffmpeg_wrapper.out_filename) ) os.remove(self.ffmpeg_wrapper.out_filename)
def obj_create(self, bundle, **kwargs): username = bundle.request.GET['username'] media_file = bundle.data['media_file'] bundle.data['media_type'] = 'Document' #todo: perhaps don't fail the upload if thumbnailing fails if 'video' in bundle.data['media_file'].content_type: bundle.data['media_type'] = 'Video' if settings.VIDEO_THUMBNAILING: ffmpeg_wrapper = MiniFFMPEGWrapper() # Files < 2.5MB get stored in memory rather than on disk if hasattr(media_file, 'temporary_file_path'): # file_object is file path file_location = 'disk' file_object = media_file file_name = file_object.temporary_file_path() #filetype = mime.from_file(file_object) #file_info = m.from_file(file_object) else: # file_object is an actual file object file_location = 'memory' file_object = media_file file_buffer = media_file.read() #filetype = mime.from_buffer(file_buffer) #file_info = m.from_buffer(file_buffer) file_object.seek(0) # write it to a temporary file on disk so we can get a path to pass to the ffmpeg command file_object = tempfile.NamedTemporaryFile( dir=settings.FILE_UPLOAD_TEMP_DIR) file_object.write(file_buffer) file_object.flush() os.fsync(file_object.fileno()) file_name = file_object.name ffmpeg_wrapper.video_file = file_name ffmpeg_wrapper.create_jpeg_from_video() thumb_source_file = UploadedFile( open(ffmpeg_wrapper.out_filename)) thumbnailer = Thumbnailer() bundle.data['media_thumb_file'] =\ thumbnailer.construct_thumb_from_image( thumb_source_file ) if 'image' in bundle.data['media_file'].content_type: bundle.data['media_type'] = 'Picture' media_thumb_file = Thumbnailer()\ .construct_thumb_from_image(media_file) bundle.data['media_thumb_file'] = media_thumb_file if 'pdf' in bundle.data['media_file'].content_type: bundle.data['media_type'] = 'Pdf' parts = media_file.name.split('.') media_file_type = parts[len(parts) - 1] bundle.data['media_file_type'] = media_file_type bundle = super(MediaResource, self).obj_create(bundle, **kwargs) update_object.delay(username) return bundle
def obj_create(self, bundle, **kwargs): username = bundle.request.GET['username'] media_file = bundle.data['media_file'] bundle.data['media_type'] = 'Document' #todo: perhaps don't fail the upload if thumbnailing fails if 'video' in bundle.data['media_file'].content_type: bundle.data['media_type'] = 'Video' if settings.VIDEO_THUMBNAILING: ffmpeg_wrapper = MiniFFMPEGWrapper() # Files < 2.5MB get stored in memory rather than on disk if hasattr(media_file, 'temporary_file_path'): # file_object is file path file_location = 'disk' file_object = media_file file_name = file_object.temporary_file_path() #filetype = mime.from_file(file_object) #file_info = m.from_file(file_object) else: # file_object is an actual file object file_location = 'memory' file_object = media_file file_buffer = media_file.read() #filetype = mime.from_buffer(file_buffer) #file_info = m.from_buffer(file_buffer) file_object.seek(0) # write it to a temporary file on disk so we can get a path to pass to the ffmpeg command file_object = tempfile.NamedTemporaryFile(dir=settings.FILE_UPLOAD_TEMP_DIR) file_object.write(file_buffer) file_object.flush() os.fsync(file_object.fileno()) file_name = file_object.name ffmpeg_wrapper.video_file = file_name ffmpeg_wrapper.create_jpeg_from_video() thumb_source_file = UploadedFile(open(ffmpeg_wrapper.out_filename)) thumbnailer = Thumbnailer() bundle.data['media_thumb_file'] =\ thumbnailer.construct_thumb_from_image( thumb_source_file ) if 'image' in bundle.data['media_file'].content_type: bundle.data['media_type'] = 'Picture' media_thumb_file = Thumbnailer()\ .construct_thumb_from_image(media_file) bundle.data['media_thumb_file'] = media_thumb_file if 'pdf' in bundle.data['media_file'].content_type: bundle.data['media_type'] = 'Pdf' parts = media_file.name.split('.') media_file_type = parts[len(parts)-1] bundle.data['media_file_type'] = media_file_type bundle = super(MediaResource, self).obj_create(bundle, **kwargs) update_object.delay(username) return bundle