diff options
Diffstat (limited to 'youtube_dl/PostProcessor.py')
| -rw-r--r-- | youtube_dl/PostProcessor.py | 21 | 
1 files changed, 15 insertions, 6 deletions
| diff --git a/youtube_dl/PostProcessor.py b/youtube_dl/PostProcessor.py index da95f1a87..481c07a94 100644 --- a/youtube_dl/PostProcessor.py +++ b/youtube_dl/PostProcessor.py @@ -10,6 +10,7 @@ from .utils import (      PostProcessingError,      shell_quote,      subtitles_filename, +    prepend_extension,  ) @@ -85,10 +86,10 @@ class FFmpegPostProcessor(PostProcessor):          files_cmd = []          for path in input_paths: -            files_cmd.extend(['-i', encodeFilename(path)]) +            files_cmd.extend(['-i', encodeFilename(path, True)])          cmd = ([self._exes['avconv'] or self._exes['ffmpeg'], '-y'] + files_cmd                 + opts + -               [encodeFilename(self._ffmpeg_filename_argument(out_path))]) +               [encodeFilename(self._ffmpeg_filename_argument(out_path), True)])          if self._downloader.params.get('verbose', False):              self._downloader.to_screen(u'[debug] ffmpeg command line: %s' % shell_quote(cmd)) @@ -122,7 +123,10 @@ class FFmpegExtractAudioPP(FFmpegPostProcessor):          if not self._exes['ffprobe'] and not self._exes['avprobe']:              raise PostProcessingError(u'ffprobe or avprobe not found. Please install one.')          try: -            cmd = [self._exes['avprobe'] or self._exes['ffprobe'], '-show_streams', encodeFilename(self._ffmpeg_filename_argument(path))] +            cmd = [ +                self._exes['avprobe'] or self._exes['ffprobe'], +                '-show_streams', +                encodeFilename(self._ffmpeg_filename_argument(path), True)]              handle = subprocess.Popen(cmd, stderr=compat_subprocess_get_DEVNULL(), stdout=subprocess.PIPE)              output = handle.communicate()[0]              if handle.wait() != 0: @@ -499,13 +503,11 @@ class FFmpegMetadataPP(FFmpegPostProcessor):              return True, info          filename = info['filepath'] -        ext = os.path.splitext(filename)[1][1:] -        temp_filename = filename + u'.temp' +        temp_filename = prepend_extension(filename, 'temp')          options = ['-c', 'copy']          for (name, value) in metadata.items():              options.extend(['-metadata', '%s=%s' % (name, value)]) -        options.extend(['-f', ext])          self._downloader.to_screen(u'[ffmpeg] Adding metadata to \'%s\'' % filename)          self.run_ffmpeg(filename, temp_filename, options) @@ -514,6 +516,13 @@ class FFmpegMetadataPP(FFmpegPostProcessor):          return True, info +class FFmpegMergerPP(FFmpegPostProcessor): +    def run(self, info): +        filename = info['filepath'] +        args = ['-c', 'copy'] +        self.run_ffmpeg_multiple_files(info['__files_to_merge'], filename, args) +        return True, info +  class XAttrMetadataPP(PostProcessor):      # | 
