![Переполнение буфера комплексного фильтра FFMPEG](https://rvso.com/image/1497478/%D0%9F%D0%B5%D1%80%D0%B5%D0%BF%D0%BE%D0%BB%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5%20%D0%B1%D1%83%D1%84%D0%B5%D1%80%D0%B0%20%D0%BA%D0%BE%D0%BC%D0%BF%D0%BB%D0%B5%D0%BA%D1%81%D0%BD%D0%BE%D0%B3%D0%BE%20%D1%84%D0%B8%D0%BB%D1%8C%D1%82%D1%80%D0%B0%20FFMPEG.png)
Я пытаюсь использовать фильтры blend и concat 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