腾讯轻量利用yt-dl保存油管/Twitch直播视频

2021-06-08 11:06:12 浏览数 (1)

6.6那天有位朋友参加小学同学的聚会去了,这天刚好是MIKU EXPO 2021线上LIVE的直播,他就委托我给他录个屏以便他回来后欣赏。

直播的平台是Youtube和Twitch,事实上油管那边就是引个流,以至于下了半天没卵用的东西。 直接拿obs录屏对于保存直播视频应该算是下下策了,能够直接拼接m3u8引导的ts流当然是最好的,于是研究了下You-get和Youtube-dl的文档,在这简单分享下~


一、准备工作

首先肯定是一台访问Twitch和YouTube都很流畅的服务器,而且还要方便拖回本地处理。我在这推荐腾讯云的轻量应用服务器,价格便宜而且一来香港地区是30M的GIA网络,二来我可以通过内网copy到COS,然后拉满服务器带宽快速取回~

至于You-get和Youtube-dl的取舍,前者环境要求是py3,后者是py2.6 ,因为笔者手里这台轻量还没有配置py3的环境自然优先考虑后者了。

(1)安装youtube-dl,用来下载直播切片

代码语言:javascript复制
wget https://yt-dl.org/downloads/latest/youtube-dl -O /usr/local/bin/youtube-dl
chmod a rx /usr/local/bin/youtube-dl

(2)安装ffmpeg,用来拼接直播流切片

Debian/Ubuntu下安装非常方便:

代码语言:javascript复制
apt install ffmpeg

CentOS7稍微麻烦一些(8需要对应的nux源):

代码语言:javascript复制
#安装epel源 
yum install epel-release -y 
#导入Nux Dextop第三方源 
rpm --import http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.rosudo
rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-5.el7.nux.noarch.rpm 
#更新 
yum update 
#安装ffmpeg 
yum install ffmpeg ffmpeg-devel -y

(3)安装screen

直接yum或者apt安装就是了,这个是为了防止录制过程中console断开导致程序结束。

代码语言:javascript复制
#Debian/Ubuntu
apt install screen
#CentOS
yum install screen

二、下载视频

首先打开个screen窗口:

代码语言:javascript复制
#创建名为live的screen窗口 
screen -S live 
#中断后返回screen窗口 
screen -r live

然后直接用you-get下载即可,注意“[]”是要一起替换掉的,最后输出的文件名也不要重复~

代码语言:javascript复制
youtube-dl -o - [油管/Twitch地址] | ffmpeg -i - -vcodec copy -acodec copy "live01.mp4"

录制的内容结束之后,直接结束即可,不会影响到录制的视频内嵌信息

代码语言:javascript复制
#结束录制
ctrl c

三、效果

传到COS的话之前测试过,基本上70m/s 的速度,注意下要想和COS内网通信只能使用腾讯云提供的默认DNS。

测试的时候直接在电信网络下取回来的速度基本跑满了30M,几个分段很快就取回来了。

然后直接拿视频裁剪工具掐头去尾,完美避免了转码导致的画质损失和不必要的转码时间花费。


腾讯轻量最近的无忧计划发了很多无门槛代金卷,可以直接用于轻量应用服务器,购买直接前往腾讯云官网就可以啦,好用的东西不用多说啦~

0 人点赞