前言
如果你下载了一些国外的电影或电视剧,很多时候是找不到合适的中文字幕文件的.
飞牛OS很多时候也匹配不到,所以你可能会需要自己手动搞一个
在此推荐一下我的工作流程,介绍我是如何快速自动转换的
防盗震楼,本文地址:https://blog.csdn.net/cbaili/article/details/151006818
一. 字幕提取
工具安装
本文介绍MKV视频文件的字幕提取,其他的视频格式自行寻找工具提取
首先下载一个免费神器mkvtoolnix-64-bit-94.0-setup.exe(直接下载)
其他平台/其他/便携版本到这儿找MKVToolNix(官网)
这个工具堪称MKV神器,当然也有便携版本的,安装时勾选GUI工具
下载安装完毕后,为了方便将安装目录设置为环境变量,以我的为例
在环境变量的path中增加C:\Program Files\MKVToolNix
字幕流提取
MKV文件有很多个流(比如视频流啊/音频流啊/字幕流什么的)
你需要找到对应流的位置
- 打开刚才安装的mkvtoolnix-gui软件
- 把你的视频拖进去
- 查看流ID
ID从0开始,第三行的ID为2,记住这个ID
然后在你的视频目录下,使用cmd
#注意这个2是上面获取的流ID(最好去找英文版本的流)
mkvextract tracks 你的视频文件.mkv 2:输出字幕名.srt
如果顺利,会在你的影片目录下创建一个srt格式的字幕文件
二. 字幕AI翻译
这里推荐一个翻译站zimuFy,虽然付费但是很便宜几毛就可以完成一部影片,实测质量还不错.可按次付费.(虽然有恰饭嫌疑,但这玩意确实好用,经济又实惠)
AI翻译要比调用翻译引擎API来得更人性化,上下文对话衔接很丝滑,语言更加顺畅接地气.而且完整度也很好
在发现这个站以前,我都想要自己接DeepSeek实现一套了,但是有现成的就不搞了,挺麻烦.
戳我去搞个账号 zimuFy,然后选择AI翻译
然后上传你刚才生成的srt文件,稍等一会儿等待动态解析,然后填选你的字幕参数
然后点提交订单
跟流程走一波,然后稍等个几分钟,在你的后台任务队列里面就能看到这个任务完成了,点击下载即可使用
字幕编辑
如果你发现字幕有些翻译错误或者不尽人意,你可以手动编辑
不论你用记事本还是VSCODE都能打开这个文件,它就是个文本而已.
当然也推荐一个软件叫aegisub(官网)这玩意简直字幕神器
可以逐行编辑,作者信息,整体偏移等等一系列功能,十分专业,而且有官方汉化安装包直下连接
它可以导入srt文件,不过它保存的格式为ass,是另一种字幕格式.
ass字幕格式好像更高级,可以定义文本样式等一些功能
(我也是刚了解这个软件,不确定是否能导出srt文件,也不了解各种字幕的格式和支持的功能,相关信息请自行查阅)
三. 在飞牛影视上使用
飞牛影视上要想使用本地字幕,暂只能通过网页端添加,入口比较神秘看我截图
点开你的视频详情页,在右侧这里选择你刚才生成的字幕文件,随后在播放页面里面还需要改选字幕为刚才上传的才能生效.
四.分享字幕
AI查了一下,飞牛的字幕搜刮应该是通过opensubtitles实现的,所以理论上把你的字幕上传到这里,大家就都可以刮削到了
五.自动化
我搞了一个bat脚本,方便你快速导出字幕文件.
脚本安装
方式1.(省心) 到这下载我打包好的脚本:MKV视频字幕提取器
方式2.(我就要自己整) 新建个文本文档,改后缀为.bat
粘贴代码,另存为->更改编码为ANSI或GB18030
(不改编码运行会乱码的哦)
使用方法
你可以框选你的视频文件(支持多个)一起拽到这个脚本上,它会在你视频同目录下生成srt字幕文件,如果流不对请修改脚本59行的流ID,具体获取流程参上.
Tips:
你可以将这个脚本复制到C:\Program Files\MKVToolNix
里面并添加这个目录的环境变量,下次你就可以在任何地方直接使用命令行的方式调用它了.如"getSrt xxx1.mkv xxx2.mkv"
你可以把刚才这个批处理发送到桌面快捷方式,下次可以拖拽视频到这个快捷方式上自动生成
制作不易,点点关注,一键三连
脚本代码
@echo off
set title_=MKV视频字幕提取器 - V1.0
title %title_%
echo %title_% [Tool By 白梨 20250830]
echo 使用手册:https://blog.csdn.net/cbaili/article/details/151006818
echo -----------------------------------------------------------------------
rem 判断是否安装了mkvextract工具
where mkvextract >nul 2>&1
if errorlevel 1 (
echo [37;41m ^[错误:未能检测到mkvextract, 请安装后重试^] [0m
echo [90m 产品官网:https://mkvtoolnix.download/downloads.html#windows[0m
echo [90m 下载地址:https://mkvtoolnix.download/windows/releases/94.0/mkvtoolnix-64-bit-94.0-setup.exe[0m
pause
exit /b
)
rem 获取拖入文件数量
setlocal enabledelayedexpansion
set count=0
set done=0
for %%a in (%*) do ( set /a count+=1 )
echo [30;47m 已传入 %count% 个文件 [0m
rem 如果文件数量=0则弹出输入框,则要求输入mkv文件,否则循环设置inputFile从命令行参数
if %count%==0 (
:reinput
set /p inputFile=请拖入一个mkv文件:
if not exist "%inputFile%" (
echo [37;41m ^[错误:文件不存在, 请重新输入^] [0m
goto reinput
)
) else (
set inputFile=%1
)
:do
set /a done+=1
echo [30;47m 处理文件^[%done%/%count%^]: [0m ...^\%~nx1
rem 检查"%inputFile%"后缀是否为mkv
for %%i in ("%inputFile%") do set ext=%%~xi
if /i "%ext%"==".mkv" (
rem 文件类型正确
) else (
rem 检查类型失败,如果count==1则timeout
if %count%==1 (
timeout /t 3
)
)
rem 获取文件名
set filename=%~n1
echo %filename%
cd /d %~dp1
mkvextract tracks %1 2:%filename%.srt
rem 处理完成 继续下一个
if !done! == !count! (
echo [30;47m 所有文件处理完成 [0m
timeout /t 5
exit /b
) else (
shift
set inputFile=%1
goto do
)
peace~