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)
Esempio n. 3
0
    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
Esempio n. 4
0
    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 setUp(self):
     '''
     initialisation for tests
     '''
     self.ffmpeg_wrapper = MiniFFMPEGWrapper()
 def setUp(self):
     '''
     initialisation for tests
     '''
     self.ffmpeg_wrapper = MiniFFMPEGWrapper()