mirror of
				https://github.com/ytdl-org/youtube-dl.git
				synced 2025-10-29 09:26:20 -07:00 
			
		
		
		
	[postprocessor/ffmpeg] Add support for flac
Requested at http://stackoverflow.com/q/42828041/35070
This commit is contained in:
		| @@ -196,7 +196,7 @@ def _real_main(argv=None): | ||||
|     if opts.playlistend not in (-1, None) and opts.playlistend < opts.playliststart: | ||||
|         raise ValueError('Playlist end must be greater than playlist start') | ||||
|     if opts.extractaudio: | ||||
|         if opts.audioformat not in ['best', 'aac', 'mp3', 'm4a', 'opus', 'vorbis', 'wav']: | ||||
|         if opts.audioformat not in ['best', 'aac', 'flac', 'mp3', 'm4a', 'opus', 'vorbis', 'wav']: | ||||
|             parser.error('invalid audio format specified') | ||||
|     if opts.audioquality: | ||||
|         opts.audioquality = opts.audioquality.strip('k').strip('K') | ||||
|   | ||||
| @@ -26,15 +26,25 @@ from ..utils import ( | ||||
|  | ||||
|  | ||||
| EXT_TO_OUT_FORMATS = { | ||||
|     "aac": "adts", | ||||
|     "m4a": "ipod", | ||||
|     "mka": "matroska", | ||||
|     "mkv": "matroska", | ||||
|     "mpg": "mpeg", | ||||
|     "ogv": "ogg", | ||||
|     "ts": "mpegts", | ||||
|     "wma": "asf", | ||||
|     "wmv": "asf", | ||||
|     'aac': 'adts', | ||||
|     'flac': 'flac', | ||||
|     'm4a': 'ipod', | ||||
|     'mka': 'matroska', | ||||
|     'mkv': 'matroska', | ||||
|     'mpg': 'mpeg', | ||||
|     'ogv': 'ogg', | ||||
|     'ts': 'mpegts', | ||||
|     'wma': 'asf', | ||||
|     'wmv': 'asf', | ||||
| } | ||||
| ACODECS = { | ||||
|     'mp3': 'libmp3lame', | ||||
|     'aac': 'aac', | ||||
|     'flac': 'flac', | ||||
|     'm4a': 'aac', | ||||
|     'opus': 'opus', | ||||
|     'vorbis': 'libvorbis', | ||||
|     'wav': None, | ||||
| } | ||||
|  | ||||
|  | ||||
| @@ -237,7 +247,7 @@ class FFmpegExtractAudioPP(FFmpegPostProcessor): | ||||
|                 acodec = 'copy' | ||||
|                 extension = 'm4a' | ||||
|                 more_opts = ['-bsf:a', 'aac_adtstoasc'] | ||||
|             elif filecodec in ['aac', 'mp3', 'vorbis', 'opus']: | ||||
|             elif filecodec in ['aac', 'flac', 'mp3', 'vorbis', 'opus']: | ||||
|                 # Lossless if possible | ||||
|                 acodec = 'copy' | ||||
|                 extension = filecodec | ||||
| @@ -256,8 +266,8 @@ class FFmpegExtractAudioPP(FFmpegPostProcessor): | ||||
|                     else: | ||||
|                         more_opts += ['-b:a', self._preferredquality + 'k'] | ||||
|         else: | ||||
|             # We convert the audio (lossy) | ||||
|             acodec = {'mp3': 'libmp3lame', 'aac': 'aac', 'm4a': 'aac', 'opus': 'opus', 'vorbis': 'libvorbis', 'wav': None}[self._preferredcodec] | ||||
|             # We convert the audio (lossy if codec is lossy) | ||||
|             acodec = ACODECS[self._preferredcodec] | ||||
|             extension = self._preferredcodec | ||||
|             more_opts = [] | ||||
|             if self._preferredquality is not None: | ||||
|   | ||||
		Reference in New Issue
	
	Block a user