def test_format_ogm_chapters(self): chapters_text = chapters.format_ogm_chapters(start_times=[0, 17.017, 107.023]) self.assertEqual(chapters_text, """CHAPTER01=00:00:00.000 CHAPTER01NAME= CHAPTER02=00:00:17.017 CHAPTER02NAME= CHAPTER03=00:01:47.023 CHAPTER03NAME= """)
def demux(self): if self._write_chapters: with open(self._chapters_output_path, "w") as output_file: output_file.write(chapters.format_ogm_chapters(self.chapters)) if self._make_keyframes: SCXviD.make_keyframes(self._path, self._keyframes_output_path) ffargs = {} if self._demux_audio: ffargs['audio_stream'] = self._audio_stream.id ffargs['audio_path'] = self._audio_output_path ffargs['audio_rate'] = self._audio_sample_rate if self._demux_subs: ffargs['script_stream'] = self._script_stream.id ffargs['script_path'] = self._script_output_path if self._make_timecodes: def set_ffmpeg_timecodes(): ffargs['video_stream'] = self._mi.video[0].id ffargs['timecodes_path'] = self._timecodes_output_path if get_extension(self._path).lower() == '.mkv': try: MkvToolnix.extract_timecodes( self._path, stream_idx=self._mi.video[0].id, output_path=self._timecodes_output_path) except OSError as e: if e.errno == 2: set_ffmpeg_timecodes() else: raise else: set_ffmpeg_timecodes() if ffargs: FFmpeg.demux_file(self._path, **ffargs)
def demux(self): if self._write_chapters: with open(self._chapters_output_path, "w") as output_file: output_file.write(chapters.format_ogm_chapters(self.chapters)) if self._make_keyframes: SCXviD.make_keyframes(self._path, self._keyframes_output_path) ffargs = {} if self._demux_audio: ffargs['audio_stream'] = self._audio_stream.id ffargs['audio_path'] = self._audio_output_path ffargs['audio_rate'] = self._audio_sample_rate if self._demux_subs: ffargs['script_stream'] = self._script_stream.id ffargs['script_path'] = self._script_output_path if self._make_timecodes: def set_ffmpeg_timecodes(): ffargs['video_stream'] = self._mi.video[0].id ffargs['timecodes_path'] = self._timecodes_output_path if get_extension(self._path).lower() == '.mkv': try: MkvToolnix.extract_timecodes(self._path, stream_idx=self._mi.video[0].id, output_path=self._timecodes_output_path) except OSError as e: if e.errno == 2: set_ffmpeg_timecodes() else: raise else: set_ffmpeg_timecodes() if ffargs: FFmpeg.demux_file(self._path, **ffargs)