无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站虚位以待广告联系 微信:wuyouceo QQ:184822951
查看: 1138|回复: 15

[求助] 关于 yt-dlp 下载选择的两个疑问

[复制链接]
发表于 2022-12-9 00:07:47 | 显示全部楼层 |阅读模式
本帖最后由 DOSforever 于 2022-12-9 00:19 编辑

yt-dlp 如果不使用选择视频选项的话,默认是自动选择最好质量的音视频,但什么是最好?以 youtube 上某个视频为例
根据 -F 选项所列出的结果

[info] Available formats for jWU0WdMJ2Kw:
ID  EXT   RESOLUTION FPS CH |   FILESIZE  TBR PROTO | VCODEC         VBR ACODEC      ABR ASR MORE INFO
--------------------------------------------------------------------------------------------------------------
sb2 mhtml 48x27        0    |                 mhtml | images                                 storyboard
sb1 mhtml 60x45        0    |                 mhtml | images                                 storyboard
sb0 mhtml 120x90       0    |                 mhtml | images                                 storyboard
139 m4a   audio only      2 |    3.82MiB  49k https | audio only         mp4a.40.5   49k 22k low, m4a_dash
249 webm  audio only      2 |    3.84MiB  49k https | audio only         opus        49k 48k low, webm_dash
250 webm  audio only      2 |    4.21MiB  54k https | audio only         opus        54k 48k low, webm_dash
140 m4a   audio only      2 |   10.14MiB 129k https | audio only         mp4a.40.2  129k 44k medium, m4a_dash
251 webm  audio only      2 |    8.85MiB 113k https | audio only         opus       113k 48k medium, webm_dash

17  3gp   176x144     12  1 |    3.53MiB  45k https | mp4v.20.3      45k mp4a.40.2    0k 22k 144p
394 mp4   192x144     30    |    1.52MiB  19k https | av01.0.00M.08  19k video only          144p, mp4_dash
160 mp4   192x144     30    |  853.79KiB  11k https | avc1.4d400c    11k video only          144p, mp4_dash
278 webm  192x144     30    |    1.51MiB  19k https | vp9            19k video only          144p, webm_dash
395 mp4   320x240     30    |    2.17MiB  28k https | av01.0.00M.08  28k video only          240p, mp4_dash
133 mp4   320x240     30    |    1.23MiB  16k https | avc1.4d400d    16k video only          240p, mp4_dash
242 webm  320x240     30    |    2.31MiB  30k https | vp9            30k video only          240p, webm_dash
396 mp4   480x360     30    |    3.28MiB  42k https | av01.0.01M.08  42k video only          360p, mp4_dash
134 mp4   480x360     30    |    2.21MiB  28k https | avc1.4d401e    28k video only          360p, mp4_dash
18  mp4   480x360     30  2 | ~ 12.60MiB 157k https | avc1.42001E   157k mp4a.40.2    0k 44k 360p
243 webm  480x360     30    |    3.74MiB  48k https | vp9            48k video only          360p, webm_dash
397 mp4   640x480     30    |    4.96MiB  63k https | av01.0.04M.08  63k video only          480p, mp4_dash
135 mp4   640x480     30    |    3.49MiB  45k https | avc1.4d401e    45k video only          480p, mp4_dash
244 webm  640x480     30    |    6.01MiB  77k https | vp9            77k video only          480p, webm_dash
22  mp4   960x720     30  2 | ~ 16.40MiB 204k https | avc1.64001F   204k mp4a.40.2    0k 44k 720p
398 mp4   960x720     30    |    8.41MiB 107k https | av01.0.05M.08 107k video only          720p, mp4_dash
136 mp4   960x720     30    |    5.91MiB  75k https | avc1.4d401f    75k video only          720p, mp4_dash
247 webm  960x720     30    |   11.56MiB 148k https | vp9           148k video only          720p, webm_dash
399 mp4   1440x1080   30    |   19.63MiB 251k https | av01.0.08M.08 251k video only          1080p, mp4_dash
137 mp4   1440x1080   30    |    9.77MiB 125k https | avc1.640028   125k video only          1080p, mp4_dash
248 webm  1440x1080   30    |   22.77MiB 291k https | vp9           291k video only          1080p, webm_dash

一般来说位率越高,质量越好。可以看出对视频来说 ID 为 248 的视频流质量最好,ID 为 140 的音频流质量最好。那么我用
-f "bv,ba" 选项应该是自动选择这两个媒体流,然而,使用这个选项 yt-dlp 自动选择的却是 248 和 251 这两个媒体流。
或许是 yt-dlp 认为,既然视频流是 webm 格式的,那就相应的音频流也应该尽量选择相同格式的,于是它在同样是 webm 中选择了 251 。还是尽管 140 的看上去位率高,但实际质量还不如 251 ?

问题1:那么有没有办法让 yt-dlp 自动选择无论什么格式音/视频中质量最好的一个呢?

问题2:即便自动选择了的是 251 ,也无法下载,因为前面已下载的视频文件也是同名的 webm ,所以 yt-dlp 会认为已经有同名文件,不覆盖,而停止下载音频文件。这一点不如 you-get,you-get 会自动把同名的视频文件名的最后加上 [00] ,音频文件名的最后加上 [01] 。那么有没有办法让 yt-dlp 也自动改名呢?
发表于 2022-12-9 01:27:34 | 显示全部楼层
本帖最后由 kli 于 2022-12-9 01:33 编辑

只要视频格式选了webm,那么推荐音频也选webm 251,反正也不是常规的264格式了,各种移动设备或者浏览器也不一定直接支持,最后都要转码的

而选择137这种h264的,就要选140 aac,这样下载下来的直接能在所有设备播放

我是用YouTube-dl的,命令行里一般是137+140,其他的vp9+251,最后会自动调用FFmpeg合并

yt-dlp用-248+251应该也是能自动区分2个部分吧

难道你单独分开下载的?

回复

使用道具 举报

 楼主| 发表于 2022-12-9 13:15:44 | 显示全部楼层
什么格式无所谓,不管什么格式我电脑和手机上都能播放,不需要转码,所以我只要自动下载最好的就可以。
yt-dlp 对下载的媒体流可以自动合并,也可以不合并,这个无所谓,我只要让它能够自动识别确实是最好质量的媒体流。
you-get 是自动分别下载两个媒体流的,根据你所选择的 ID 号。
回复

使用道具 举报

发表于 2022-12-9 20:26:31 | 显示全部楼层
看分辨率
回复

使用道具 举报

发表于 2022-12-11 14:54:24 | 显示全部楼层
用心愿浏览器
回复

使用道具 举报

发表于 2022-12-11 15:00:46 | 显示全部楼层
IDM 可以选择来下载的。。。
回复

使用道具 举报

 楼主| 发表于 2022-12-11 15:13:59 | 显示全部楼层

我不是问怎么下载,随便哪个都可以下载,而是问如何选择下载。
回复

使用道具 举报

 楼主| 发表于 2022-12-11 15:15:37 | 显示全部楼层
fly_hong 发表于 2022-12-11 15:00
IDM 可以选择来下载的。。。

我不是问怎么选择下载,随便哪个我都可以选择下载,而是问如何选择下载。也就是究竟以什么认为哪个音频质量为好。
回复

使用道具 举报

发表于 2022-12-11 16:21:29 | 显示全部楼层
本帖最后由 yanling112 于 2022-12-11 16:23 编辑

我曾经也遇到过这个问题,yt-dlp -f best  下载到了480的视频,明明有4K的

后来自己把参数alias成yt-dlp命令进环境变量

  1. yt-dlp -f 'bestvideo[vcodec=av1]+bestaudio[acodec=opus]/bestvideo[vcodec=vp9]+bestaudio[acodec=opus]/bestvideo[ext=mp4]+bestaudio[ext=m4a]/best'
复制代码


楼主你试试
回复

使用道具 举报

发表于 2022-12-11 17:17:22 | 显示全部楼层
心愿浏览器下4k啊
回复

使用道具 举报

 楼主| 发表于 2022-12-11 18:06:16 | 显示全部楼层
yanling112 发表于 2022-12-11 16:21
我曾经也遇到过这个问题,yt-dlp -f best  下载到了480的视频,明明有4K的

后来自己把参数alias成yt-dlp ...

是这么回事,best 参数不是指把最好质量的视频和最好质量的音频流下载下来,而是只把同时包含视频和音频流的最好质量的媒体流下载下来,原话是:
b, best: Select the best quality format that contains both video and audio. Equivalent to best*[vcodec!=none][acodec!=none]
也就是单独的视频和音频流不会在它的选择之中,哪怕它们的质量比同时包含的媒体流中的要高。以我所举的例子来说明。
在这么多媒体流中,单独最好质量的视频流是 248 ,单独最好质量的音频流是 140 (我是以 TBR 大小为标准衡量的,TBR 越高,我认为质量越好,但在我举得例子中 yt-dlp 却认为是 251 的音频流质量最好,这也是我疑问的地方,所以不知道 yt-dlp 是以什么判断标准为最好),但是它们都不是同时包含视频流和音频流,同时包含视频流和音频流的媒体流只有 17 、18 和 22 ,所以如果用 best 参数的话,它自动选择的是 22 ,而不是更高质量的 248 。
你用的参数我试了下,就我这个例子而言和它默认的选项在结果上没什么区别,任然认为 248+251 最好。而不是我认为的 248+140 。


点评

视频链接发一下我看看  详情 回复 发表于 2022-12-12 14:18
回复

使用道具 举报

发表于 2022-12-12 14:18:03 | 显示全部楼层
DOSforever 发表于 2022-12-11 18:06
是这么回事,best 参数不是指把最好质量的视频和最好质量的音频流下载下来,而是只把同时包含视频和音频 ...

视频链接发一下我看看
回复

使用道具 举报

发表于 2022-12-12 14:27:48 | 显示全部楼层
看到了,我研究一下

https://www.youtube.com/watch?v=jWU0WdMJ2Kw
回复

使用道具 举报

 楼主| 发表于 2022-12-12 17:50:10 | 显示全部楼层

关于 yt-dlp 下载选择的两个疑问

yanling112 发表于 2022-12-12 14:27
看到了,我研究一下

https://www.youtube.com/watch?v=jWU0WdMJ2Kw

勿需研究了,我到 github 上看了下,原来这是一个被人反复提到的老问题了 https://github.com/yt-dlp/yt-dlp/issues/1232

原来 best 就不一定就是你想的 best ,如果你想 best 最好你手工指定。

回复

使用道具 举报

 楼主| 发表于 2022-12-12 17:56:19 | 显示全部楼层

RE: yanling112

但是,就你的问题而言,你的问题和我不一样,你的是侠义上的 best 和 best* 参数用法有误,而我的是广义上 best, bv, ba 参数的 best 的理解。

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2023-5-30 05:53

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表