1.實現(xiàn)每隔10秒交替出現(xiàn)logo
ffmpeg -y -t 60 -i input.mp4 -i logo1.png -i logo2.png -filter_complex "overlay=x=if(lt(mod(t\,20)\,10)\,10\,NAN ):y=10,overlay=x=if(gt(mod(t\,20)\,10)\,W-w-10\,NAN ) :y=10" output.mp4
60 編輯視頻時長,如果填寫只會處理并輸出前60秒的視頻,不填寫會處理整個視頻
x 水印的左上角的x坐標
y 水印的左上角的y坐標
input.mp4 輸入的視頻文件(需要處理的)
output.mp4 輸出的視頻文件(已經(jīng)處理完成的)
if(gt(mod(t,20),10),W-w-10,NAN )中第二個10說logo出現(xiàn)的時長,即是說水印會顯示10秒
2.實現(xiàn)跑馬燈
ffmpeg -i input1 -i input2 -vcodec libx264 -an -filter_complex "overlay=x='if(gte(t,2), -w+(t-2)*20, NAN)':y=0" -s 320x240 output.mp4
input1 放在底部的視頻
input2 放在上面的視頻
320x240 輸出視頻的寬高
3.實現(xiàn)2秒后logo從左到右移動
ffmpeg -i input.mp4 -vf "movie=logo.png[logo];[in][logo]overlay=x='if(gte(t\,2)\,((t-2)*80)-w\,NAN)'" output.mp4
80 移動的距離,單位像素
4.實現(xiàn)gif格式的logo循環(huán)命令
ffmpeg -i video.mpg -ignore_loop 0 -i loop.gif -filter_complex "[0:v][1:v]overlay=10:10:shortest=1" -vcodec mpeg2video out.mpg
5.實現(xiàn)視頻添加字幕
ffmpeg -i input -vf drawtext=fontfile=arial.ttf:text=welcome output
6.實現(xiàn)周期顯示輸入的文字水印
ffmpeg -i input.mp4 -vf "drawtext=fontfile=/usr/share/fonts/truetype/freefont/FreeSerif.ttf:text='testtest':x=w-100:y=100:enable=lt(mod(t\,3)\,1):fontsize=24:fontcolor=yellow@0.5:shadowy=2" output.mp4
7.編寫代碼遇到錯誤
Cannot create buffer sink ret = -12
修改
AVFilter *buffersrc = avfilter_get_by_name("buffer");
AVFilter *buffersink = avfilter_get_by_name("buffersink");