![FFMPEG複雜過濾器緩衝區溢出](https://rvso.com/image/1497478/FFMPEG%E8%A4%87%E9%9B%9C%E9%81%8E%E6%BF%BE%E5%99%A8%E7%B7%A9%E8%A1%9D%E5%8D%80%E6%BA%A2%E5%87%BA.png)
我正在嘗試將 ffmpeg 3.0.2 混合和連接過濾器一起使用。這是命令列:
ffmpeg -framerate 25 \
-loop 1 -t 40 -i img/01.png \
-loop 1 -t 40 -i img/02.png \
-filter_complex "\
[1:v][0:v]blend=all_expr='A*(if(gte(T,0.9),1,T/0.9))+B*(1-(if(gte(T,0.9),1,T/0.9)))'[b1v]; \
[0:v][b1v][1:v]concat=n=3:v=1:a=0,format=yuv420p[vout]" \
-map "[vout]" -pix_fmt yuv420p -r 25 -c:v libx264 -qp 22 -preset ultrafast -shortest out.mp4
它給了我:
[Parsed_blend_0 @ 0xb4a8a60] [framesync @ 0xb4a8ae4] Buffer queue overflow, dropping.
Last message repeated 21 times
有人可以確認一下他們的機器上是否有相同的行為嗎?
答案1
是的,我在這裡也遇到了溢出錯誤。由於混合在一秒鐘內完成,因此您可以使用以下命令來避免錯誤
ffmpeg \
-loop 1 -t 40 -i img/01.png \
-loop 1 -t 40 -i img/02.png \
-filter_complex "\
[0:v]trim=duration=1[a]; \
[1:v][a]blend=all_expr='A*(if(gte(T,0.9),1,T/0.9))+B*(1-(if(gte(T,0.9),1,T/0.9)))':shortest=1[b1v]; \
[0:v][b1v][1:v]concat=n=3:v=1:a=0,format=yuv420p[vout]" \
-map "[vout]" -pix_fmt yuv420p -r 25 -c:v libx264 -qp 22 -preset ultrafast -shortest out.mp4