yt-dlp.png

最近想录制youtube视频,发现youtube-dl速度非常慢,只有几十Kb/s,网上搜索后搞清楚原因是,youtube-dl的版本已经被油管官方限制了,youtube-dl也很久没有维护了,同时发现yt-dlp(一个扩展了功能的 youtube-dl工具,使用功能和youtube-dl一样,视频下载、直播录制都ok,所以写一篇文章分享几个场景的使用方法

项目地址:https://github.com/yt-dlp/yt-dlp#release-files

安装yt-dlp ffmpeg

yt-dlp是python项目,所以需要在你的设备安装python

Debian 或 Ubuntu 系统:

sudo apt update
sudo apt upgrade

sudo apt install python3
sudo apt install ffmpeg

CentOS 或 Fedora 系统:

sudo yum update
sudo yum install python3
sudo yum install ffmpeg

在安卓 Termux 上安装 Python:

Termux 是 Android 上的一个模拟 Linux 环境,可以在其中安装和运行 Python。

打开 Google Play 商店,搜索并安装 Termux 应用。
打开 Termux 应用,在终端中运行以下命令以安装 Python:

pkg update
pkg upgrade
pkg install python
pkg install ffmpeg

安装完成后,可以在终端中输入 python --version有版本号输出,代表输出成功

安装完python后,在终端输入yt-dlp

pip install yt-dlp
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple yt-dlp #清华源

下载各平台视频

1.直接下载

# 默认格式,高于720P的格式一般是 webm 格式
yt-dlp https://www.youtube.com/watch?v=kNU2WCHVVBk

# 下载视频转换成mp4(用--merge-output-format参数)
yt-dlp --merge-output-format mp4 https://www.youtube.com/watch?v=k

2.查看视频所有分辨率

跟用 youtube-dl命令一样,先用-F参数查看有哪些分辨率。

![yt-dlp -F https://youtu.be/F0ZvF-FbCr0][2]

结果跟用 youtube-dl命令的差不多,标题行含义:

ID:视频的唯一标识符或ID。这通常是视频在平台上的唯一标识符,用于在视频网站中定位和识别视频。

EXT:视频的文件格式扩展名。例如,"mp4" 表示视频是 MP4 格式的,"webm" 表示视频是 WebM 格式的。

RESOLUTION:视频的分辨率,指视频的水平和垂直像素数。例如,"720p" 表示视频分辨率为 1280x720 像素。

FPS:视频的帧率,指视频中每秒显示的帧数。帧率决定了视频的流畅度和动画效果。

FILESIZE:视频文件的大小,通常以字节为单位。这可以帮助了解视频文件的大小,以便在下载前估算所需的存储空间。

VCODEC:视频编解码器。它指示用于编码视频的算法,以及在解码时用于解码视频的算法。例如,"mp4a.40.2"
表示视频包含了音频(.40.2)。

ACODEC:音频编解码器。它指示用于编码音频的算法,以及在解码时用于解码音频的算法。例如,"video only"
表示视频中仅包含视频而没有音频。

3.下载指定分辨率

# 1.只下载音频
# 找m4a格式,列表越靠后越清晰。比如ID:140 | EXT:m4a | audio only
yt-dlp -f140 https://www.youtube.com/watch?v=kNU2WCHVVBk

# 2.下载音频转换成mp3(加上-x --audio-format参数)
yt-dlp -f140 -x --audio-format mp3 https://www.youtube.com/watch?v=kNU2WCHVVBk

# 3.下载视频(带音频)ID:22 | EXT:mp4 | 1280*720
yt-dlp -f22 https://www.youtube.com/watch?v=kNU2WCHVVBk

# 4.下载指定分辨率视频+音频(为了方便就直接下载mp4格式了)
# 1080及以上分辨率的音频和视频是分开的,所以一般会音频和视频一起下载
yt-dlp -f299+140 https://www.youtube.com/watch?v=kNU2WCHVVBk

# 5.(通用)下载最佳mp4视频+最佳m4a音频格式并合成mp4
yt-dlp -f 'bv[ext=mp4]+ba[ext=m4a]' --embed-metadata --merge-output-format mp4 https://www.youtube.com/watch?v=kNU2WCHVVBk

# 6.指定文件名下载(用-o参数)
# 默认下载的文件格式是:title+空格+[id].格式,比如***** [kNU2WCHVVBk].mp4
# 文件名只要标题,不要id,加上 -o '%(title)s.mp4'
yt-dlp -f 'bv[ext=mp4]+ba[ext=m4a]' --embed-metadata --merge-output-format mp4 https://www.youtube.com/watch?v=kNU2WCHVVBk -o '%(title)s.mp4'

最方便直接用,可以直接用最后一种通用的下载最佳视频的方式。

下载播放列表所有视频

yt-dlp https://www.youtube.com/playlist?list=**********

录制直播

yt-dlp -f best -o output_filename.extension "直播链接"

参数说明:

-f best:选择最佳质量的视频流进行下载。您可以根据需要选择其他质量选项。
-o output_filename.extension:指定输出文件的名称和扩展名。您可以将其替换为您希望的文件名和扩展名(例如,output.mp4)。
"直播链接":替换为您想要录制的直播流的链接。

注意:下载海外平台视频需要开启代理

yt-dlp配合ffmpeg进行转播

使用 yt-dlp 结合 ffmpeg 可以在录制直播流的同时进行实时转播(转码和重编码)操作。以下是一个示例命令

yt-dlp -o - "直播链接" | ffmpeg -i - -c:v copy -c:a aac -strict experimental -f flv "rtmp://转播服务器地址"

yt-dlp 结合 ffmpeg 进行实时转播时,您可以通过指定不同的 ffmpeg 参数来控制转播的码率、分辨率和其他设置。

指定视频和音频码率:

yt-dlp -o - "直播链接" | ffmpeg -i - -c:v libx264 -b:v 2000k -c:a aac -b:a 128k -strict experimental -f flv "rtmp://转播服务器地址"

在这个命令中,-b:v 指定视频码率为 2000k,-b:a 指定音频码率为 128k。

指定分辨率:

yt-dlp -o - "直播链接" | ffmpeg -i - -vf "scale=1280:720" -c:v libx264 -b:v 2000k -c:a aac -b:a 128k -strict experimental -f flv "rtmp://转播服务器地址"

在这个命令中,-vf "scale=1280:720" 指定视频分辨率为 1280x720 像素。

指定帧率:

yt-dlp -o - "直播链接" | ffmpeg -i - -r 30 -c:v libx264 -b:v 2000k -c:a aac -b:a 128k -strict experimental -f flv "rtmp://转播服务器地址"

在这个命令中,-r 30 指定视频帧率为 30 帧每秒。

分类: FFmpeg探索 标签: 暂无标签

评论

暂无评论数据

暂无评论数据

目录