Added a minimum video bitrate select feature
This commit is contained in:
parent
d7b3b4ff81
commit
dffb6afec9
@ -83,7 +83,7 @@ Options:
|
|||||||
| -cr, --closest-resolution | If resolution specified is not found, defaults to closest resolution available | False |
|
| -cr, --closest-resolution | If resolution specified is not found, defaults to closest resolution available | False |
|
||||||
| -v, --vcodec | Video Codec | H264 |
|
| -v, --vcodec | Video Codec | H264 |
|
||||||
| -a, --acodec | Audio Codec | None |
|
| -a, --acodec | Audio Codec | None |
|
||||||
| -vb, --vbitrate | Video Bitrate | Max |
|
| -vb, --vbitrate | Video Bitrate, "Min" or a number based on --list | Max |
|
||||||
| -ab, --abitrate | Audio Bitrate | Max |
|
| -ab, --abitrate | Audio Bitrate | Max |
|
||||||
| -aa, --atmos | Prefer Atmos Audio | False |
|
| -aa, --atmos | Prefer Atmos Audio | False |
|
||||||
| -r, --range | Video Color Range `HDR`, `HDR10`, `DV`, `SDR` | SDR |
|
| -r, --range | Video Color Range `HDR`, `HDR10`, `DV`, `SDR` | SDR |
|
||||||
|
@ -201,7 +201,7 @@ def get_credentials(service, profile="default"):
|
|||||||
help="Video Codec, defaults to H264.")
|
help="Video Codec, defaults to H264.")
|
||||||
@click.option("-a", "--acodec", callback=acodec_param, default=None,
|
@click.option("-a", "--acodec", callback=acodec_param, default=None,
|
||||||
help="Audio Codec")
|
help="Audio Codec")
|
||||||
@click.option("-vb", "--vbitrate", "vbitrate", type=int,
|
@click.option("-vb", "--vbitrate", "vbitrate", type=str,
|
||||||
default=None,
|
default=None,
|
||||||
help="Video Bitrate, defaults to Max.")
|
help="Video Bitrate, defaults to Max.")
|
||||||
@click.option("-ab", "--abitrate", "abitrate", type=int,
|
@click.option("-ab", "--abitrate", "abitrate", type=int,
|
||||||
@ -402,10 +402,19 @@ def result(ctx, service, quality, closest_resolution, range_, wanted, alang, sla
|
|||||||
closest_res = min(available_resolutions, key=lambda x: abs(x - quality))
|
closest_res = min(available_resolutions, key=lambda x: abs(x - quality))
|
||||||
log.warning(f" - No {quality}p resolution available, using closest available: {closest_res}p")
|
log.warning(f" - No {quality}p resolution available, using closest available: {closest_res}p")
|
||||||
quality = closest_res
|
quality = closest_res
|
||||||
#title.tracks.select_videos(by_quality=quality, by_range=range_, one_only=True)
|
|
||||||
|
# Modified video track selection to choose lowest bitrate if vbitrate == min
|
||||||
|
if vbitrate.lower() == "min":
|
||||||
|
available_bitrate = [int(track.bitrate) for track in title.tracks.videos]
|
||||||
|
if not available_resolutions:
|
||||||
|
log.error(" - No video tracks available")
|
||||||
|
continue
|
||||||
|
vbitrate = min(available_bitrate)
|
||||||
|
log.warning(f" - Choosing minimum bitrate: {vbitrate}")
|
||||||
|
else:
|
||||||
|
vbitrate = int(vbitrate)
|
||||||
title.tracks.select_videos(by_quality=quality, by_vbitrate=vbitrate, by_range=range_, one_only=True)
|
title.tracks.select_videos(by_quality=quality, by_vbitrate=vbitrate, by_range=range_, one_only=True)
|
||||||
title.tracks.select_audios(by_language=alang, by_bitrate=abitrate, with_descriptive=audio_description)
|
title.tracks.select_audios(by_language=alang, by_bitrate=abitrate, with_descriptive=audio_description)
|
||||||
# title.tracks.select_audios(by_language=alang, with_descriptive=audio_description)
|
|
||||||
title.tracks.select_subtitles(by_language=slang, with_forced=True)
|
title.tracks.select_subtitles(by_language=slang, with_forced=True)
|
||||||
except ValueError as e:
|
except ValueError as e:
|
||||||
log.error(f" - {e}")
|
log.error(f" - {e}")
|
||||||
|
Binary file not shown.
Loading…
x
Reference in New Issue
Block a user