Ключ постобработки для конвертации видеоформата в Youtube-dl
На вики-странице Youtube-dl есть пример постобработки для извлечения аудио, но я не смог сделать то же самое для конвертации видео формата. Я знаю, что есть варианты выбора формата видео перед загрузкой, но иногда мой нужный формат недоступен, поэтому мне нужно преобразовать загруженный видеофайл. Что key
и другие параметры для передачи?
ydl_opts = {
'format': 'bestvideo[height<=480]+bestaudio/best[height<=480]',
'videoformat' : "mp4",
'outtmpl': '%(title)s.%(ext)s',
'writethumbnail': True,
'writesubtitles': True,
'writeautomaticsub': True,
'subtitleslangs': 'en',
'postprocessors': [{
'key': 'FFmpegExtractAudio', #what to use for video format converting?
'preferredcodec': 'mp3', #what to use for video format converting?
'preferredquality': '192', #what to use for video format converting?
}],
'logger': MyLogger(),
'progress_hooks': [my_hook],
}
with youtube_dl.YoutubeDL(ydl_opts) as ydl:
ydl.download([video_url])
1 ответ
Решение
Доступные постпроцессоры перечислены в postprocessor/__init__.py
:
ydl_opts = {
# ...
'postprocessors': [{
'key': 'FFmpegVideoConvertor',
'preferedformat': 'mp4', # one of avi, flv, mkv,mp4, ogg, webm
})
}
(Лучшее название для этого ключа было бы convert_to
, но изменение его сейчас без необходимости нарушит совместимость.)