ffmpeg视频特效
2019-12-02 本文已影响0人
技术笔记
ffmpeg视频合并淡入淡出效果 原文
下面这个写法会报错:
ffmpeg -i dog3.mp4 -i dog3.mp4 -i dog3.mp4 -i dog3.mp4 -i dog3.mp4 -filter_complex \
"[0:v]setpts=PTS-STARTPTS[v1]; \
[1:v]format=yuva420p,fade=in:st=0:d=1:alpha=1,setpts=PTS-STARTPTS+(4/TB)[v2];
[2:v]format=yuva420p,fade=in:st=0:d=1:alpha=1,setpts=PTS-STARTPTS+(8/TB)[v3];
[3:v]format=yuva420p,fade=in:st=0:d=1:alpha=1,setpts=PTS-STARTPTS+(12/TB)[v4];
[4:v]format=yuva420p,fade=in:st=0:d=1:alpha=1,setpts=PTS-STARTPTS+(16/TB)[v5];
[v1][v2]overlay[12]; [12][v3]overlay[123]; [123][v4]overlay[1234]; [1234][v5]overlay,format=yuv420p[v]; \
[1][2]acrossfade=d=1[a12]; [a12][3]acrossfade=d=1[a123]; [a123][4]acrossfade=d=1[a];" \
-map [v] -map [a] result.mp4
在前面的filter_complex的最后一个标签后不能跟分号,跟了分号就报错:
[AVFilterGraph @ 0x55a826aa5a60] No such filter: ''
Error initializing complex filters.
Invalid argument
以前碰到这个问题的时候因为-map后面没加""报错:
-map "[v]" -map "[a]"
这次不是这个问题。
正确的如下:
ffmpeg -i dog3.mp4 -i dog3.mp4 -i dog3.mp4 -i dog3.mp4 -i dog3.mp4 -filter_complex \
"[0:v]setpts=PTS-STARTPTS[v1]; \
[1:v]format=yuva420p,fade=in:st=0:d=1:alpha=1,setpts=PTS-STARTPTS+(4/TB)[v2];
[2:v]format=yuva420p,fade=in:st=0:d=1:alpha=1,setpts=PTS-STARTPTS+(8/TB)[v3];
[3:v]format=yuva420p,fade=in:st=0:d=1:alpha=1,setpts=PTS-STARTPTS+(12/TB)[v4];
[4:v]format=yuva420p,fade=in:st=0:d=1:alpha=1,setpts=PTS-STARTPTS+(16/TB)[v5];
[v1][v2]overlay[12]; [12][v3]overlay[123]; [123][v4]overlay[1234]; [1234][v5]overlay,format=yuv420p[v]; \
[1][2]acrossfade=d=1[a12]; [a12][3]acrossfade=d=1[a123]; [a123][4]acrossfade=d=1[a]" \
-map [v] -map [a] result.mp4
ffmpeg快慢快效果
ffmpeg -i dog3.mp4 -timestamp now -filter_complex "[0:v]split=3[1v][2v][3v];[0:a]asplit=3[1a][2a][3a];
[1v]trim=0:2.234000,setpts=PTS-STARTPTS[v1];\
[2v]trim=2.234000:4.943000,setpts=(PTS-STARTPTS)*4[v2];\
[3v]trim=4.943000:11.208000,setpts=PTS-STARTPTS[v3];\
[1a]atrim=0:2.234000,asetpts=PTS-STARTPTS[a1];\
[2a]atrim=2.234000:4.943000,volume=0,atempo=2.0,atempo=2.0[a2];\
[3a]atrim=4.943000:11.208000,asetpts=PTS-STARTPTS[a3];\
[v1][a1][v2][a2][v3][a3]concat=n=3:v=1:a=1[vout][aout]" \
-map [vout] -map [aout] -c:v libx264 -preset superfast -x264opts bframes=0:keyint=10 \
-r 30.000000 -strict -2 -y result.mp4 -v info