]> jfr.im git - yt-dlp.git/blobdiff - youtube_dlc/postprocessor/ffmpeg.py
Merge branch 'ext/remuxe-video' of https://github.com/Zocker1999NET/youtube-dl into...
[yt-dlp.git] / youtube_dlc / postprocessor / ffmpeg.py
index 5d66a69a6a7b4f3f57736fbfa52662e915d33f83..5e85f4eebd87844eea08f4fcae5877c5d0001630 100644 (file)
@@ -349,6 +349,27 @@ def run(self, information):
         return [path], information
 
 
+class FFmpegVideoRemuxerPP(FFmpegPostProcessor):
+    def __init__(self, downloader=None, preferedformat=None):
+        super(FFmpegVideoRemuxerPP, self).__init__(downloader)
+        self._preferedformat = preferedformat
+
+    def run(self, information):
+        path = information['filepath']
+        if information['ext'] == self._preferedformat:
+            self._downloader.to_screen('[ffmpeg] Not remuxing video file %s - already is in target format %s' % (path, self._preferedformat))
+            return [], information
+        options = ['-c', 'copy']
+        prefix, sep, ext = path.rpartition('.')
+        outpath = prefix + sep + self._preferedformat
+        self._downloader.to_screen('[' + 'ffmpeg' + '] Remuxing video from %s to %s, Destination: ' % (information['ext'], self._preferedformat) + outpath)
+        self.run_ffmpeg(path, outpath, options)
+        information['filepath'] = outpath
+        information['format'] = self._preferedformat
+        information['ext'] = self._preferedformat
+        return [path], information
+
+
 class FFmpegVideoConvertorPP(FFmpegPostProcessor):
     def __init__(self, downloader=None, preferedformat=None):
         super(FFmpegVideoConvertorPP, self).__init__(downloader)