Canlı bir video yayınına bir retikül eklemeye çalışıyorum ve bazı harici verilere göre hareket edebilmek için retiküle ihtiyacım var.
Ffmpeg ile video üzerinde bir kutu çizebilirim:
ffmpeg -i input.mpg -vf drawbox=x=100:y=100:w=20:h=20:c=red output.mpg
(Şimdilik sadece video dosyaları ile test ettiğime dikkat edin, çünkü bunun bazı bölümlerini daha kolay hale getirir.)
Ancak, komut başladıktan sonra x
ve y
değerleri harici olarak ayarlamanın bir yolu görünmüyor . Bunları, örneğin stdin'den okumanın kolay bir yolu olsaydı, bu ideal olurdu ya da /dev/shm/reticle-pos.txt
bunu yapmanın bir yolunu bulamıyorum.
Denediğim bir diğer seçenek ise dürbünün dışına imagemagick ile çizip ffmpeg ile kaplamak:
while true; do
for x in {100..500..1}; do
convert -size 1080x720 xc:none -fill none -stroke red -strokewidth 2 \
-draw "ellipse $x,100 10,10 0,360" -scale 1080x720 /dev/shm/newreticle.png
cp /dev/shm/newreticle.png /dev/shm/reticle.png
sleep 0.001
done
done &
ffmpeg -i input.mpg -i /dev/shm/reticle.png -filter_complex overlay output.mpg
Ancak bu işe yaramaz, ffmpeg görüntü dosyasını her karede değil, yalnızca bir kez okur göründüğü gibi.
Reticle'nın konumunu kontrol etmeme izin verecek şekilde videonun üzerine bir retikül nasıl çizebilirim?