使用Streamlink工具录制Twitch直播视频的小教程

streamlink是一个开源的小工具,就和下载youtube视频的工具youtube-dl差不多,不过streamlink主要用途是用来截取和录制直播流媒体。

 

先说使用Linux的方法,不管是CentOS,ubuntu,还是debian,都可以照葫芦画瓢的安装使用。

不过 ubuntu 或者 debian的安装命令不一样,可以去本文最下面的链接中找。

 

以CentOS举例,为了方便演示,直接使用宝塔面板的VPS演示了。

安装完宝塔面板后,在软件商店中安装宝塔SSH终端,如图

 

打开终端工具,输入你的root密码后登录,默认位置应该是root目录,如图

如果不是root目录,则输入

cd ~

在root目录,依次输入下面的命令运行

更新系统

yum update -y

安装python3

yum install python3-pip

安装you-get

pip3 install you-get

安装streamlink

pip3 install streamlink

更新streamlink库

pip3 install --upgrade streamlink

安装FFmpeg

yum install -y epel-release
sudo rpm –import http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.ro
sudo rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-1.el7.nux.noarch.rpm
yum install -y ffmpeg

安装完成

接下来就是解析直播流媒体链接,以及录制的命令

解析链接,后面的 thebs_chen 是twitch的房间频道网址

这里用的是twitch的直播,可以把下面代码中的网址换成其他平台的,比如youtube什么的。

streamlink twitch.tv/thebs_chen

效果如图

可以看到一共好几个媒体流,其中最好的是1080p 60帧的,最差的是160p的

 

录播命令,推荐换个目录执行,别直接在root的目录执行

比如去 wwwroot的目录中录制视频

cd /www/wwwroot

 

录制视频的命令

在当前执行命令的文件夹中运行

录制的视频文件叫 loadream.mp4

录制的网址是 twitch.tv/thebs_chen

录制的画质是 best ,最好的画质

streamlink -o loadream.mp4 twitch.tv/thebs_chen best

执行后就开始录制了,不想录制了就关了终端,或者播主停播了就自动停了。

 

再说一下自动录像的方法

在github上找到一个可以自动检测是否开播,开播后自动录像的方法

首先,需要给vps安装 screen ,为了能关掉终端后,命令依然能执行

yum install screen

安装后新建一个叫做missfeather的会话

screen -S missfeather

然后就可以在这个missfeather的会话中运行命令,关掉终端后命令也能继续执行。

关掉终端后,重新打开这个会话的命令

screen  -r missfeather

以及查看所有的会话,终止会话,清除会话的命令。

screen -ls
screen -d  <session ID 或者 名字>
screen -wipe
screen -X -S ID和名称 quit

总之,新建missfeather的会话后,所有的直播,转播,录制的命名,都在missfeather的这个新会话里完成就可以了。

 

github上的twitch自动检测是否开播,以及开播后自动录像的脚本

地址:https://github.com/printempw/live-stream-recorder

好几个脚本,有自动检测youtube是否开播,开播后自动录像的,也能直接检测和录制m3u8的链接。

但是经过我的测试,录制twitch的脚本有问题,录制完成后,视频就丢失了,所以我改了一下脚本,现在可以正常用了

这是我修改之后的脚本代码

#!/bin/bash
# Twitch Live Stream Recorder

if [[ ! -n "$1" ]]; then
  echo "usage: $0 twitch_id [format] [loop|once] [interval]"
  exit 1
fi

# Record the highest quality available by default
FORMAT="${2:-best}"
INTERVAL="${4:-10}"

while true; do
  # Monitor live streams of specific channel
  while true; do
    LOG_PREFIX=$(date +"[%Y-%m-%d %H:%M:%S]")
    echo "$LOG_PREFIX Try to get current live stream of twitch.tv/$1"

    # Get the m3u8 address with streamlink
    M3U8_URL=$(streamlink --stream-url "twitch.tv/$1" "$FORMAT")
    (echo "$M3U8_URL" | grep -q ".m3u8") && break

    echo "$LOG_PREFIX The stream is not available now."
    echo "$LOG_PREFIX Retry after $INTERVAL seconds..."
    sleep $INTERVAL
  done

  # Record using MPEG-2 TS format to avoid broken file caused by interruption
  FNAME="twitch_${1}_$(date +"%Y%m%d_%H%M%S").mp4"
  echo "$LOG_PREFIX Start recording, stream saved to \"$FNAME\"."

  # Start recording
  streamlink -o "$FNAME" twitch.tv/$1 best
  # ffmpeg -i "$M3U8_URL" -codec copy -f mpegts "$FNAME" > "$FNAME.log" 2>&1

  # Exit if we just need to record current stream
  LOG_PREFIX=$(date +"[%Y-%m-%d %H:%M:%S]")
  echo "$LOG_PREFIX Live stream recording stopped."
  [[ "$3" == "once" ]] && break
done

 

新建文件 record_twitch.sh ,内容就是我上面的代码

打开你打算录制的目录,把脚本 record_twitch.sh 上传到这个目录。

 

比如我的在 /www/wwwroot/rtmp.hercd.com 这个目录下运行和录制

打开终端,创建一个会话

screen -S missfeather

切换到上面我提到的路径

cd /www/wwwroot/rtmp.hercd.com

脚本上传到这个目录,如图

终端执行这个命令

./record_twitch.sh thebs_chen best loop

比如上面的命令,是twitch的脚本,自动检测 thebs_chen 频道,每10秒检测一次,检测到开播后自动录像,录制完成后会继续执行检测命令,直到下次开播。

更多命令和参数可以去上面的github看看,录制后效果如下

接下来说一下Windows 版的

Windows 系统也是推荐先安装python,然后在cmd中用pip命令安装

pip install streamlink

不过感觉萌新挺多的,并且官方也有.exe的安装版

所以直接打包了一个完整包,下载安装就行了,更新地址见最下面。

v1.11.0 + 2.1.2 的网盘打包

链接:https://pan.baidu.com/s/16R03Iel5QzOKS_oTB5lxEw
提取码:xu1v

https://cloud.189.cn/t/uAVN3eBBFrQr

 

更多linux系统或者macOS系统安装命令代码:https://streamlink.github.io/install.html

Windows 安装版下载:https://github.com/streamlink/streamlink/releases

Windows 窗口化工具:https://github.com/streamlink/streamlink-twitch-gui/releases

Windows 便携版,非官方:https://github.com/beardypig/streamlink-portable/releases

还有就是谢谢大家的捐赠赞助鸭~:https://www.hercd.com/donations/
陈一发儿 » 使用Streamlink工具录制Twitch直播视频的小教程