baocut
無料测试用的说明书:用 BaoCut 转录、翻译、剪辑与导出视频。
日本語の概要は準備中です。原文の説明を表示しています。
用户有一个长视频(访谈、讲座、直播回放、口播),想从中切出几支能单独发布的短视频时用:读转写找出最值得发的话题,每个话题从开头的钩子剪到讲完,建成可编辑的子视频,用户在编辑器里接着调;几支、每支多长可以交给你按话题定。需要视频的转写。不用于按主题从零做一个新的短视频,也不用于把整段口播剪干净(用剪口播)。
インストールする前に、エージェントに与えられる指示の中身を確認できます。
刷到这条短视频的人没看过长视频,也不知道前面讲了什么。头三秒没抓住他,他就划走了;中间出现「刚才说的那个」,他就不知道在说什么。所以一段短视频要自己站得住:开头就是钩子,只讲一件事,停在结论上。
挑的单位是话题:一件事从提出到讲完。一个观点和它的理由,一个问题和它的回答,一个故事和它的落点。一支短视频就是一个话题完整的一段,不多也不少。
最容易挑坏的两种样子:
交付的是可编辑的子视频,不是 mp4:每一段用 videos_derive 建成父视频旁边的一个独立视频,用户在编辑器里继续调入出点、画面和字幕,要文件时再导出。
没有转写(kind 为 speech 的文档)时先转写,告诉用户转写在进行。挑片段只需要原文的词时间;润色和翻译只在用户要时才做。视频已经有章节时,章节有助于定位话题,但章节的边界不是短视频的边界。
读带时间的文稿:export 导出字幕(kind subtitles、format srt)或带时间码的文稿(kind transcript、format md、timestamps true),给 purpose preview(只是你自己读,不是交给用户的),jobs_inspect 等到 completed,读 outputs 里的文件。这些时间是剪辑后时间线上的时间,和 videos_derive 的 start、end、取帧用的是同一个时钟。
句界怎么取:找句子的起止不用 dump 整份 speech 文档。documents_read 读转写时,返回的 translationBasis.sentences 每一句带 start、end(秒),但那是素材时钟;videos_derive 的 start、end 是时间线时钟。父视频从 0 秒开始、原速、没有剪口地播放这条素材时,两者相同,可以直接用句子的 start、end 定区间。先确认这一点:用 videos_inspect(或 facts)看视频项的 sourceIn 是否为 0、速度是否为 1、有没有剪口。任一条不满足,就用上面导出的 SRT 或文稿里的时间线时间,或者把素材时间换算成时间线时间再传,不要把素材时间直接当时间线时间用。
通读整份文稿(用户给了范围就读那一段),按话题切开:换了一个问题、一个观点、一个故事,就是新话题的开始。每个话题记下大致的起止、一句话说它讲什么、落点(结论、答案或包袱)在哪一句。一章里常有几个话题,一个话题也可能跨过章节边界。
够格的话题三条都满足,缺一条就不要:
文稿只是线索:对够格的话题,用 videos_frames 在那几秒取几帧看画面(有没有可看的、说话人在不在画面里),再结合上下文判断是认真说的还是玩笑。帧是素材画面,不含字幕与叠加的元素。然后按看点强弱、成立得稳不稳排序,最强的在前。
derived)和它们的区间,新的候选避开这些区间。对比一下(只是示意):
不好:12:00–14:30,从「好,那我们接下来聊聊成本这块」开始,到「这个我们待会儿再展开」结束。
好:12:41–13:22,从「我们算过,一条视频的成本其实只有三块钱」开始,到「所以贵的从来不是生成,是返工」结束。
后一段是一个完整的话题:头一句就是数字,中间是理由,停在结论上,没有指代前文的话。
不需要在会话里反复问边界:子视频保留着整份时间线与文稿,用户在编辑器里点划掉的句子就能把它放回来。标题和理由用用户说话的语言写。
对每一段调用 videos_derive:
video 是父视频,start、end 是剪辑后时间线上的秒,name 用片段标题。width 1080、height 1920;1:1 时 1080×1080;保留原画幅(或没提)时不传 width、height 和 fit。不要为了「高清」把小尺寸放大。fit: "cover"(铺满、裁掉多余)。用户说「居中」:不传 crop 和 crops,居中建好;说「我自己定」:同样居中建好,并告诉用户可以在画布上拖动画面调取景。用户没说或说「自动」(默认):走下面按镜头取景的流程。取景是按镜头切换的静态裁框,不是跟随人物的运动镜头:用户要「画面一直跟着说话的人移动」时如实说做不到,镜头内的位置请用户在编辑器里自己调。range(起:止,这一段的时间线秒)取这一段的 shots(每个镜头有 start、end 和三个 sampleAt)与 cuts。它只检测画面切换,不认人。再用 videos_frames 的 at 传所有镜头的 sampleAt,每次 8 个镜头(24 帧,是单次上限)。每帧的 faces 是检测到的人脸框,x、y、w、h 按帧的宽高归一化到 0–1,对应素材画面,正好是 crop 的坐标。w × h)。不小于 0.01 的是近景帧;只有更小的脸的是全景帧(几个人同框的远景);没有脸的另记。一个镜头里的三帧一般是同一种机位。x + w/2)归成人,相差不到 0.1 的算同一个人。出现的帧数最多的是主讲人;帧数相近时取平均面积大的那个。另一个人的近景就是采访者(或对方)的镜头。crop 同一套坐标);再看上下有没有烧进画面的边框(色条、黑边)。cw = (画布宽 ÷ 画布高) × (原画高 × (1 − top − bottom) ÷ 原画宽);left = 中心 − cw/2,限制在 0 到 1 − cw 之间,right = 1 − cw − left。实例:16:9 的原画出 9:16、上下不裁,cw = 0.316;脸中心在 0.30 时给 left 0.142、right 0.542。上下有烧进去的边框时,top、bottom 给边框的高度比例把它裁掉(多给一点,不留细边),没有就给 0。
x + w/2)的中位数。x 到最右的 x + w)能放进一个宽 cw 的窗口时,中心取这一群人的中点;放不下时,在 notes 里写明,中心取主讲人。top、bottom 都不超过 0.15)让脸大一些,不超过;有烧进去的边框时,边框高度也算在这 15% 里,边框更高就以边框为准,并在 notes 里说明。left 的差,且 top、bottom 相同)时合并成 crops 的一项,from 取前一个镜头的起点,to 取后一个镜头的终点。left 至少是台标右缘 + 0.01;在右边时,left + cw 至多是台标左缘 − 0.01(right 至少是 1 − 台标左缘 + 0.01)。挪了之后这个镜头的脸被裁出画面、或者两边都让不开时,这个镜头换裁框也不行,就换片段;不要交付压着半个台标的裁框。crops 的 from、to 直接用 shots 的 start、end,是逐帧准确的,不再在估出的切换点前后各 1 秒试探。只有看到某个镜头的三帧明显是两种机位(说明漏了一个切换)时,把 threshold 降到 0.2,对那一小段重跑 videos_shots;或在怀疑的时间点前后用 at 补取几帧。创建时:crops 传全部合并后的项({from, to, left, top, right, bottom},最多 64 项、互不重叠,都是父视频时间线的秒),同时把第一个镜头的裁框作为普通的 crop 传上,当作没覆盖到的帧的兜底。faces 都是空的,居中(不传 crop 和 crops),并如实说没找到人脸。结果的 detector 为 null 时是检测器不可用,不是没人:这时退回看帧图片,逐镜头估主讲人在画面哪一侧,照第 5、6 步的算法给 crops 和 crop,并说明这次是看图估的。hook 是保留段的第一句原话,原样照抄,不改写(至多 300 字);reason 一句话说为什么挑它,写给用户看(至多 500 字);notes 是提示牌字符串数组,写取景、机位、台标检查里发现并需要用户知道的事,没有就不传。
hook、reason、notes 就是派生来源文档里的那份(认回已有的子视频时是原来那份,这次传的不会改写它);也可以用 documents_read 读返回的 derivationDocumentId。chapters: false:30 秒的子视频不该带着父视频的整份章节。captions 按用户的字幕要求:要字幕给 true(默认),不要给 false。用户只要原文或只要译文时,字幕层的选择按他的话,做不到的(例如没有译文)如实说。translations-skipped 警告时,告诉用户哪种语言没带上。range 是实际采用的边界,对一下和你要的差多少(见上面的短停顿);captions[].cueCount 只数落在区间内的 cue,不是整份字幕的条数,用它判断字幕有没有建出来、数量是否合理。reused 为 true),不会多建。子视频是什么:整份复制父视频的时间线与文稿,区间之外的部分被剪掉,用户在编辑器里点划掉的句子就能把它放回来;原视频不动。所以不要把哪一支移入回收站,也不要为了「改边界」重建一支,让用户在编辑器里拖。
去口癖、收紧停顿会改动整个视频,不在这里做;用户要时先说明影响,按剪口播的做法在子视频上处理。
创建结果里的 warnings 逐条告诉用户,用大白话:
multiple-assets:父视频不止一份主素材,这一版只按主素材剪,别的素材跟着移动,请用户在编辑器里检查。items-not-restorable:整段落在剪掉区域里的其他轨片段不会随「恢复」回来。range-not-exact:区间之外有一部分没能剪掉(主素材盖不到),入出点会比要求的略宽。captions-skipped:字幕层没建成,说明原因,告诉用户可以在字幕面板里再建。crops-adjusted:有一段取景范围被裁短或丢掉了(超出子视频范围,或截完一帧不剩),截掉的那几帧按相邻镜头或兜底的裁框取景;告诉用户是哪几秒,请他在画布上拖一下。animation-split:画面被按取景切成了几段,循环动画或音量包络在每段的交界处会重新开始;告诉用户在哪几秒,有影响时请他在编辑器里检查。translations-skipped:父视频的这份译文没能带进子视频(旧格式换不过来),子视频里没有这门语言;告诉用户是哪种语言,可以在子视频上重新翻译。拒绝的错误(父视频有代码画面、区间为空等)如实说,不绕开。
默认交付是子视频,不是 mp4。用户明确要文件时,再对子视频调用 export:kind video、format mp4,jobs_inspect 等到 completed,把 outputs 里的 path 告诉用户。时间线上的字幕默认烧进成片(burnCaptions),不要字幕时给 false。用户想直接导出、不建子视频时,也可以沿用在父视频上按 ranges 导出的老办法,每段一个 {start, end}。
preview,不按 ranges 把片段导出成 mp4 来检查。收尾时逐支列出,写给用户看:
まだレビューはありません。使ってみた感想をお寄せください。
概要と使いどころ
测试用的说明书:用 BaoCut 转录、翻译、剪辑与导出视频。
日本語の概要は準備中です。原文の説明を表示しています。
用 BaoCut 处理视频与音频:转录、字幕、翻译、配音、剪口播、切短视频、分章、总结写稿、从链接下载、压缩转码、导出成片,或从零做一条成片。有媒体文件、视频链接、字幕文件或 BaoCut 视频时用;只翻译纯文本、与视频无关的写作或作图、别的剪辑器与 FFmpeg 的用法、BaoCut 源码开发不用。
日本語の概要は準備中です。原文の説明を表示しています。
Release BaoCut Electron desktop apps through GitHub Actions tags by default; use local/manual packaging only when explicitly requested. Also handles App version bumps, release continuation and portable signing backups; excludes craft skills and legacy standalone CLI releases.
日本語の概要は準備中です。原文の説明を表示しています。
用户要给视频做封面、要封面大字,或要标题和封面一起出时用:读文稿提炼卖点,给几组标题与封面文案,用户挑定后按视频画幅生成封面图,放进这个视频的候选素材。每句都由视频兑现。只要标题或简介、不要封面时用起标题与写简介。需要视频的转写。
日本語の概要は準備中です。原文の説明を表示しています。
用户要做界面、网页、海报、图表或信息图、示意图、原型这类视觉设计稿时用:在工作目录写一份设计稿(canvas.json 加每块画板一个 .dc.html),校验通过后线程里出现设计稿卡片,用户在功能区预览、编辑与标注。也用于按用户的意见或设计稿标注改已有的设计稿。幻灯片不用它(用 slides),视频画面里的字卡与动效也不用它(用动效图形)。
日本語の概要は準備中です。原文の説明を表示しています。
用户要建立或修改设计系统时用:品牌的颜色、文字样式、间距与圆角 tokens,给智能体看的品牌手册 README,bundle 与预览,标志、图标与字体。在工作目录写一个设计系统目录(design-system.json 加 tokens.json、README.md、components/、assets/、fonts/),可以从代码仓库或设计工具里的真实来源整理;图片、视频与 PDF 导入设计系统的素材库,校验通过后线程里出现设计系统卡片,用户在功能区预览与编辑;做好的设计系统可以装进设计稿。
日本語の概要は準備中です。原文の説明を表示しています。