视频添加水印

这里使用FFmpeg

1、什么是FFmpeg

  FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。采用LGPL或GPL许可证。它提供了录制、转换以及流化音视频的完整解决方案。它包含了非常先进的音频/视频编解码库libavcodec,为了保证高可移植性和编解码质量,libavcodec里很多code都是从头开发的。
  FFmpeg在Linux平台下开发,但它同样也可以在其它操作系统环境中编译运行,包括Windows、Mac OS X等。这个项目最早由Fabrice Bellard发起,2004年至2015年间由Michael Niedermayer主要负责维护。许多FFmpeg的开发人员都来自MPlayer项目,而且当前FFmpeg也是放在MPlayer项目组的服务器上。项目的名称来自MPEG视频编码标准,前面的"FF"代表"Fast Forward"。 [1] 

2、视频增加图片水印语法:

  ffmpeg -i 0902-23.mp4 -vf "movie=warter_image_s.png[watermark];[in][watermark] overlay=main_w-overlay_w-10:main_h-overlay_h-10[out] " -vcodec mpeg4 -b:v 2000k 0902-23-warter2.mp4

3、实际应用

public function getWaterVideo($fileName,$videoName){
  //水印视频存储位置
  $tmp_dir = BASE_UPLOAD_PATH . DS . 'water_tmp/';
  @unlink($tmp_dir . $videoName . '-warter2.mp4');

  // $x = 18;
  // $y = 15;
  $str = 'ffmpeg -i ' .getVideoAliUrl($fileName). ' -vf "movie='.$tmp_dir.'water_logo.png[watermark];[in][watermark] overlay=18:15[out] " -vcodec mpeg4 -b:v 2000k ' .$tmp_dir . $videoName . '-warter2.mp4';
  exec($str, $out, $status);
  if($status){
    return false;
  }else{
    return $videoName . '-warter2.mp4';
  }

}

posted @ 2019-10-15 18:02  进击的巨人X  阅读(233)  评论(0编辑  收藏  举报