示例#1
0
class TestVideoConverter(unittest.TestCase):
    def setUp(self):
        self.mock_executor = MagicMock(spec=Executor)
        self.mock_executor.execute.return_value = 0

        self.test_model = VideoConverter(self.mock_executor)

    def __run_test(self):
        self.test_model.convert_to_mp4(PATH_TO_INPUT, PATH_TO_OUTPUT, CREATE_TIME)

    def test_it_should_properly_form_the_shell_command(self):
        self.__run_test()
        self.mock_executor.execute.assert_called_once_with(
            [
                "ffmpeg",
                "-y",
                "-i",
                PATH_TO_INPUT,
                "-threads",
                "16",
                "-f",
                "mp4",
                "-metadata",
                "creation_time=2015-11-18 00:00:00",
                PATH_TO_OUTPUT,
            ]
        )

    def test_it_should_raise_an_error_if_the_conversion_failed(self):
        self.mock_executor.execute.side_effect = CalledProcessError(1, "cmd")
        with self.assertRaises(RuntimeError):
            self.__run_test()
示例#2
0
 def play_converted_video(self: 'Gui'):
     if not self.playing_video:
         self.playing_video = True
         converter = VideoConverter(self.frame_nums_to_write, self.jpgFolder, self.audio.data, 30, \
                                    self.audio.rate, self.audio.sampwidth)
         self.play_converted_video_button.setText('Pause')
         converter.play()
         self.play_converted_video_button.setText('Play')
         self.playing_video = False
     else:
         self.keyboard_emulator.press('p')
         self.keyboard_emulator.release('p')
         self.video_paused = not self.video_paused
         if self.video_paused:
             self.play_converted_video_button.setText('Play')
         else:
             self.play_converted_video_button.setText('Pause')
示例#3
0
    def setUp(self):
        self.mock_executor = MagicMock(spec=Executor)
        self.mock_executor.execute.return_value = 0

        self.test_model = VideoConverter(self.mock_executor)
示例#4
0
            if start is not None:
                frame_nums_to_write.append((start, end))
                num_selected_frames += (end - start)
                frames.append(end - start)
            if num_selected_frames >= min_frames:
                break
        frame_nums_to_write.sort(key=lambda x: x[0])
        return frame_nums_to_write


if __name__ == "__main__":
    folder = 'test_data_3'
    video_name = 'test_video_3'
    frames_rgb_folder = 'input/test_dataset/{folder}/frames_rgb_test/{video_name}/'.format(
        folder=folder, video_name=video_name)
    frames_jpg_folder = 'input/test_dataset/{folder}/frames_test/{video_name}/'.format(
        folder=folder, video_name=video_name)
    audio_file = 'input/test_dataset/{folder}/{video_name}.wav'.format(
        folder=folder, video_name=video_name)

    evaluator = Evaluator(frames_rgb_folder, audio_file, None)
    evaluator.evaluate()
    frame_nums_to_write = evaluator.select_frames()

    # offline run
    converter = VideoConverter(frame_nums_to_write, frames_jpg_folder,
                               evaluator.audio.data, 30, evaluator.audio.rate,
                               evaluator.audio.sampwidth)
    converter.offline_conversion(
        './output_offline/{video_name}'.format(video_name=video_name))