mirror of
				https://github.com/ytdl-org/youtube-dl.git
				synced 2025-10-29 09:26:20 -07:00 
			
		
		
		
	[postprocessor/ffmpeg] Add can_merge method
				
					
				
			This commit is contained in:
		| @@ -36,9 +36,7 @@ class FFmpegPostProcessor(PostProcessor): | |||||||
|     def check_version(self): |     def check_version(self): | ||||||
|         if not self.available: |         if not self.available: | ||||||
|             raise FFmpegPostProcessorError('ffmpeg or avconv not found. Please install one.') |             raise FFmpegPostProcessorError('ffmpeg or avconv not found. Please install one.') | ||||||
|         self.check_outdated() |  | ||||||
|  |  | ||||||
|     def check_outdated(self): |  | ||||||
|         required_version = '10-0' if self.basename == 'avconv' else '1.0' |         required_version = '10-0' if self.basename == 'avconv' else '1.0' | ||||||
|         if is_outdated_version( |         if is_outdated_version( | ||||||
|                 self._versions[self.basename], required_version): |                 self._versions[self.basename], required_version): | ||||||
| @@ -46,8 +44,6 @@ class FFmpegPostProcessor(PostProcessor): | |||||||
|                 self.basename, self.basename, required_version) |                 self.basename, self.basename, required_version) | ||||||
|             if self._downloader: |             if self._downloader: | ||||||
|                 self._downloader.report_warning(warning) |                 self._downloader.report_warning(warning) | ||||||
|             return True |  | ||||||
|         return False |  | ||||||
|  |  | ||||||
|     @staticmethod |     @staticmethod | ||||||
|     def get_versions(downloader=None): |     def get_versions(downloader=None): | ||||||
| @@ -595,6 +591,23 @@ class FFmpegMergerPP(FFmpegPostProcessor): | |||||||
|         os.rename(encodeFilename(temp_filename), encodeFilename(filename)) |         os.rename(encodeFilename(temp_filename), encodeFilename(filename)) | ||||||
|         return info['__files_to_merge'], info |         return info['__files_to_merge'], info | ||||||
|  |  | ||||||
|  |     def can_merge(self): | ||||||
|  |         # TODO: figure out merge-capable ffmpeg version | ||||||
|  |         if self.basename != 'avconv': | ||||||
|  |             return True | ||||||
|  |  | ||||||
|  |         required_version = '10-0' | ||||||
|  |         if is_outdated_version( | ||||||
|  |                 self._versions[self.basename], required_version): | ||||||
|  |             warning = ('Your copy of %s is outdated and unable to properly mux separate video and audio files, ' | ||||||
|  |                        'youtube-dl will download single file media. ' | ||||||
|  |                        'Update %s to version %s or newer to fix this.') % ( | ||||||
|  |                            self.basename, self.basename, required_version) | ||||||
|  |             if self._downloader: | ||||||
|  |                 self._downloader.report_warning(warning) | ||||||
|  |             return False | ||||||
|  |         return True | ||||||
|  |  | ||||||
|  |  | ||||||
| class FFmpegFixupStretchedPP(FFmpegPostProcessor): | class FFmpegFixupStretchedPP(FFmpegPostProcessor): | ||||||
|     def run(self, info): |     def run(self, info): | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user