Как выбрать максимальное разрешение и указать формат/кодек в yt-dlp?
Я часто использую yt-dlp, и мне он нравится. Но есть проблема, которую я нигде не могу найти документированной.
yt-dlp -v -f "bv*[height<=720]+ba*[ext=m4a]" -N 4 "https://www.youtube.com/xxx"
Найдем лучшее видео, разрешение которого не превышает 720.
yt-dlp -v -f "bv*[ext=mp4]+ba*[ext=m4a]" -N 4 "https://www.youtube.com/xxx"
найдет лучшее видео типа MP4 независимо от разрешения.
Я хотел бы выбрать как расширение/кодек (avc1
) и ограничьте высоту.
yt-dlp -v -f "bv*[height<=720,ext=mp4]+ba*[ext=m4a]" -N 4 "https------"
казалось бы, имеет смысл, но это терпит неудачу;
Синтаксическая ошибка: неверная спецификация фильтра «высота <= 720, ext = mp4».
Я пробовал разные символы, чтобы разделить два фильтра (;
&
+
и т. д.), но не может найти правильный синтаксис, если он существует. Я провел множество поисков в Интернете, но не нашел примера совместного использования двух квалификаторов, таких как максимальное разрешение и тип файла.
Я также попробовал:
yt-dlp -v -f "bv*[height<=720]+bv*[ext=mp4]+ba*[ext=m4a]" -N 4 "http----"
который работает без ошибок, но используется только первый фильтр «BV», устанавливающий максимальную высоту. Похоже, что второй фильтр, определяющий MP4, игнорируется.
Итак, мои вопросы: можно ли указать два или более фильтров для видео, или yt-dlp этого просто не делает?
Если это должно быть возможно, может ли кто-нибудь предоставить правильный синтаксис? Или указать на конкретную веб-страницу, на которой написано, что это такое?
1 ответ
Согласно документации , это должно работать:
yt-dlp -v -f "bv*[height<=720][ext=mp4]+ba*[ext=m4a]" -N 4 "https://www.youtube.com/xxx"
Таким образом, вы указываете каждый фильтр в отдельной паре квадратных скобок.
Если вы хотите также загрузить определенный кодек, который не был указан ранее, вы также можете добавить для него фильтр:
yt-dlp -v -f "bv*[height<=720][ext=mp4][vcodec^=avc1]+ba*[ext=m4a]" -N 4 "https://www.youtube.com/xxx"
^=
означает «начинается с», посколькуavc1
кодеки, кажется, имеют какой-то дополнительный хеш или что-то еще после.
в списке.