Superposición precisa de imágenes sobre video usando ffmpeg
(0)
Quiero superponer varias imágenes de icono sobre un video determinado (que se crea usando la secuencia de imágenes) en un tiempo y posición de manera precisa. Estoy usando FFmpeg para lo mismo. Aquí están los comandos que estoy usando:
Comando de conversión de imagen a video
ffmpeg -framerate 5 -start_number 0 -i images/img%04d.png -vframes 1000 -r 30 -vcodec libx264 -crf 25 -pix_fmt yuv420p out.mp4 -y
Las imágenes se superponen sobre el comando de video
ffmpeg -analyzeduration 10000 -hwaccel auto -i out.mp4 -i icons/up.png -i icons/down.png -i icons/left.png -i icons/right.png -i icons/top.png -i icons/bottom.png -i icons/side.png -filter_complex [0:v]setpts=PTS-STARTPTS[0];
[1:v]setpts=PTS-STARTPTS[i1];
[2:v]setpts=PTS-STARTPTS[i2];
[3:v]setpts=PTS-STARTPTS[i3];
[4:v]setpts=PTS-STARTPTS[i4];
[5:v]setpts=PTS-STARTPTS[i5];
[6:v]setpts=PTS-STARTPTS[i6];
[0][i1]overlay=211.875:319.916:enable=''between(t,0.610,0.910)''[1];
[1][i2]overlay=212.344:309.516:enable=''between(t,1.810,2.110)''[2];
[2][i3]overlay=37.969:332.396:enable=''between(t,2.775,3.075)''[3];
[3][i4]overlay=202.500:307.436:enable=''between(t,3.626,3.926)''[4];
[4][i5]overlay=37.734:296.203:enable=''between(t,4.531,4.831)''[5];
[5][i6]overlay=208.359:313.676:enable=''between(t,5.602,5.902)''[6];
[6][i7]overlay=34.688:383.150:enable=''between(t,6.733,7.033)''[7];
-map [7] -y -movflags +faststart superimposed.mp4
Mi problema es que no estoy obteniendo precisión a tiempo. es decir, si hay un icono que se superpone a 0,61 segundos, no aparece exactamente a 0,61 segundos. A veces llega a 1.0 segundos, a veces a 0.30 segundos y otras veces a otro momento impredecible.
Tengo un reproductor de video HTML5 donde el usuario puede buscar el video con una precisión de 100 milisegundos. El usuario espera que el ícono vea exactamente a 0.61 segundos. Sin embargo, la inexactitud anterior limita las capacidades de mi reproductor de video.
Por favor sugiera qué podría estar mal en mi implementación / comando.