[{"data":1,"prerenderedAt":243},["ShallowReactive",2],{"i-lucide:menu":3,"i-lucide:grip":8,"i-lucide:chevron-right":10,"i-lucide:moon":12,"i-lucide:sun":14,"i-material-symbols:language":16,"i-lucide:chevron-down":18,"i-lucide:shield-check":20,"i-lucide:mail":22,"i-tabler:markdown":24,"i-lucide:code-xml":26,"i-lucide:film":28,"i-lucide:file-text":30,"i-lucide:box":32,"i-lucide:code-2":34,"i-lucide:image":35,"i-lucide:square-sigma":37,"i-lucide:gamepad-2":39,"i-lucide:sparkles":41,"i-lucide:graduation-cap":43,"tool-content-videos-subtitleConvert":45,"i-lucide:wand-2":208,"i-lucide:globe":210,"i-lucide:archive":212,"i-lucide:replace":214,"i-lucide:layers":216,"i-lucide:shield":218,"i-lucide:upload":220,"i-lucide:repeat":222,"i-lucide:download":224,"i-lucide:timer-reset":226,"i-lucide:audio-waveform":228,"i-lucide:video":230,"i-lucide:diff":232,"i-lucide:captions":234,"i-lucide:arrow-up-right":236,"i-lucide:tv":238,"i-lucide:file-warning":240},{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":7},0,24,false,"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M4 5h16M4 12h16M4 19h16\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":9},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Ccircle cx=\"12\" cy=\"5\" r=\"1\"\u002F>\u003Ccircle cx=\"19\" cy=\"5\" r=\"1\"\u002F>\u003Ccircle cx=\"5\" cy=\"5\" r=\"1\"\u002F>\u003Ccircle cx=\"12\" cy=\"12\" r=\"1\"\u002F>\u003Ccircle cx=\"19\" cy=\"12\" r=\"1\"\u002F>\u003Ccircle cx=\"5\" cy=\"12\" r=\"1\"\u002F>\u003Ccircle cx=\"12\" cy=\"19\" r=\"1\"\u002F>\u003Ccircle cx=\"19\" cy=\"19\" r=\"1\"\u002F>\u003Ccircle cx=\"5\" cy=\"19\" r=\"1\"\u002F>\u003C\u002Fg>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":11},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"m9 18l6-6l-6-6\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":13},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":15},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Ccircle cx=\"12\" cy=\"12\" r=\"4\"\u002F>\u003Cpath d=\"M12 2v2m0 16v2M4.93 4.93l1.41 1.41m11.32 11.32l1.41 1.41M2 12h2m16 0h2M6.34 17.66l-1.41 1.41M19.07 4.93l-1.41 1.41\"\u002F>\u003C\u002Fg>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":17},"\u003Cpath fill=\"currentColor\" d=\"M8.125 21.213q-1.825-.788-3.187-2.15t-2.15-3.188T2 11.988t.788-3.875t2.15-3.175t3.187-2.15T12.013 2t3.875.788t3.175 2.15t2.15 3.175t.787 3.875t-.787 3.887t-2.15 3.188t-3.175 2.15t-3.875.787t-3.888-.787M12 19.95q.65-.9 1.125-1.875T13.9 16h-3.8q.3 1.1.775 2.075T12 19.95m-2.6-.4q-.45-.825-.787-1.713T8.05 16H5.1q.725 1.25 1.813 2.175T9.4 19.55m5.2 0q1.4-.45 2.488-1.375T18.9 16h-2.95q-.225.95-.562 1.838T14.6 19.55M4.25 14h3.4q-.075-.5-.112-.987T7.5 12t.038-1.012T7.65 10h-3.4q-.125.5-.187.988T4 12t.063 1.013t.187.987m5.4 0h4.7q.075-.5.113-.987T14.5 12t-.038-1.012T14.35 10h-4.7q-.075.5-.112.988T9.5 12t.038 1.013t.112.987m6.7 0h3.4q.125-.5.188-.987T20 12t-.062-1.012T19.75 10h-3.4q.075.5.113.988T16.5 12t-.038 1.013t-.112.987m-.4-6h2.95q-.725-1.25-1.812-2.175T14.6 4.45q.45.825.788 1.713T15.95 8M10.1 8h3.8q-.3-1.1-.775-2.075T12 4.05q-.65.9-1.125 1.875T10.1 8m-5 0h2.95q.225-.95.563-1.838T9.4 4.45Q8 4.9 6.912 5.825T5.1 8\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":19},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"m6 9l6 6l6-6\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":21},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z\"\u002F>\u003Cpath d=\"m9 12l2 2l4-4\"\u002F>\u003C\u002Fg>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":23},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"m22 7l-8.991 5.727a2 2 0 0 1-2.009 0L2 7\"\u002F>\u003Crect width=\"20\" height=\"16\" x=\"2\" y=\"4\" rx=\"2\"\u002F>\u003C\u002Fg>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":25},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"M3 7a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z\"\u002F>\u003Cpath d=\"M7 15V9l2 2l2-2v6m3-2l2 2l2-2m-2 2V9\"\u002F>\u003C\u002Fg>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":27},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"m18 16l4-4l-4-4M6 8l-4 4l4 4m8.5-12l-5 16\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":29},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Crect width=\"18\" height=\"18\" x=\"3\" y=\"3\" rx=\"2\"\u002F>\u003Cpath d=\"M7 3v18M3 7.5h4M3 12h18M3 16.5h4M17 3v18m0-13.5h4m-4 9h4\"\u002F>\u003C\u002Fg>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":31},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z\"\u002F>\u003Cpath d=\"M14 2v5a1 1 0 0 0 1 1h5M10 9H8m8 4H8m8 4H8\"\u002F>\u003C\u002Fg>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":33},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"M21 8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16Z\"\u002F>\u003Cpath d=\"m3.3 7l8.7 5l8.7-5M12 22V12\"\u002F>\u003C\u002Fg>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":27},{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":36},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Crect width=\"18\" height=\"18\" x=\"3\" y=\"3\" rx=\"2\" ry=\"2\"\u002F>\u003Ccircle cx=\"9\" cy=\"9\" r=\"2\"\u002F>\u003Cpath d=\"m21 15l-3.086-3.086a2 2 0 0 0-2.828 0L6 21\"\u002F>\u003C\u002Fg>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":38},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Crect width=\"18\" height=\"18\" x=\"3\" y=\"3\" rx=\"2\"\u002F>\u003Cpath d=\"M16 8.9V7H8l4 5l-4 5h8v-1.9\"\u002F>\u003C\u002Fg>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":40},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M6 11h4M8 9v4m7-1h.01M18 10h.01m-.69-5H6.68a4 4 0 0 0-3.978 3.59l-.017.152C2.604 9.416 2 14.456 2 16a3 3 0 0 0 3 3c1 0 1.5-.5 2-1l1.414-1.414A2 2 0 0 1 9.828 16h4.344a2 2 0 0 1 1.414.586L17 18c.5.5 1 1 2 1a3 3 0 0 0 3-3c0-1.545-.604-6.584-.685-7.258q-.01-.075-.017-.151A4 4 0 0 0 17.32 5\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":42},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594zM20 2v4m2-2h-4\"\u002F>\u003Ccircle cx=\"4\" cy=\"20\" r=\"2\"\u002F>\u003C\u002Fg>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":44},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"M21.42 10.922a1 1 0 0 0-.019-1.838L12.83 5.18a2 2 0 0 0-1.66 0L2.6 9.08a1 1 0 0 0 0 1.832l8.57 3.908a2 2 0 0 0 1.66 0zM22 10v6\"\u002F>\u003Cpath d=\"M6 12.5V16a6 3 0 0 0 12 0v-3.5\"\u002F>\u003C\u002Fg>",{"strings":46,"features":107,"steps":138,"useCases":162,"articleHtml":205},{"zh":47,"en":77},{"description":48,"uploadAccept":49,"targetFormat":50,"convertButton":51,"convertAgain":52,"convertPending":53,"downloadAll":54,"downloadSingle":55,"removeFile":56,"fileCount":57,"cueCount":58,"warningCount":59,"errorEmpty":60,"errorUnknownFormat":61,"errorParseFailed":62,"errorBinaryFile":63,"tipUtf8":64,"tipLrcLossy":65,"loadSample":66,"faq1q":67,"faq1a":68,"faq2q":69,"faq2a":70,"faq3q":71,"faq3a":72,"faq4q":73,"faq4a":74,"faq5q":75,"faq5a":76},"在 SRT、VTT、ASS、SBV、LRC 之间任意互转。拖入单个文件或一整批字幕，转换在浏览器本地完成，字幕内容不会上传。","SRT、VTT、ASS、SSA、SBV、LRC — 单个或批量","输出格式","开始转换","清空","继续转换","全部下载（.zip）","下载","移除","{count} 个文件","{count} 条字幕","{count} 行被跳过","未解析出任何字幕条目，请检查文件格式和编码。","无法识别字幕格式，请确认扩展名是 .srt \u002F .vtt \u002F .ass \u002F .sbv \u002F .lrc。","解析失败，文件可能不是 UTF-8 编码或语法错乱。","这看起来是视频或二进制文件，不是字幕。请拖入文本字幕。","提示：字幕必须是 UTF-8 编码。如果出现乱码，请先用文本编辑器另存为 UTF-8。","注意：LRC 只存起始时间，从 SRT\u002FVTT\u002FASS 转 LRC 会丢失结束时间信息。","载入示例 SRT","支持哪些字幕格式之间的互转？","5 种格式：SRT（SubRip 通用字幕）、VTT（HTML5 视频用 WebVTT）、ASS（动漫字幕组、Aegisub 高级字幕）、SBV（YouTube 旧版字幕）、LRC（音乐播放器歌词）。任意一种都可以转成其它任意一种。","字幕文件会上传到服务器吗？","不会。整个转换由浏览器 JavaScript 完成 — 不上传、不经过服务器、不写日志。页面加载完成后甚至可以离线使用。","为什么转出的 LRC 没有结束时间？","LRC 是为音乐歌词设计的，只记录每行什么时候出现，不记录什么时候消失。所以从带时间区间的字幕（SRT\u002FVTT\u002FASS\u002FSBV）转 LRC 会丢掉结束时间。反过来 LRC 转 SRT 是可以的，每行的结束时间会用下一行的开始时间补上。","ASS 字幕带特效样式，转换后会保留吗？","所有格式都会保留文本和时间，但 ASS 的高级特性（自定义字体、颜色、动画、卡拉 OK、定位标签）在导出为 SRT\u002FVTT\u002FSBV\u002FLRC 时会被剥离 — 因为这些格式根本不支持。ASS 转 ASS 全部保留。","可以批量转换几十个文件吗？","可以。一次拖入一整个文件夹的字幕、选目标格式、点「全部下载」即可下载 ZIP 包。每个文件保留原文件名，只换扩展名。",{"description":78,"uploadAccept":79,"targetFormat":80,"convertButton":81,"convertAgain":82,"convertPending":83,"downloadAll":84,"downloadSingle":85,"removeFile":86,"fileCount":87,"cueCount":88,"warningCount":89,"errorEmpty":90,"errorUnknownFormat":91,"errorParseFailed":92,"errorBinaryFile":93,"tipUtf8":94,"tipLrcLossy":95,"loadSample":96,"faq1q":97,"faq1a":98,"faq2q":99,"faq2a":100,"faq3q":101,"faq3a":102,"faq4q":103,"faq4a":104,"faq5q":105,"faq5a":106},"Convert subtitles between SRT, VTT, ASS, SBV and LRC. Drop one file or a whole batch — the conversion runs locally in your browser, your captions never get uploaded.","SRT, VTT, ASS, SSA, SBV, LRC — single or batch","Output format","Convert","Clear all","Convert pending","Download all (.zip)","Download","Remove","{count} file | {count} files","{count} cue | {count} cues","{count} skipped line | {count} skipped lines","No subtitle cues were extracted. Please double-check the file format and encoding.","Could not detect the subtitle format. Make sure the file extension is .srt, .vtt, .ass, .sbv or .lrc.","Failed to parse this subtitle file. The encoding may not be UTF-8 or the syntax is malformed.","This looks like a video or binary file, not a subtitle. Please drop a text-based subtitle file.","Tip: subtitle files must be UTF-8 encoded. If you see garbled text, re-save your file as UTF-8 in a text editor first.","Heads up: LRC stores only start times, so converting from SRT\u002FVTT\u002FASS to LRC drops end-time information.","Load sample SRT","Which subtitle formats can I convert between?","Five formats: SRT (SubRip), VTT (WebVTT for HTML5 video), ASS (Advanced SubStation Alpha used by anime fansubs and Aegisub), SBV (YouTube's old caption format), and LRC (lyric files used by music players). Any one can be converted to any other.","Will my subtitle file get uploaded to your server?","No. The entire conversion happens in your browser using JavaScript — no upload, no server processing, no log. Works offline once the page is loaded.","Why does my converted LRC file lose end times?","LRC was designed for music lyrics and only stores when each line should appear, not when it should disappear. So converting any time-range subtitle (SRT\u002FVTT\u002FASS\u002FSBV) to LRC discards the end time. Converting LRC back to SRT works but each line uses the next line's start as its end.","My ASS subtitle has fancy styles and effects — will they survive the conversion?","We preserve text and timing for all formats, but advanced ASS features (custom fonts, colors, animations, karaoke effects, positioning tags) are stripped when exporting to SRT\u002FVTT\u002FSBV\u002FLRC because those formats don't support them. ASS-to-ASS roundtrip keeps everything.","Can I batch convert dozens of files at once?","Yes — drop a whole folder of subtitle files into the upload area, pick one target format, and download everything as a ZIP. Each file keeps its original name with the new extension.",{"zh":108,"en":125},[109,113,117,121],{"icon":110,"title":111,"desc":112},"lucide:replace","5 格式互转","SRT、VTT、ASS、SBV、LRC 任意两种之间一键互转",{"icon":114,"title":115,"desc":116},"lucide:layers","批量处理","一次拖入整批字幕，按目标格式 ZIP 打包下载",{"icon":118,"title":119,"desc":120},"lucide:shield","不上传","解析与序列化全在浏览器本地完成，离线也可工作",{"icon":122,"title":123,"desc":124},"lucide:file-warning","错误友好","识别非字幕、非 UTF-8、空文件并友好提示，不污染数据",[126,129,132,135],{"icon":110,"title":127,"desc":128},"5-Format Conversion","Convert between SRT, VTT, ASS, SBV, LRC in any direction",{"icon":114,"title":130,"desc":131},"Batch Mode","Drop a whole batch, download a single ZIP with the target format",{"icon":118,"title":133,"desc":134},"No Upload","Parse and serialize entirely in your browser — works offline too",{"icon":122,"title":136,"desc":137},"Friendly Errors","Detects non-subtitle \u002F non-UTF-8 \u002F empty files and explains why",{"zh":139,"en":152},[140,144,148],{"icon":141,"title":142,"desc":143},"lucide:upload","上传字幕文件","上传 SRT\u002FVTT\u002FASS 等格式的字幕文件",{"icon":145,"title":146,"desc":147},"lucide:repeat","选择目标格式","选择要转换的字幕输出格式",{"icon":149,"title":150,"desc":151},"lucide:download","下载转换结果","下载转换后的字幕文件直接使用",[153,156,159],{"icon":141,"title":154,"desc":155},"Upload Subtitle File","Upload an SRT, VTT, ASS, or other subtitle format file",{"icon":145,"title":157,"desc":158},"Select Target Format","Choose the subtitle output format you need",{"icon":149,"title":160,"desc":161},"Download the Result","Download the converted subtitle file and use it directly",{"zh":163,"en":186},[164,167,170,174,178,182],{"icon":145,"title":165,"desc":166},"转换字幕格式","将 SRT 转为 VTT 或 ASS，适配不同播放器和平台要求",{"icon":141,"title":168,"desc":169},"准备平台上传字幕","转为 YouTube\u002FBilibili 等平台所需的字幕格式后上传",{"icon":171,"title":172,"desc":173},"lucide:film","适配剪辑软件","将字幕转为 Premiere\u002FFinal Cut 可识别的格式导入使用",{"icon":175,"title":176,"desc":177},"lucide:globe","制作 Web 字幕轨道","将 SRT 转为 WebVTT，嵌入 HTML5 视频播放器",{"icon":179,"title":180,"desc":181},"lucide:archive","统一字幕格式归档","批量转换字幕格式，统一团队的字幕文件规范",{"icon":183,"title":184,"desc":185},"lucide:tv","适配流媒体平台字幕","将字幕转为 Netflix\u002FDisney+ 要求的格式，满足流媒体分发规范",[187,190,193,196,199,202],{"icon":145,"title":188,"desc":189},"Convert Subtitle Formats","Turn SRT into VTT or ASS to fit different players and platform requirements",{"icon":141,"title":191,"desc":192},"Prepare Platform Uploads","Convert to YouTube\u002FBilibili subtitle formats before uploading",{"icon":171,"title":194,"desc":195},"Import into Editing Software","Convert subtitles to formats recognized by Premiere or Final Cut Pro",{"icon":175,"title":197,"desc":198},"Create Web Subtitle Tracks","Convert SRT to WebVTT to embed in HTML5 video players",{"icon":179,"title":200,"desc":201},"Archive in Unified Format","Batch convert subtitle files to standardize team subtitle format conventions",{"icon":183,"title":203,"desc":204},"Meet Streaming Platform Specs","Convert subtitles to Netflix or Disney+ required formats for distribution compliance",{"zh":206,"en":207},"\u003Ch2>2026 年中文区缺少的那个字幕格式转换器\u003C\u002Fh2>\n\u003Cp>把 SRT 喂给浏览器 HTML5 播放器报错？把 ASS 给老 PotPlayer 显示一片乱码？把 YouTube 下载下来的 SBV 想拿去 B 站重新上字幕？字幕格式互转是中文创作者每天都会撞到的痛点。但 2026 年你能找到的中文字幕转换工具有限，常见的两类：\u003Cstrong>需要上传到第三方服务器\u003C\u002Fstrong>（隐私敏感）或者 \u003Cstrong>UI 像 2010 年\u003C\u002Fstrong>。\u003C\u002Fp>\n\u003Cp>MeTool 字幕格式转换器把 5 个最常用格式做成一个干净的纯前端工具：\u003Cstrong>SRT、VTT、ASS、SBV、LRC\u003C\u002Fstrong> 任意两种之间互转。整套流程在浏览器里完成，\u003Cstrong>字幕文件从不上传\u003C\u002Fstrong>。一次拖入一整批文件，选目标格式，几秒钟下载 ZIP。\u003C\u002Fp>\n\u003Cp>关键场景：把 Bilibili \u002F Aegisub 的 ASS 转 SRT 给老电视播放器、把 SRT 转 VTT 给 HTML5 video 元素、把 .lrc 歌词转 SRT 给视频剪辑软件、把 YouTube 旧版 SBV 字幕转成现代格式。\u003C\u002Fp>\n\u003Ch2>5 种字幕格式各自的取舍\u003C\u002Fh2>\n\u003Ch3>SRT (SubRip) — 最通用\u003C\u002Fh3>\n\u003Cp>互联网最早期的字幕格式，几乎所有播放器都识别。结构最简：序号 + 时间 + 文本。\u003Cstrong>毫秒级精度\u003C\u002Fstrong>。如果不知道选什么，选 SRT。\u003C\u002Fp>\n\u003Ch3>VTT (WebVTT) — HTML5 标配\u003C\u002Fh3>\n\u003Cp>HTML5 \u003Ccode>&lt;track&gt;\u003C\u002Fcode> 元素的官方字幕格式，被所有现代浏览器原生支持。语法接近 SRT 但用 \u003Ccode>.\u003C\u002Fcode> 而不是 \u003Ccode>,\u003C\u002Fcode> 分隔毫秒，并且支持简单的样式 \u002F 行内标签。Web 视频用 VTT。\u003C\u002Fp>\n\u003Ch3>ASS (Advanced SubStation Alpha) — 动漫字幕组的最爱\u003C\u002Fh3>\n\u003Cp>支持自定义字体、颜色、动画、卡拉 OK 特效、定位标签。Aegisub 编辑器原生格式，B 站 \u002F Bilibili 上的高级字幕大多是 ASS。MeTool 转换会保留文本和时间，但\u003Cstrong>样式信息在转 SRT\u002FVTT\u002FSBV\u002FLRC 时会被剥离\u003C\u002Fstrong>（目标格式根本不支持）。\u003C\u002Fp>\n\u003Ch3>SBV (SubViewer) — YouTube 旧版字幕\u003C\u002Fh3>\n\u003Cp>YouTube 早期的字幕导出格式，没有序号、没有头，时间字段间用「逗号」分隔（容易被误解析）。\u003Cstrong>厘秒精度\u003C\u002Fstrong>。从 YouTube CC 下载下来的字幕通常是 SBV 或 SRT。\u003C\u002Fp>\n\u003Ch3>LRC (Lyric) — 音乐播放器歌词\u003C\u002Fh3>\n\u003Cp>为音乐设计的同步歌词格式，只有起始时间没有结束时间。同一行可以有多个时间标签（同句歌词出现多次）。\u003Cstrong>转出 LRC 时一定会丢失结束时间信息\u003C\u002Fstrong> — 这不是 bug 是格式所限。\u003C\u002Fp>\n\u003Ch2>为什么字幕格式转换不应该在云服务器跑\u003C\u002Fh2>\n\u003Cp>字幕文件本质是\u003Cstrong>文本\u003C\u002Fstrong>，体积小（多数 &lt; 100KB），但内容敏感度可能很高：未发布的视频脚本、内部培训内容、客户访谈逐字稿、医疗 \u002F 法律录音转写。把这些文本传到第三方服务器，本身就是隐私风险。\u003C\u002Fp>\n\u003Cp>很多在线字幕工具的商业模式就是「免费转换 + 收集字幕语料训练 NLP 模型」。文件传上去你就\u003Cstrong>没办法证明\u003C\u002Fstrong>对方有没有保留副本。\u003C\u002Fp>\n\u003Cp>MeTool 用纯 JavaScript 在浏览器解析、再序列化字幕，\u003Cstrong>压根没有上传环节\u003C\u002Fstrong>：DevTools Network 面板里看不到任何字幕相关请求。这意味着哪怕断网（页面已加载完成），转换功能依然可用。\u003C\u002Fp>\n\u003Cp>这种「不上传」的能力是天生的，不是营销话术。底层只用了 JavaScript 字符串处理 + Blob 下载 — 没有任何技术理由需要服务器参与字幕格式转换。\u003C\u002Fp>\n\u003Ch2>常见使用场景与对应技巧\u003C\u002Fh2>\n\u003Ch3>场景 1：B 站投稿要求 SRT，本地是 ASS\u003C\u002Fh3>\n\u003Cp>把 ASS 拖入工具，选 SRT，下载。如果 ASS 含特效，会被剥离，但文本和时间完整保留 — 重新在剪辑软件里给 SRT 加样式即可。\u003C\u002Fp>\n\u003Ch3>场景 2：HTML5 网页视频要喂 VTT，手头是 SRT\u003C\u002Fh3>\n\u003Cp>选目标 VTT，工具自动加 \u003Ccode>WEBVTT\u003C\u002Fcode> 头并把 \u003Ccode>,\u003C\u002Fcode> 替换为 \u003Ccode>.\u003C\u002Fcode>。\u003C\u002Fp>\n\u003Ch3>场景 3：YouTube 下载下来的 SBV 想给国内剪辑软件\u003C\u002Fh3>\n\u003Cp>剪映、必剪、Pr 等都首选 SRT。直接 SBV → SRT 即可。\u003C\u002Fp>\n\u003Ch3>场景 4：网易云音乐 .lrc 歌词想加到视频里\u003C\u002Fh3>\n\u003Cp>LRC 转 SRT 后，每行的结束时间用\u003Cstrong>下一行的开始时间\u003C\u002Fstrong>补上，最后一行用 5 秒兜底。可视情况手工微调。\u003C\u002Fp>\n\u003Ch3>场景 5：批量整理一整个剧集的字幕\u003C\u002Fh3>\n\u003Cp>把 24 集的 .ass 一次全拖进来，目标 SRT，点「全部下载（.zip）」拿到一个 zip 包，原文件名保留只换扩展名。\u003C\u002Fp>\n","\u003Ch2>The Subtitle Converter the Web Was Missing in 2026\u003C\u002Fh2>\n\u003Cp>Need to feed an SRT to an HTML5 \u003Ccode>&lt;track&gt;\u003C\u002Fcode> element and the browser refuses? Got an ASS that an old PotPlayer renders as garbled boxes? Downloaded an SBV from YouTube but your editing app insists on SRT? Subtitle format mismatch is a daily headache. The tools you can find in 2026 mostly fall into two camps: \u003Cstrong>upload-to-third-party servers\u003C\u002Fstrong> (privacy-hostile) or \u003Cstrong>UIs that look like 2010\u003C\u002Fstrong>.\u003C\u002Fp>\n\u003Cp>MeTool's subtitle converter packages the five most common formats into a clean, fully browser-based tool: \u003Cstrong>SRT, VTT, ASS, SBV, LRC\u003C\u002Fstrong> — convert any to any. Files are parsed and rewritten in your browser; \u003Cstrong>nothing is uploaded\u003C\u002Fstrong>. Drop a whole batch in once, pick a target format, download the ZIP in seconds.\u003C\u002Fp>\n\u003Cp>Common cases: ASS → SRT for legacy TV players; SRT → VTT for HTML5 video; LRC lyrics → SRT to import into a video editor; YouTube's old SBV → SRT for a modern workflow.\u003C\u002Fp>\n\u003Ch2>Five Subtitle Formats and What Each Trades Off\u003C\u002Fh2>\n\u003Ch3>SRT (SubRip) — The Lingua Franca\u003C\u002Fh3>\n\u003Cp>The earliest broadly-adopted subtitle format. Almost every player on every platform reads it. Simplest possible structure: index + time line + text. \u003Cstrong>Millisecond precision.\u003C\u002Fstrong> When in doubt, choose SRT.\u003C\u002Fp>\n\u003Ch3>VTT (WebVTT) — Standard for HTML5\u003C\u002Fh3>\n\u003Cp>The official subtitle format for HTML5 \u003Ccode>&lt;track&gt;\u003C\u002Fcode> elements, natively supported by every modern browser. Syntax mirrors SRT but uses \u003Ccode>.\u003C\u002Fcode> instead of \u003Ccode>,\u003C\u002Fcode> for milliseconds and supports inline styling tags. Use VTT for web video.\u003C\u002Fp>\n\u003Ch3>ASS (Advanced SubStation Alpha) — Anime Fansub Favorite\u003C\u002Fh3>\n\u003Cp>Supports custom fonts, colors, animations, karaoke effects, positioning tags. Native to the Aegisub editor; most high-quality fan subtitles ship as ASS. MeTool preserves text and timing during conversion, but \u003Cstrong>style information is stripped when going to SRT\u002FVTT\u002FSBV\u002FLRC\u003C\u002Fstrong> (those formats simply don't support it).\u003C\u002Fp>\n\u003Ch3>SBV (SubViewer) — YouTube's Old Caption Format\u003C\u002Fh3>\n\u003Cp>YouTube's early caption export format. No index, no header, time fields separated by commas (which can confuse parsers). \u003Cstrong>Centisecond precision.\u003C\u002Fstrong> Captions downloaded from YouTube are usually SBV or SRT.\u003C\u002Fp>\n\u003Ch3>LRC (Lyric) — Music Player Lyrics\u003C\u002Fh3>\n\u003Cp>Designed for music sync — only stores start times, no end times. Multiple time tags can share one line (same lyric repeating in the song). \u003Cstrong>Going to LRC always loses end-time information\u003C\u002Fstrong> — that's a format limitation, not a bug.\u003C\u002Fp>\n\u003Ch2>Why Subtitle Conversion Should Never Run on a Cloud Server\u003C\u002Fh2>\n\u003Cp>Subtitle files are \u003Cstrong>plain text\u003C\u002Fstrong>, usually tiny (most under 100 KB) — but the content can be high-sensitivity: unreleased video scripts, internal training material, customer interview transcripts, medical or legal recordings. Sending that text to a third-party server is itself a privacy risk.\u003C\u002Fp>\n\u003Cp>Many &quot;free online subtitle tools&quot; monetize by collecting subtitle corpora to train NLP models. Once you've uploaded the file, you have \u003Cstrong>no way to prove\u003C\u002Fstrong> the operator didn't keep a copy.\u003C\u002Fp>\n\u003Cp>MeTool parses and re-serializes subtitles entirely in your browser using JavaScript. \u003Cstrong>There is no upload step at all\u003C\u002Fstrong>: the DevTools Network panel shows zero subtitle-related requests. The tool keeps working offline once the page has loaded.\u003C\u002Fp>\n\u003Cp>This &quot;no upload&quot; property isn't marketing — it falls out of the architecture. The implementation is just JavaScript string handling + Blob downloads. There's no technical reason a server needs to be involved in subtitle format conversion.\u003C\u002Fp>\n\u003Ch2>Common Workflows and Tips\u003C\u002Fh2>\n\u003Ch3>Use case 1: YouTube wants SRT, you have ASS\u003C\u002Fh3>\n\u003Cp>Drop the ASS in, pick SRT, download. ASS effects get stripped, but text and timing carry over intact — re-style in your editor afterward.\u003C\u002Fp>\n\u003Ch3>Use case 2: HTML5 video needs VTT, you have SRT\u003C\u002Fh3>\n\u003Cp>Pick VTT and the tool adds the \u003Ccode>WEBVTT\u003C\u002Fcode> header and replaces \u003Ccode>,\u003C\u002Fcode> with \u003Ccode>.\u003C\u002Fcode> for milliseconds.\u003C\u002Fp>\n\u003Ch3>Use case 3: Downloaded SBV from YouTube for a video editor\u003C\u002Fh3>\n\u003Cp>Almost every video editor (Premiere, Final Cut, DaVinci Resolve, CapCut) prefers SRT. Just go SBV → SRT.\u003C\u002Fp>\n\u003Ch3>Use case 4: Spotify-style .lrc lyrics into a video\u003C\u002Fh3>\n\u003Cp>LRC → SRT fills in each line's end time using the next line's start (last line gets a 5-second fallback). Tweak by hand if needed.\u003C\u002Fp>\n\u003Ch3>Use case 5: Batch-process a whole season of subtitles\u003C\u002Fh3>\n\u003Cp>Drop all 24 episodes' .ass files in at once, pick SRT, hit &quot;Download all (.zip)&quot; — every file keeps its original name with the new extension.\u003C\u002Fp>\n",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":209},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"m21.64 3.64l-1.28-1.28a1.21 1.21 0 0 0-1.72 0L2.36 18.64a1.21 1.21 0 0 0 0 1.72l1.28 1.28a1.2 1.2 0 0 0 1.72 0L21.64 5.36a1.2 1.2 0 0 0 0-1.72M14 7l3 3M5 6v4m14 4v4M10 2v2M7 8H3m18 8h-4M11 3H9\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":211},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Ccircle cx=\"12\" cy=\"12\" r=\"10\"\u002F>\u003Cpath d=\"M12 2a14.5 14.5 0 0 0 0 20a14.5 14.5 0 0 0 0-20M2 12h20\"\u002F>\u003C\u002Fg>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":213},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Crect width=\"20\" height=\"5\" x=\"2\" y=\"3\" rx=\"1\"\u002F>\u003Cpath d=\"M4 8v11a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8m-10 4h4\"\u002F>\u003C\u002Fg>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":215},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"M14 4a1 1 0 0 1 1-1m0 7a1 1 0 0 1-1-1m7-5a1 1 0 0 0-1-1m1 6a1 1 0 0 1-1 1M3 7l3 3l3-3\"\u002F>\u003Cpath d=\"M6 10V5a2 2 0 0 1 2-2h2\"\u002F>\u003Crect width=\"7\" height=\"7\" x=\"3\" y=\"14\" rx=\"1\"\u002F>\u003C\u002Fg>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":217},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"M12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83z\"\u002F>\u003Cpath d=\"M2 12a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 12\"\u002F>\u003Cpath d=\"M2 17a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 17\"\u002F>\u003C\u002Fg>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":219},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":221},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M12 3v12m5-7l-5-5l-5 5m14 7v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":223},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"m17 2l4 4l-4 4\"\u002F>\u003Cpath d=\"M3 11v-1a4 4 0 0 1 4-4h14M7 22l-4-4l4-4\"\u002F>\u003Cpath d=\"M21 13v1a4 4 0 0 1-4 4H3\"\u002F>\u003C\u002Fg>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":225},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"M12 15V3m9 12v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4\"\u002F>\u003Cpath d=\"m7 10l5 5l5-5\"\u002F>\u003C\u002Fg>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":227},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"M10 2h4m-2 12v-4m-8 3a8 8 0 0 1 8-7a8 8 0 1 1-5.3 14L4 17.6\"\u002F>\u003Cpath d=\"M9 17H4v5\"\u002F>\u003C\u002Fg>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":229},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M2 13a2 2 0 0 0 2-2V7a2 2 0 0 1 4 0v13a2 2 0 0 0 4 0V4a2 2 0 0 1 4 0v13a2 2 0 0 0 4 0v-4a2 2 0 0 1 2-2\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":231},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"m16 13l5.223 3.482a.5.5 0 0 0 .777-.416V7.87a.5.5 0 0 0-.752-.432L16 10.5\"\u002F>\u003Crect width=\"14\" height=\"12\" x=\"2\" y=\"6\" rx=\"2\"\u002F>\u003C\u002Fg>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":233},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M12 3v14m-7-7h14M5 21h14\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":235},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Crect width=\"18\" height=\"14\" x=\"3\" y=\"5\" rx=\"2\" ry=\"2\"\u002F>\u003Cpath d=\"M7 15h4m4 0h2M7 11h2m4 0h4\"\u002F>\u003C\u002Fg>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":237},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M7 7h10v10M7 17L17 7\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":239},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"m17 2l-5 5l-5-5\"\u002F>\u003Crect width=\"20\" height=\"15\" x=\"2\" y=\"7\" rx=\"2\"\u002F>\u003C\u002Fg>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":241,"hidden":242},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Zm-3 7v4m0 4h.01\"\u002F>",true,1782799335542]