B站视频下载并转换成MP4

Bilibili客户端PC版下载

官网下载

首先下载PC版的B站客户端;打开B站首页,点击右上角的下载客户端,下载Windows客户端即可(mac没试过)

缓存视频

打开你想下载的视频;

image-20240514213258485

点击缓存后会弹出窗口让你选择下载的画质,点击下载即可

image-20240514213420675

下载完后在下面的目录里面就能找到下载的文件了

image-20240514213721864

找到两个m4s文件,这两个文件分别是视频和音频

v2-5207e1bbeacd2207ff555d4abe90b781_r

修改m4s视频文件

用二进制编辑器编辑这两个文件,例如用Notepad++或者Sublime Text

二进制打开就删除开头的0

v2-3bb9f220527b03c48ef665e967c8e95c_r

十六进制打开就删除开头的30

image-20240514220710987

注意,不要用文本编辑器去编辑器这个 *.m4s文件,会有问题

拓展:

Notepad++用十六进制方式打开二进制文件

在 Notepad++ 中,转到“插件”菜单并选择“插件管理器”。

image-20240514222028755

找到HEX-Editor,然后单击安装。

image-20240514222249417

打开二进制文件后,在插件中使用HEX插件即可,文件内容既会变成十六进制的内容

image-20240514222435071

合并视频

ffmpeg 下载

下载后建议添加到系统环境变量,使用更方便

使用ffmpeg合并成完整的视频

1
ffmpeg.exe -i 1.m4s -i 2.m4s -codec copy output.mp4

自动化工具

bilibili_merge.ps1

bilibili_auto_merge.ps1

启动工具.bat

使用说明

本工具包含 3 个脚本,可以自动完成上述所有步骤,直接点击下载即可。

github限制,无法直接下载bat文件

新建txt,复制已下内容粘贴

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
@echo off
chcp 936 >nul
setlocal enabledelayedexpansion

:start
cls
echo.
echo ========================================
echo Bilibili 视频自动合并工具
echo ========================================
echo.
echo 请选择处理模式:
echo.
echo [1] 当前目录
echo [2] 当前目录(递归所有子文件夹)
echo [3] 指定目录
echo [4] 退出
echo.
set /p choice=请输入选项 (1-4):

if "%choice%"=="1" goto current
if "%choice%"=="2" goto recursive
if "%choice%"=="3" goto custom
if "%choice%"=="4" goto end
echo 无效选项,请重试
pause
goto start

:current
echo.
echo [模式] 当前目录
echo.
cd /d "%~dp0"
powershell -ExecutionPolicy Bypass -File "%~dp0bilibili_auto_merge.ps1"
goto done

:recursive
echo.
echo [模式] 当前目录(递归)
echo.
cd /d "%~dp0"
powershell -ExecutionPolicy Bypass -File "%~dp0bilibili_auto_merge.ps1" -Recursive
goto done

:custom
echo.
set /p targetPath=请输入目录路径:
if "%targetPath%"=="" (
echo 路径不能为空
pause
goto start
)
echo.
echo [模式] 指定目录: %targetPath%
echo.
set /p recursive_choice=是否递归处理子目录?(Y/N):
if /i "%recursive_choice%"=="Y" (
powershell -ExecutionPolicy Bypass -File "%~dp0bilibili_auto_merge.ps1" -Path "%targetPath%" -Recursive
) else (
powershell -ExecutionPolicy Bypass -File "%~dp0bilibili_auto_merge.ps1" -Path "%targetPath%"
)
goto done

:done
echo.
echo ========================================
echo.
pause
goto end

:end

另存为启动工具.bat,编码格式为ANSI,保存。image-20260906204531349

文件列表

1
2
3
4
D:\tools\bilibili合成视频工具\
├── bilibili_auto_merge.ps1 ← 自动批量处理脚本
├── bilibili_merge.ps1 ← 手动单个处理脚本
└── 启动工具.bat ← 图形界面启动器(中文菜单)

方法 1:图形界面(最简单)

双击 启动工具.bat,会显示菜单:

1
2
3
4
5
6
7
8
9
10
11
12
========================================
Bilibili 视频自动合并工具
========================================

请选择处理模式:

[1] 当前目录
[2] 当前目录(递归所有子文件夹)
[3] 指定目录
[4] 退出

请输入选项 (1-4):

使用说明

  • 1:处理当前目录(opencode 目录)
  • 2:递归处理所有子文件夹
  • 3:输入自定义路径(例如 C:\Users\HUA\Videos\bilibili

脚本会自动:

  1. 扫描所有 .m4s 文件
  2. 智能配对视频和音频
  3. 检测并修复文件头
  4. 调用 FFmpeg 合并
  5. 清理临时文件
  6. 保留原始 .m4s 文件(默认)

方法 2:命令行处理(推荐)

配置 FFmpeg 路径

首次使用需要设置 FFmpeg 路径。打开 bilibili_auto_merge.ps1,找到第 9 行:

1
[string]$FFmpegPath = "D:\tools\ffmpeg\bin\ffmpeg.exe",

修改成你的实际路径,例如:

1
[string]$FFmpegPath = "C:\ffmpeg\bin\ffmpeg.exe",

基本用法

1
2
3
4
5
# 进入视频缓存目录
cd C:\Users\HUA\Videos\bilibili\某个视频ID

# 运行脚本(使用完整路径)
C:\Users\HUA\Desktop\opencode\bilibili_auto_merge.ps1

输出示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
========================================
Bilibili Auto Merger - Batch Mode
========================================

[INFO] FFmpeg: D:\tools\ffmpeg\bin\ffmpeg.exe
[INFO] Scan path: C:\Users\HUA\Videos\bilibili\41607630731
[INFO] Recursive: False

[SCAN] Looking for .m4s files...
[FOUND] 2 .m4s files

[VIDEO] Detected video patterns: 1 (matching _sr1-.*.m4s)
[AUDIO] Detected audio patterns: 1 (matching -1-\d+.m4s)
[READY] Found 1 video(s) to process

----------------------------------------
Processing [1/1]: 牧神记_第99话
----------------------------------------

[CHECK] Analyzing video file header...
[FIX] Detected invalid header (9 bytes offset), creating fixed file...
[CHECK] Analyzing audio file header...
[FIX] Detected invalid header (9 bytes offset), creating fixed file...

[MERGE] Running FFmpeg...
[SUCCESS] Created: output.mp4 (2347 MB)
[CLEAN] Removed temporary files

========================================
Summary
========================================
Total: 1 | Success: 1 | Failed: 0