📜  streamlink 保存到 mp4 - Shell-Bash (1)

📅  最后修改于: 2023-12-03 14:47:43.528000             🧑  作者: Mango

用 Shell-Bash 实现使用 Streamlink 保存视频到 MP4

Streamlink 是一个用 Python 编写的命令行工具,它能够从许多流媒体网站(如 Twitch、YouTube 和 Periscope 等)中提取视频流并将其转换为各种格式。在本文中,我们将使用 Streamlink 和 Shell-Bash 编写一个脚本,实现从指定的流媒体网站上下载视频,并将其保存为 MP4 格式。

Step 1:安装 Streamlink

要使用 Streamlink,首先需要在您的系统上安装它。在 Ubuntu 系统上,您可以使用以下命令来安装 Streamlink:

sudo apt-get update
sudo apt-get install streamlink

如果您使用的是其他操作系统,请参考 Streamlink 的官方文档进行安装。

Step 2:写 Bash 脚本

接下来,我们将编写一个 Bash 脚本,该脚本将从用户输入的 URL 中提取视频流,并将其保存为 MP4 格式的文件。以下是脚本的代码:

#!/bin/bash

url="$1"
filename="$2"

if [ -z "$url" ]; then
    echo "Usage: $0 <URL> [filename]"
    exit 1
fi

if [ -z "$filename" ]; then
    filename="$(date '+%Y-%m-%d_%H-%M-%S').mp4"
fi

streamlink --stdout "$url" best | ffmpeg -i pipe:0 -c copy "$filename"

让我们逐行解释一下上述代码:

  1. 第一行指定了脚本使用的 Shell 程序是 Bash。
  2. 第三行和第四行接受两个参数 URL 和文件名。
  3. 第六行检查 URL 是否为空,如果为空则显示使用方法并退出脚本。
  4. 第八行检查文件名是否为空,如果为空,则使用当前时间生成一个默认名称(如“2021-07-26_10-50-00.mp4”)。
  5. 第十行调用 Streamlink 命令行工具,在线从网站中提取最佳视频流,并将其输出到标准输出。
  6. 第十一行使用管道将输出传递给 ffmpeg 工具,以将视频流保存为 MP4 格式的文件。
Step 3:运行脚本

要使用脚本,请将其保存为任何名称的文件(例如,download.sh),并将其设为可执行文件:

chmod +x download.sh

然后,您可以运行脚本,指定要下载的视频 URL 和可选的文件名,如下所示:

./download.sh https://www.twitch.tv/streamer1 output.mp4

这将从 Twitch 的“streamer1”频道中提取最佳视频流,并将其保存为“output.mp4”文件。

结论

通过 Shell-Bash 和 Streamlink,我们实现了一个简单的脚本,可以快速从流媒体网站中提取和下载视频,并将其转换为 MP4 格式。该脚本可以方便地用于批量下载视频或整合到其他应用程序中,以自动化视频的处理和管理。