先交代一下背景
去年11月,一个做农资号的朋友半夜给我打电话。他自己下棚拍素材,大棚、苗情、施肥、打药,前后拍了小半年,攒了差不多200多条。发出去就是两三百播放,最惨的一条19个播放,其中还有他自己点的。
他的判断是「去重没做够」。想让我写个脚本,批量加滤镜、左右镜像、微变速、改文件头,一条拆成三条发。他甚至已经算好了:200条素材,一条拆三条,就是600条,够他发大半年。
脚本我没写。但我陪他做了个实验,花了3周时间。下面这些内容,一部分是实验结果,一部分是我这几年做剪辑外包攒下来的经验,还有一部分是我自己也不太确定的推断——我会标出来哪些是推断。
先说一句可能有点扫兴的话:下面所有操作的前提,是素材属于你自己,或者你拿到了明确授权。搬运别人的东西,加工得再花哨也是侵权,这个跟技术没关系。
平台到底在比对什么
大部分人对手上这条视频的理解停留在「一个文件」,所以加工思路也是文件级的:改MD5、改时长、改分辨率。但平台的比对至少分了四层,一层比一层难糊弄。
第一层是文件指纹,也就是MD5、SHA1这类。这一层早在十来年前就没什么用了,你导出的时候编码参数变一下,MD5就完全变了。这一层基本可以忽略。
第二层是视觉感知哈希,最常见的是pHash。做法是把画面缩到32×32灰度,做离散余弦变换,取左上角8×8的低频系数,跟整体均值比大小,得到一串64位的0和1。两张图比的时候算汉明距离,业内一般把距离小于5的当成「同一张图」。你左右镜像一下,DCT系数的分布会大幅改变,pHash确实就废了。裁剪5%、调个色,也能拉开距离。
第三层是音频指纹,原理跟Shazam那套差不多,取频谱峰值做哈希。你换了背景音乐,这层就过了;但你要是原声口播一句没改,这层直接把你按住。
第四层也是最要命的一层——结构层。现在多模态模型可以直接读你的画面内容和字幕文本,比的是「这条视频讲了什么、按什么顺序讲」。你镜像一百遍,讲的还是「打药要选下午四点」,它照样认得出来。
我说的第四层,是外部观测加推断。我没在字节或者快手干过,拿不到他们内部的判定阈值,但有几个现象很说明问题:把别人爆款的结构一比一换成自己的素材重录,播放起不来;同一个人同一个选题,换叙述顺序重做,反而能跑。这跟「只看画面哈希」的模型解释不通。
8组对照,40条视频
朋友的素材是iPhone 13拍的,1080×1920,30fps,单段12到45秒,成品控制在60到75秒。我们用3个粉丝量在2000到8000之间的同类账号发布,时间跨3周,每组发5条,一共40条。
下面这张表是播放量中位数。样本很小,别当结论看,我也没法排除账号权重和发布时间的干扰。
| 组别 | 加工手法 | 播放中位数 |
|---|---|---|
| 1 | 原样重发(对照) | 310 |
| 2 | 改MD5 + 换文件名 | 280 |
| 3 | 左右镜像 + 裁掉5%边缘 | 420 |
| 4 | 变速1.03倍 + 对比度饱和度微调 | 360 |
| 5 | 换BGM + 加三行字幕条 | 690 |
| 6 | 换前3秒开场 + 段落顺序重排 | 1100 |
| 7 | 保留画面,重录口播,重新组织叙述逻辑 | 3400 |
| 8 | 手法6+7叠加 | 3800(其中一条11万) |
1到4组基本可以认为没有区别,都在噪声范围内。第5组稍微好一点,我倾向于认为是字幕条提高了完播率,而不是「过了去重」。第7、8组才是真正拉开差距的,但这两组的共同点是——内容本身的信息结构变了,不只是像素变了。
那条11万的,朋友改了什么?他把原来「先讲现象再讲原因」的顺序倒过来了,开头直接甩了一句「叶片发黄别急着补氮」,然后才解释。就这么点事。
参数部分:剪映点哪里,FFmpeg敲什么
先说剪映,因为大部分人用的是这个。导出设置里,分辨率选1080P,帧率跟你源素材一致(别硬拉到60,30的素材拉到60只会掉画质),格式MP4,编码H.264,码率选「更高」大概是8到12Mbps这个区间,日常够用。真正在导出面板里能改的东西很少,它不给你控GOP和CRF。
想要精细控制就得用FFmpeg。下面这条是我批量处理竖屏素材用的,压得比较克制:
ffmpeg -i in.mp4 \
-vf "scale=1080:1920:force_original_aspect_ratio=decrease,pad=1080:1920:(ow-iw)/2:(oh-ih)/2,eq=contrast=1.04:saturation=1.05" \
-c:v libx264 -profile:v high -crf 20 -preset slow -r 30 -g 60 -pix_fmt yuv420p \
-c:a aac -b:a 160k -ar 44100 \
-movflags +faststart out.mp4
几个参数解释一下。crf 20是画质档位,数字越小越清晰体积越大,18到23是常用区间,低于18基本是浪费码率。-g 60是关键帧间隔,30fps下等于每2秒一个I帧,平台转码时定位会更准。-movflags +faststart把索引挪到文件头,上传后首帧加载快一些,这个很多人不知道,但确实有用。
音频响度也值得说一句。国内短视频平台的归一化目标大约在-14到-16 LUFS之间,你原始素材要是-22 LUFS,插上耳机听就明显比别人的小声。可以用loudnorm一次性拉平:
ffmpeg -i in.mp4 -af loudnorm=I=-14:TP=-1.5:LRA=11 -c:v copy out.mp4
变速的话,setpts和atempo要配对用,不然音高会飘。1.03倍大概是:
ffmpeg -i in.mp4 -filter_complex "[0:v]setpts=PTS/1.03[v];[0:a]atempo=1.03[a]" -map "[v]" -map "[a]" out.mp4
顺便提醒,atempo的参数范围是0.5到2.0,超出这个范围要拆成多级串联。变速幅度也别贪,3%以内人耳听不出来,超过5%口播就开始像快进了,完播率反而掉。
我的看法可能跟主流不太一样
市面上讲素材加工的教程,九成都在教你「怎么骗过算法」。我做了三年多剪辑外包,越来越觉得这个方向是错的。
因为平台的判定能力是在涨的。三年前镜像一下管用,现在不一定;现在管用的手法,明年大概率也不管用。你把精力押在「找漏洞」上,等于是在跟一个几百人规模的算法团队赛跑,你怎么可能赢。
反过来看,平台真正想打压的从来不是「加工」,而是「同质化」。用户刷到两条讲同一件事、连话术都差不多的视频,会觉得这个平台没意思——这才是平台真正在防的东西。所以你加工的目的如果不是增加信息量,而是让同一份信息看起来不一样,长期看一定是负期望的。
我自己现在的做法是:素材加工只做三件事——统一规格(分辨率、帧率、响度)、补充信息(加数据、加对比、加自己的判断)、重组结构(把最反常识的结论提到前面)。前两件是技术活,有明确参数;第三件是内容活,没有任何工具能替你干。
几个被问得最多的
改MD5有用吗? 没用。现在的比对早就不在文件层了,你改一百遍也没有意义。
镜像+变速+滤镜三件套能过原创吗? 过不了结构层。视觉层可能过了,但只要你的叙述逻辑跟原视频一致,该判重还是判重。
一条素材拆几条发合适? 我的建议是不拆。同样的画面在同一个账号反复出现,用户会烦,完播率掉下来,账号权重也跟着掉。宁可少发,也别重复。
批量处理会影响画质吗? 会。每转一次码就损失一次,尤其是二次压缩后再上传。所以流程上尽量一次到位,别转三四遍。我一般是用FFmpeg统一预处理成母版,之后所有平台从母版导出。
新号有必要做这些吗? 说实话,新号最大的问题不是判重,是没流量池。与其花时间研究去重,不如把那点时间拿去多拍两条。