是否可以使用FFMPEG创建“时间轴”?

时间:2016-04-29 10:48:51

标签: ffmpeg video-streaming

我知道可以使用命令获取文件的一部分: ffmpeg -ss 00:02:00.000 -i input.mp4“-t 00:00:05.000 out.mp4

但是可以将多个视频与文字和其他效果结合起来吗? 我想从以下

创建输出

File1.mp4: 请阅读00:02:00.000至00:02:05.000

File2.mp4 请阅读00:00:00.000至00:01:30.000 插入叠加图片“logo.png”20秒

File3.mp4 插入整个文件 从00:00:10.000到00:00:30.000

插入文字

1 个答案:

答案 0 :(得分:1)

可以使用FFmpeg来完成,但它实际上并不是一个“编辑器”,因此命令将变得冗长,笨拙且容易出现执行错误,输入剪辑和效果的数量就越多。

尽管如此,一种方法是使用concat过滤器。

ffmpeg -i file1.mp4 -i file2.mp4 -i file3.mp4 -loop 1 -t 20 -i logo.png \
-filter_complex "[0:v]trim=120:125,setpts=PTS-STARTPTS[v1];
        [1:v]trim=duration=90,setpts=PTS-STARTPTS[vt2];
        [vt2][3:v]overlay=eof_action=pass[v2];
        [2:v]drawtext=enable='between(t,10,30)':fontfile=font.ttf:text='Hello World'[v3];
        [0:a]atrim=120:125,asetpts=PTS-STARTPTS[a1];
        [1:a]trim=duration=90,setpts=PTS-STARTPTS[a2];
   [v1][a1][v2][a2][v3][2:a]concat=n=3:v=1:a=1[v][a]" -map "[v]" -map "[a]" output.mp4

我没有指定任何编码参数,如codec或bitrate..etc。假设你熟悉那些。此外,还没有指定overlaydrawtext的位置,如position..etc。请参阅文档以获取相关指南。