mirror of
https://github.com/ytdl-org/youtube-dl.git
synced 2024-11-25 03:32:05 +00:00
[postprocessor/ffmpeg] Add support for flac
Requested at http://stackoverflow.com/q/42828041/35070
This commit is contained in:
parent
b51dc9db0e
commit
21bfcd3d6e
2 changed files with 23 additions and 13 deletions
|
@ -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:
|
||||
|
|
Loading…
Reference in a new issue