video - 如何使用 ffmpeg 应用多个过滤器和输入

标签 video filter ffmpeg

我不仅有多个过滤器,还有多个要叠加的输入。我通常需要分 2-3 步完成它们,想知道如何在一个命令中完成所有操作,因为这应该是最有效的方法?

1和2字面意思相同。为了便于阅读,我删掉了很长很复杂的实际过滤器。

  1. 图片从左侧滑入视频
  2. 获取 1 的输出,右边的图像幻灯片
  3. 以输出2为例,文本框图片淡入
  4. 获取output3,文本淡入(完成)

    1)
    ffmpeg -i input.mp4 -loop 1 -i image.jpg -filter_complex \
          "[1]scale=640:-1[i0]; \
           [i0]drawbox=color=white:t=15[i1]; \
           [i1]format=,fade=[i2]; \
           [i2]rotate=[i3]; \
           [0][i3]overlay= \
    -c:v libx264 -vb 10M output1.mp4
    
    2)
    ffmpeg -i output1.mp4 -loop 1 -i image2.jpg -filter_complex \
          "[1]scale=[i0]; \
           [i0]drawbox=[i1]; \
           [i1]format=,fade=[i2]; \
           [i2]rotate=[i3]; \
           [0][i3]overlay=" \
    -c:v libx264 -vb 10M output2.mp4
    
    3)
    ffmpeg -i output2.mp4 -i image3.jpg -filter_complex \
          "[1]scale=1080:-1 [ovrl], \
           [ovrl]format=fade=[i]; \
           [0][i]overlay=" \
    -c:v libx264 -vb 10M output4.mp4
    
    
    4)
    ffmpeg -i output4.mp4 -filter_complex "drawtext=" -vb 10M finaloutput.mp4
    

最佳答案

使用

ffmpeg -i input.mp4 -loop 1 -i image.jpg -loop 1 -i image2.jpg -loop 1 -i image3.jpg \
 -filter_complex \
   "[1]scale=640:-1,drawbox=color=white:t=15,format=,fade=,rotate=[i1]; \
    [2]scale=,drawbox=,format=,fade=,rotate=[i2]; \
    [3]scale=1080:-1,format=,fade=[i3]; \
    [0][i1]overlay=shortest=1[o1]; \
    [o1][i2]overlay=shortest=1[o2]; \
    [o2][i3]overlay=shortest=1,drawtext=" \
 -b:v 10M finaloutput.mp4

关于video - 如何使用 ffmpeg 应用多个过滤器和输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45282823/

相关文章:

apache-flex - flex 中的实时流录制

android - 如何在 Android 中替换视频的音频

video - 开源镜头检测实现?

html - 如果标题高度为 : 100vh,标题背景视频会调整大小

python - 如何使用 Jinja2 模板添加嵌套 groupby

javascript - 使用一个管道 Angular 2 在多个列上进行过滤

filter - Tablesorter:在加载时设置初始过滤器选择值

animation - FFMPEG 由于色彩空间不匹配而丢帧

php - 无法在 laravel 项目的文件中加载 FFMpeg

python - 带有子进程的 avconv