小菜鸟来到新公司接到第一个烫手的山芋是如何处理一个视频,使其产生不同的克隆视频,辨别成不同的视频,防止屏蔽?

工具:FFmpeg

完成这个需求花了大概一个星期,大概有4天在寻找ffmpeg-php扩展,你放心,根本找不到适应高版本php的扩展,最后只得放弃,直接linux安装fmpeg。

利用FFmpeg更改视频的md5值,采用了两个方案

方案一:裁剪视频的首尾,使其改变视频的md5值

FFmpeg命令
ffmpeg -ss [start] -t [duration] -accurate_seek -i [in].mp4 -codec copy
[out].mp4
[start]:为需要截取内容的开始时间     例如  01:02:03.04           表示从视频的1小时2分钟3.04秒开始裁剪
[duration]:为需要截取的时长              例如    8                          表示裁剪8s
[in]:为输入视频文件名                        例如    C:\Users\admin\Desktop\old.mp4   
       表示被裁剪的视频
[out]:为输出视频文件名                      例如    C:\Users\admin\Desktop\new.mp4     
   表示裁剪出新的视频

从前面裁剪,00:00:00.xx   小数点后不会改变MD5  秒级别裁剪 实验0秒和1秒裁剪不改变,往后裁剪有的会改变

从后面裁剪,00.xx   后面小数点两位有效裁剪会改变MD5

上面是我自己裁剪测出的数据,有一定的参考价值

PHP代码
$random_a = mt_rand(1, 99); $random_b = ($videotime - 2) . '.' . mt_rand(1,
99); exec(FFMPEG_PATH . "ffmpeg -ss 00:00:00." . $random_a . " -t " . $random_b
. " -accurate_seek -i " . $oldPath . " -codec copy -avoid_negative_ts 1 " .
$newPath, $output, $code);
方案二:给视频加不同位置的水印,使其改变视频的md5值

这个自行百度,需要注意的是有些FFmpeg命令由于安装FFmpeg库不全的原因会导致执行不了,不用太纠结,想省事就用方案一就好。

友情链接
KaDraw流程图
API参考文档
OK工具箱
云服务器优惠
阿里云优惠券
腾讯云优惠券
华为云优惠券
站点信息
问题反馈
邮箱:[email protected]
QQ群:637538335
关注微信