|
@@ -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:
|