FFmpeg之ffmpeg制作某音同款水印

比较low 比较low 比较low
背景
前几天客户需求比较多,都需要某音上面都水印玩法,可是我们确实没做到,就尝试自己做一下试试,遇到很多坑,目前来看,单从ffmpeg命令上,一行命令是搞不定的
暂时实现思路
视频加gif水印,gif循环,同时n秒后水印切换位置继续循环

  1. 视频切割
  2. 加上水印
  3. 后面一段视频加水印
  4. 合成视频
    ffmpeg -ss 0 -t 15 -accurate_seek -i giftest.mp4 -codec copy cut01.mp4 //剪裁前面部分视频
    ffmpeg -ss 15 -t 15 -accurate_seek -i giftest.mp4 -codec copy cut02.mp4 //剪裁后面部分视频
    ffmpeg -i giftest.mp4 -ignore_loop 0 -i qiniu.gif -filter_complex overlay=shortest=1:x=5:y=6 addgif01.mp4//水印添加在左上角
    ffmpeg -i cut.mp4 -ignore_loop 0 -i qiniu.gif -filter_complex overlay=shortest=1:x=main_w-overlay_w-5:y=main_h-overlay_h-6 addgif02.mp4//水印添加在右下角
    ffmpeg -i addgif01.mp4 -c copy -bsf:v h264_mp4toannexb -f mpegts input01.ts
    ffmpeg -i addgif02.flv -c copy -bsf:v h264_mp4toannexb -f mpegts input02.ts
    //生成ts
    ffmpeg -i "concat:input01.ts|input02.ts" -c copy -bsf:a aac_adtstoasc -movflags +faststart outputgif.mp4//合成视频

//某音同款动态水印视频
查看视频效果

说说遇到那些坑,以下命令都不行,有大神可以指点一步到位的命令吗,暂时不通过改源码的姿势
ffmpeg -i mytest.mp4 -ignore_loop 0 -i qiniu.gif -filter_complex overlay=shortest=1:x=10:y=10 test03.mp4
//可以生成循环播放的gif,但是固定了logo位置

ffmpeg -re -i mytest.mp4 -vf “movie=qiniu.gif,scale=80*50[filter]; [in][filter] overlay=x=‘if(lte(t,8),10,main_w-overlay_w-10)’:y=‘if(lte(t,10),10,main_h-overlay_h-10)’ [out]” -vcodec libx264 filterTest04.mp4
//8秒后logo切换到右下角,但是logo不循环

ffmpeg -i mytest.mp4 -ignore_loop 0 -i qiniu.gif -filter_complex overlay=shortest=1:x=10:y=10" test03.mp4

ffmpeg -re -i myfilter.mp4 -vf “movie=qiniu01.png,scale=80*50[filter]; [in][filter] overlay=x=‘if(gte(-1t,0),10,12)’:y='if(gte(-1t,0),10,12)’ [out]” -vcodec libx264 filter001.mp4

ffmpeg -i mytest.mp4 -ignore_loop 0 -i qiniu.gif -filter_complex -vf overlay=shortest=1:x=10:y=10" test03.mp4


未完待续…

你可能感兴趣的:(音视频)