typecho 发布的文章

要利用 FFmpeg 给 M3U8 文件补上基础网址,可以通过修改 M3U8 文件内容,为每个分片 URL 添加基础网址,再使用 FFmpeg 进行后续处理(如下载、转码等)。以下是具体步骤:

步骤1:确定基础网址

假设你的基础网址是  https://example.com/video/ (需替换为实际的基础域名+路径)。

步骤2:修改 M3U8 文件的分片 URL

M3U8 中的分片 URL 是相对路径,需要将其替换为基础网址+相对路径的绝对 URL。可以通过文本编辑器手动修改,或用脚本批量处理。

例如,原分片 URL 是  283288058_242207984_1.ts?start=0&end=1485951&type=mpegts&resolution=720x12… ,修改后应为  https://example.com/video/283288058_242207984_1.ts?start=0&end=1485951&type=mpegts&resolution=720x12… 。

步骤3:使用 FFmpeg 处理带基础网址的 M3U8

修改完成后,即可用 FFmpeg 对 M3U8 进行下载、转码等操作。例如,将 M3U8 下载并合并为 MP4 文件:

bash

ffmpeg -i 你的修改后.m3u8 -c copy 输出文件.mp4
 

批量修改的脚本示例(Python)

如果 M3U8 文件较长,可通过 Python 脚本批量添加基础网址:

python

base_url = "https://example.com/video/" # 替换为实际基础网址
input_m3u8 = "input.m3u8" # 原M3U8文件名
output_m3u8 = "output.m3u8" # 修改后的M3U8文件名

with open(input_m3u8, "r") as f_in, open(output_m3u8, "w") as f_out:

for line in f_in:
    if line.strip().startswith(("http://", "https://")):
        # 若已有绝对URL则跳过(或根据需求调整)
        f_out.write(line)
    elif line.strip().endswith((".ts", ".m4s")):  # 分片文件扩展名
        f_out.write(base_url + line)
    else:
        f_out.write(line)

 

运行脚本后,得到的  output.m3u8  就是包含完整基础网址的文件,再用 FFmpeg 处理即可。

通过以上步骤,就能为 M3U8 文件的分片 URL 补上基础网址,进而用 FFmpeg 完成后续操作。

在 Ubuntu 上安装 Fiddler,需要使用其跨平台版本,即 Fiddler Everywhere。

传统的 Fiddler Classic 主要是为 Windows 设计的,虽然可以通过 Mono 框架在 Linux 上运行,但官方已停止支持和更新,推荐使用 Fiddler Everywhere。

Fiddler Everywhere 提供了原生的 Linux 支持,并且提供一个 .AppImage 文件,方便在 Ubuntu 上安装。

安装 Fiddler Everywhere (推荐方法)

步骤 1: 下载 AppImage 文件

访问官方下载页面: 访问 Telerik Fiddler Everywhere 的官方下载页面。

选择 Linux 版本: 找到并下载适用于 Linux (Ubuntu) 的 .AppImage 文件。

步骤 2: 赋予执行权限

下载完成后,该文件通常位于你的 ~/Downloads 目录下。你需要给它执行权限。

打开终端: 按 Ctrl+Alt+T。

切换到下载目录:
Bash

cd ~/Downloads

赋予执行权限(假设文件名是 FiddlerEverywhere.AppImage):
Bash

sudo chmod +x FiddlerEverywhere.AppImage

注意:请将 FiddlerEverywhere.AppImage 替换为你下载的实际文件名。

步骤 3: 运行 Fiddler Everywhere

现在root用和可以直接运行该文件:
Bash

./FiddlerEverywhere.AppImage

非root用户使用命令:
./FiddlerEverywhere.AppImage --no-sandbox
首次运行后,你可以将该文件移动到一个更规范的目录(例如 ~/Applications),并创建桌面快捷方式,方便以后启动。

使用令牌(Personal Access Token, PAT)登录 GitHub 是一种安全且常用的方式,尤其是在命令行、Git 客户端(如 PyCharm)或自动化脚本中代替密码进行身份验证。

自从 GitHub 停止支持通过 HTTPS 使用用户名和密码进行 Git 操作后,PAT 成了主流的替代方案。

使用 PAT 登录 GitHub 主要分为两步:生成令牌 和 使用令牌。

第一步:生成个人访问令牌 (Personal Access Token)

你需要在 GitHub 网站上生成一个具有特定权限的令牌。

登录 GitHub:

    访问 github.com 并登录你的账户。

进入设置 (Settings):

    点击右上角的个人头像,选择 Settings(设置)。

找到开发者设置 (Developer Settings):

    在左侧导航栏的最底部,点击 Developer settings(开发者设置)。

选择个人访问令牌 (Personal Access Tokens):

    在左侧导航栏中选择 Personal access tokens。

    建议选择 Tokens (classic)(经典令牌)以获得更灵活的权限控制,或选择 Fine-grained tokens(精细令牌)以获得更严格的权限控制。

生成新令牌:

    点击 Generate new token(生成新令牌)。

配置令牌:

    Note (备注): 为令牌取一个容易识别的名字(例如:PyCharm_Token 或 CLI_Access)。

    Expiration (有效期): 设置一个合适的过期时间。为了安全,不建议选择 No expiration(永不过期)。

    Select scopes (选择权限范围) (经典令牌):

        勾选你需要的权限。如果你需要进行常规的 Git 操作(克隆、推送、拉取),通常需要勾选 repo 相关的权限。如果你需要管理 Gist,则勾选 gist。请根据你的需求选择最小必要的权限。

完成生成:

    点击最下方的 Generate token(生成令牌)。

复制令牌:

    🔑 屏幕会显示生成的令牌字符串。这是你看到它的唯一机会! 务必立即复制并安全地保存它,因为它就是你的“新密码”。

第二步:在不同场景中使用令牌

一旦你有了令牌,就可以在需要 Git 认证的任何地方使用它来代替你的 GitHub 密码。

  1. 在命令行中使用 Git (HTTPS)

当你通过 HTTPS 克隆或操作远程仓库时,Git 会提示你输入用户名和密码。

克隆/拉取/推送时:

    当你在命令行执行 git clone、git pull 或 git push 时,系统会提示你输入 Username(用户名)和 Password(密码)。

    在 Username 处输入你的 GitHub 用户名。

    在 Password 处输入你刚刚生成的 个人访问令牌 (PAT)。

💡 建议: 为了避免每次都输入令牌,请使用 Git Credential Manager(Git 凭证管理器)来保存你的令牌。
  1. 在 PyCharm 或其他 IDE 中使用

PyCharm、VS Code 等 IDE 通常会提供一个图形界面来配置 GitHub 账户。

在 PyCharm 中:

    打开 Settings/Preferences(设置)。

    进入 Version Control | GitHub。

    点击 + 添加账户。

    选择 Log In with Token(使用令牌登录)。

    粘贴你的 个人访问令牌 (PAT),然后点击 Log In。

    PyCharm 就会使用这个令牌来处理所有的 Git 同步操作。
  1. 使用 GitHub CLI (命令行工具)

如果你安装了 GitHub 官方的命令行工具 gh,认证会更简单:

在终端运行命令:
Bash

gh auth login

它会引导你通过 Web 浏览器或直接粘贴 个人访问令牌 (PAT) 来完成登录和授权。

yCharm 与 GitHub 的同步是基于 Git 版本控制系统 的。同步操作主要分为两个部分:

从 GitHub 获取(下载)项目

将本地更改推送(上传)到 GitHub

以下是详细的步骤和操作:

第一步:克隆(Clone)项目 - 从 GitHub 下载

如果你是第一次在 PyCharm 中打开 GitHub 上的项目,你需要“克隆”它。

打开 PyCharm 欢迎界面:

    如果你没有打开任何项目,在欢迎屏幕上选择 Get from VCS(从版本控制系统获取)。

    如果你已经在一个项目中,选择主菜单栏的 Git | Clone... (或 VCS | Get from Version Control...)。

选择 GitHub:

    在弹出的对话框左侧选择 GitHub。

登录 GitHub:

    如果你还没有登录,PyCharm 会要求你登录。通常会弹出浏览器窗口,让你授权 PyCharm 访问你的 GitHub 账户。

选择仓库和目录:

    登录后,从仓库列表中选择你想要克隆的项目。

    设定一个本地存储的 Directory(目录)。

克隆:

    点击 Clone。PyCharm 会将整个项目仓库下载到你的本地,并打开这个项目。

第二步:同步更新(日常开发)

在日常开发中,同步操作主要包括 拉取(Pull) 和 推送(Push)。

  1. 从 GitHub 拉取(Pull)最新更改

当你开始工作前,或者想获取别人提交的新代码时,需要执行拉取操作。

快捷键: 按下 Ctrl+T(在 macOS 上是 Cmd+T)。

菜单操作: 选择主菜单栏的 Git | Pull... (拉取)。

版本控制面板: 点击 PyCharm 窗口右上方或底部状态栏的更新图标(一个向下的蓝色箭头)。

PyCharm 会自动从远程仓库下载最新的提交并合并到你当前的分支。

  1. 推送(Push)你的本地更改到 GitHub

当你完成了本地的代码修改并提交(Commit)后,需要将这些更改推送到 GitHub。

A. 提交 (Commit) 本地更改:

打开 Commit 工具窗口:

    方法一: 点击左侧垂直工具栏的 Commit 按钮(或按 Alt+0)。

    方法二: 在主菜单中选择 Git | Commit... (或 Ctrl+K)。

选择文件并填写信息:

    在 Commit 窗口中,勾选你修改过的文件。

    填写 Commit Message(提交信息,描述你做了哪些修改)。

执行 Commit:

    点击 Commit 按钮。这会将更改保存到你的本地 Git 历史记录中。

B. 推送 (Push) 到 GitHub:

快捷键: 按下 Ctrl+Shift+K(在 macOS 上是 Cmd+Shift+K)。

菜单操作: 选择主菜单栏的 Git | Push... (推送)。

版本控制面板: 点击 PyCharm 窗口右上方或底部状态栏的推送图标(一个向上的绿色箭头)。

在弹出的对话框中确认要推送的分支和提交,然后点击 Push 按钮,你的本地更改就会被上传到 GitHub 仓库。

💡 实用提示

状态栏指示: PyCharm 窗口的右下角状态栏通常会显示你当前的分支信息和未拉取(Incoming) / 未推送(Outgoing) 的提交数量,方便你随时了解同步状态。

更新项目(Update Project): 在主菜单中选择 Git | Update Project...(或快捷键 Ctrl+T / Cmd+T)。这个操作通常会执行一次 Fetch,然后 Pull 并合并你的分支。

Git 分支操作: 在 PyCharm 的右下角有一个分支名称(如 master 或 main),点击它可以快速进行切换分支、创建新分支、合并等操作。

在 Ubuntu (Linux) 下,有很多功能强大且常用的软件可以替代 Windows 上的 Xshell,它们通常被称为 终端模拟器 或 SSH 客户端。

以下是一些流行的选择:

内置终端 (Terminal):

    Ubuntu 自带的终端应用(通常叫作 GNOME 终端 或 Konsole,取决于你的桌面环境)是进行本地操作和 SSH 连接最常用、最基础的工具。

    你可以直接在终端中输入命令 $ ssh user@remote_host 来连接远程服务器。

专业的终端模拟器 / SSH 客户端:

    Terminator:一个非常流行的终端模拟器,允许你在一个窗口内分割成多个终端面板,非常方便管理多个连接或任务。

    Guake/Yakuake:下拉式(Quake 风格)终端,按一个快捷键就能弹出或隐藏,适合需要快速访问终端的用户。

    Hyper:一个基于 Web 技术的终端,高度可定制,外观现代。

支持标签和会话管理的 SSH 客户端(更接近 Xshell 的体验):

    Remmina:虽然主要是一个远程桌面客户端(支持 RDP, VNC),但它也支持 SSH 协议,可以保存多个会话配置。

    MobaXterm:虽然主要为 Windows 设计,但它提供了一个 Linux 版(虽然不如 Windows 版功能完善,但可以尝试)。

    Tabby (之前的 Terminus):一个现代的跨平台终端,支持 SSH 连接管理、标签页、会话保存和丰富的插件系统,体验很接近 Xshell。

对于大多数用户和场景,推荐:

Terminator:如果你需要同时看多个终端窗口,操作效率很高。

Ubuntu 内置终端:如果你只需要基本的 SSH 连接和操作。

Tabby:如果你需要更强的会话管理和类似 Xshell 的现代化界面和功能。

这些软件通常可以通过 Ubuntu 软件中心或使用 apt 包管理器来安装。例如,安装 Terminator:
Bash

sudo apt update
sudo apt install terminator