【问题标题】:Add animated overlay to video from camera将动画覆盖添加到来自相机的视频
【发布时间】:2017-11-29 19:07:32
【问题描述】:

我需要在录制的视频上叠加多个带有动画位置、alpha 和旋转的图像。实现这一目标的最佳方法是什么?

目前我正在查看 ffmpeg,是否可以使用 ffmpeg 将位置动画添加到叠加层?

【问题讨论】:

    标签: android ffmpeg


    【解决方案1】:

    解决方案示例:

    ffmpeg -y -i video.mp4 -i overlay.png -filter_complex "[0][1]overlay=x=mod((1080/4 + sin(t)*1080/4)\,1920):y=mod(t*300\,1080)[res];" -map "[res]" -preset ultrafast out.mp4
    

    说明:

    使用评估 x=mod((1080/4 + sin(t)*1080/4)\,1920) 在输入 [0] (video.mp4) 上叠加输入 [1] (overlay.png) 和位置叠加:y=mod(t*300\,1080),其中 t = 时间,以毫秒为单位。然后将叠加结果映射到流[res],并输出到out.mp4。

    具有多个叠加层并使用 gif 作为叠加层的更复杂示例:

    ffmpeg -y -i video.mp4 -ignore_loop 0 -i overlay.gif -filter_complex `
    >> "[0][1]overlay=x=mod((1080/4 + sin(t)*1080/4)\,1920):y=mod(t*300\,1080):shortest=1[res];`
    >> [res][1]overlay=x=mod((200*1 + 1080/4 - sin(2*t)*1080/4)\,1920):y=mod(100 + t*300\,1080):shortest=1[res];`
    >> [res][1]overlay=x=mod((200*2 + 1080/4 - sin(-90 + t/2)*1080/4)\,1920):y=mod(150 + t*250\,1080):shortest=1[res];`
    >> [res][1]overlay=x=mod((200*3 + 1080/4 - sin(90 + 3*t)*1080/4)\,1920):y=mod(200 + t*100\,1080):shortest=1[res];`
    >> [res][1]overlay=x=mod((200*4 + 1080/4 - sin(180 + t)*1080/4)\,1920):y=mod(t*250\,1080):shortest=1[res];`
    >> [res][1]overlay=x=mod((200*5 + 1080/4 - sin(-180 + t)*1080/4)\,1920):y=mod(t*100\,1080):shortest=1[res];`
    >> [res][1]overlay=x=mod((200*6 + 1080/4 - sin(2*t)*1080/4)\,1920):y=100 + mod(100 + t*300\,1080):shortest=1[res]`
    >> " -map "[res]" -preset ultrafast out.mp4
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-05-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多