小菜鸟来到新公司接到第一个烫手的山芋是如何处理一个视频,使其产生不同的克隆视频,辨别成不同的视频,防止屏蔽?
工具: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库不全的原因会导致执行不了,不用太纠结,想省事就用方案一就好。
热门工具 换一换