V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
V2EX  ›  bkingfilm  ›  全部回复第 1 页 / 共 2 页
回复总数  38
1  2  
@ButcherHu 字幕这条其实已经算了一半。时间轴上那根台词密度曲线就是按字幕时间码来的,60 秒窗口滑着统计每分钟台词量,只是这个数只画出来给人看,没回喂给抽帧那头,接过去应该是最省事的一条路。VAD 还得先把音轨解出来,比读字幕重不少。

gif 那条卡在别的地方。现在是每帧一次 seek ,等 seeked 事件回来再 drawImage ,一秒一帧两小时七千次 seek 已经是三路并行在扛。gif 要连续十几帧,照这个路子 seek 次数直接乘上去,得改成让 video 正常播、按帧定时截,是另一套抽法。另外 canvas 直接吐不出 gif ,256 色量化和编码得自己接一个库。
@ButcherHu 没算过最优值,是从画质那头倒着定的。抽帧一开始 480 宽,后来降到 320 宽、质量 0.62 ,单张十来 KB ,两小时的片打包七十兆上下,免费档的 AI 也能传进去。宽度压到这份上,密度就不敢再往下动了,代码里 1 秒是写死的下限。往上调是省钱,但三四秒一帧短镜头整段都不出现,分段就开始飘。
发布记录这块建议存平台回读的结果,别存提交时的状态。提交返 200 跟内容真出现在页面上是两回事,有的平台会静默吞掉,有的直接进审核队列。发完隔几分钟拿列表接口回查一遍,把真实链接落进记录里,不然记录里一片成功,平台上找不到人。

B 站和小红书这两个可能要单独标一下能力边界。B 站带视频的动态只有手机 app 能发,网页端没这个口子;小红书的定时发布最远只排到 14 天以后。这类限制不写在界面上,用户点了一键发布没成会先怀疑工具。
文件名这块要留意。iOS 上直接调相机拍完上传,Safari 给的文件名常常就是 image.jpg ,每张都一样,按原名落盘后面的会把前面的覆盖掉。存之前按拍摄时间或者内容 hash 补个后缀比较稳。

格式也是个坑。iPhone 默认存 HEIC ,从相册选上传的时候 Safari 会转成 JPEG ,体积和画质都变了;实况照片只过来静态那一张,配套的那段 MOV 不跟着走。想要原文件得让用户从「文件」 App 里选,两条路拿到的东西不一样,页面上提一句能省不少事。
Windows 那节建议把代理单独拎一段出来。CLI 装得上不代表连得上,npm 走的是自己 config 里的 proxy ,CLI 认的是 HTTPS_PROXY 这类环境变量,系统代理开着这两个不会自动有值。PowerShell 里临时赋值关掉窗口就没了,得写进用户级环境变量,新手最容易卡在这一步。

另外每页标一下对应的 CLI 版本和日期。这类工具参数改得勤,照着旧写法跑出来的报错,比不看教程还难查。
电影那块要补的话,卡点大概率不在元数据源,在文件名。同一部片手上有导剪版和加长版,刮削器按片名一匹配全指到同一条目,海报和时长全串了,版本和年份得从目录层级带出来,光认文件名那一串不够。

另一个容易漏的是进度条的预览图。ffmpeg 抽帧 -ss 要写在 -i 前面走关键帧 seek ,写在后面是从头解码到那个点,一部两小时的片抽两百张能跑掉几十分钟,NAS 那颗核更扛不住。
搜这类站基本都是在游戏里卡住了,直接搜那个道具或者结局的名字,搜到哪页看哪页,首页很少进。所以分类页做得再全,不如让每个道具、每个结局都有一张能被单独搜到的页面。

剧透那块建议默认折叠,点开才显示。不然搜索结果的摘要里就把答案提前露出来了,自己被这样坑过几次。
戴耳机开会的时候这方案可能一个字都收不到远端。浏览器 getUserMedia 默认开着 echoCancellation ,对方从扬声器出来的声音正好是回声消除要消掉的那部分,我这边试过同一台机器一边放音一边用麦克风采,远端说话被压得只剩底噪。约束里把 echoCancellation 和 noiseSuppression 关掉会好一些,戴耳机的场景干脆走系统环回或者虚拟声卡采扬声器输出。

导出 srt 的话建议中英分成两个文件给。一条 cue 塞两行,拿进剪辑软件还得一行行拆开,分开两个文件谁想要哪种语言直接挂上。
做字幕的人第一件事就是找 srt 导出,建议直接给 srt 和 vtt 。

逐句时间戳我这边实测不太够用,中文一句常常十几秒,整句压成一行字幕在画面上读不完,还得按标点再切一次。能出词级时间戳的话,切点落在词边界上,后面省一大截手工活。
外挂字幕这块可以先支持上。srt 浏览器的 track 标签不认,要转成 WebVTT ,加个头、时间码里的逗号改成点就行,同目录同名的自动挂上去,看片体验差很多。

另一个是拖进度条。静态服务不返 206 的话,seek 到后面浏览器会从头拉一遍,两小时的片基本卡死,手机上更明显,Range 这段单独测一下。
怕封号的可以分开看。ublock 这种是本地把 DOM 藏起来,一个请求都不发,X 那头看不出你装没装。真会出事的是另一类,要你登录授权、帮你自动拉黑或者批量举报的,那种在后台高频打接口,量一上来就撞风控。

关键词这条过一阵会漏。那批号的文案是按模板拼的,一个意思能换十几种写法,还会用同音字和奇怪符号绕过去。可以再补一条挂在 User-Name 那一层,不少号的 handle 是拼音加一串数字,比追着正文关键词稳。
配音和画面对不齐的话大概率出在时长上。Remotion 是按帧排的,脚本里把 durationInFrames 写死,同一句话换个标点 TTS 那头就差几百毫秒,后面整条时间轴跟着串。稳一点的做法是先把音频合出来读实际时长再回填帧数,别拿估算的秒数排。

旁白按镜头一句一个文件合成,别整段合完再按静音切。句间停顿本来就短,切点很容易落在字中间,前一句结尾是轻声的时候尤其明显。
9 天前
回复了 mqx 创建的主题 分享创造 视频转延迟摄影网站
纯前端抽帧最容易收到的报障是导出来全黑。手机拍的延时素材大多是 HEVC ,iPhone 默认就是这个,Chrome 读得到时长和分辨率,画面解不出来,drawImage 拿到的是纯黑,全程还不报错,AV1 也一样。开头先抽一帧判断是不是纯色,是就提示换片源,比让人等到导出完才发现强。

抽帧模式的跳感可以试试帧混合。原片每帧快门只有几十分之一秒,隔 N 帧取一张,运动物体是一顿一顿的。把取中的那帧跟前后几帧叠加平均,出来的拖影才接近真延时的观感。
成本大头是帧数,单帧大小不是主项。一秒一帧写死的,两小时的片子七千多帧,这个量级下单张再怎么压也就省个包体积,token 那头照样贵。

想真省得动密度。先低密度粗扫一遍拿到分段,再只对重点段加密,比全片等密度划算。我这版这块是写死的,界面上没做成可调,回头看是留了坑的。
10 天前
回复了 graetdk 创建的主题 分享创造 基于 H3 做了个免费搞抽象视频的网站
字数上限按秒数折算一下摆在输入框上就行。中文口播听着舒服的语速差不多每秒四个半字,8 秒的坑位撑死三十五六个字,标点还要占停顿。超了模型只能把语速压快,后面两句糊成一坨就是这么来的。

比放到 10 秒划算。时长一加显存和生成时间都跟着涨,40G 那台机器扛不住几个人一起玩,输入框上加个计数器几乎不花钱。
@0x2CA 补个可能的原因,片源是不是 HEVC/H.265 或者 10bit 的?这类编码 Chrome 读得到时长和分辨率,画面解不出来,抽出来就是一张张纯黑,全程还不报错,AV1 也一样。

确认起来简单,把那个文件直接拖进浏览器打开,有声音但画面全黑就是它。换一个 H.264 的 MP4 再试试,在线版没带转码,本地跑的那版才能转。
@0x2CA 我这是正常的,你那发生了什么问题
@Chicagoake 老观众了,🙏感谢
@OctopusGO 这就是一个对电影进行反编译的工具,可以把一部电影自动还原成剧本,方便学习电影制作的人进行理解,以前拉片这个动作只能手动完成,需要消耗大量的时间,这个工具就是用来节省时间的
@cirzear gap year 刚好碰上 AI 爆发,很感兴趣就随手做些小玩具,当做学习作业了
1  2  
About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5561 Online   Highest 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 27ms · UTC 08:15 · PVG 16:15 · LAX 01:15 · JFK 04:15
♥ Do have faith in what you're doing.