diff options
author | Jesús <heckyel@hyperbola.info> | 2021-12-20 11:53:26 -0500 |
---|---|---|
committer | Jesús <heckyel@hyperbola.info> | 2021-12-20 11:53:26 -0500 |
commit | 65ee789d3062a5321faf0092fc2cf8ec498fc4a1 (patch) | |
tree | 72ef3e3de40dac0e03517d28eb0a2cea17f86ba4 /yt_dlp/postprocessor/ffmpeg.py | |
parent | 1abb4c89c62a9fec2e8a65c3d76d4ac0e8dd4c43 (diff) | |
parent | 0fcba15d57430e8ebfd2091463e12dfa9882cbef (diff) | |
download | hypervideo-pre-65ee789d3062a5321faf0092fc2cf8ec498fc4a1.tar.lz hypervideo-pre-65ee789d3062a5321faf0092fc2cf8ec498fc4a1.tar.xz hypervideo-pre-65ee789d3062a5321faf0092fc2cf8ec498fc4a1.zip |
updated from upstream | 20/12/2021 at 11:53
Diffstat (limited to 'yt_dlp/postprocessor/ffmpeg.py')
-rw-r--r-- | yt_dlp/postprocessor/ffmpeg.py | 25 |
1 files changed, 17 insertions, 8 deletions
diff --git a/yt_dlp/postprocessor/ffmpeg.py b/yt_dlp/postprocessor/ffmpeg.py index 73bbf7fb0..594762974 100644 --- a/yt_dlp/postprocessor/ffmpeg.py +++ b/yt_dlp/postprocessor/ffmpeg.py @@ -294,7 +294,9 @@ class FFmpegPostProcessor(PostProcessor): def make_args(file, args, name, number): keys = ['_%s%d' % (name, number), '_%s' % name] - if name == 'o' and number == 1: + if name == 'o': + args += ['-movflags', '+faststart'] + elif number == 1: keys.append('') args += self._configuration_args(self.basename, keys) if name == 'i': @@ -368,7 +370,7 @@ class FFmpegPostProcessor(PostProcessor): out_flags = ['-c', 'copy'] if out_file.rpartition('.')[-1] in ('mp4', 'mov'): # For some reason, '-c copy' is not enough to copy subtitles - out_flags.extend(['-c:s', 'mov_text', '-movflags', '+faststart']) + out_flags.extend(['-c:s', 'mov_text']) try: self.real_run_ffmpeg( @@ -571,10 +573,7 @@ class FFmpegVideoRemuxerPP(FFmpegVideoConvertorPP): @staticmethod def _options(target_ext): - options = ['-c', 'copy', '-map', '0', '-dn'] - if target_ext in ['mp4', 'm4a', 'mov']: - options.extend(['-movflags', '+faststart']) - return options + return ['-c', 'copy', '-map', '0', '-dn'] class FFmpegEmbedSubtitlePP(FFmpegPostProcessor): @@ -909,13 +908,23 @@ class FFmpegFixupTimestampPP(FFmpegFixupPostProcessor): return [], info -class FFmpegFixupDurationPP(FFmpegFixupPostProcessor): +class FFmpegCopyStreamPostProcessor(FFmpegFixupPostProcessor): + MESSAGE = 'Copying stream' + @PostProcessor._restrict_to(images=False) def run(self, info): - self._fixup('Fixing video duration', info['filepath'], ['-c', 'copy', '-map', '0', '-dn']) + self._fixup(self.MESSAGE, info['filepath'], ['-c', 'copy', '-map', '0', '-dn']) return [], info +class FFmpegFixupDurationPP(FFmpegCopyStreamPostProcessor): + MESSAGE = 'Fixing video duration' + + +class FFmpegFixupDuplicateMoovPP(FFmpegCopyStreamPostProcessor): + MESSAGE = 'Fixing duplicate MOOV atoms' + + class FFmpegSubtitlesConvertorPP(FFmpegPostProcessor): SUPPORTED_EXTS = ('srt', 'vtt', 'ass', 'lrc') |