Skip to content

resim dosyalarından ffmpeg ile video oluşturulması

elinizde belirli zaman aralıkları ile alınmış resimler var bunları kullanarak bir video oluşturmak istiyorsanız bu iş için; arama motorlarında  arama yaparsanız basit araçlar bulabilirsiniz. ancak bu işte en temel kullanılacak araç ffmpegdir. bu gibi örnekler sosyal medyada eşinin hamileliğini resimledi, çocuğunun gelişimi resimledi ve bunlardan video yaptı vb şeklinde karşımıza bolca çıkabilmektedir. (bu sıralar azaldı bir ara oldukça popülerdi 🙂 )

raspberry pi üzerinde webcam kullanımı ““ anlık görüntü alınması  yazısından raspberry ile anlık görüntü alınması konusunda bir örnek yapmıştık. bu örnekteki kameranızı pencerenizden dışarı çevirin kaydettiğiniz resim dosyasının sırasını belirtecek şekilde bir yapıda kaydedelim.  her 5 dakikada bir kayıt yapacak olursa bir ay sonunda 8640 tane jpeg dosyamız olacaktır.

dosyalarımızın isimlerini artan düzende yaptığımızdan dolayı “glob” parametresini kullanmak doğru olacaktır. kaydettiğimiz resim dosyası formatı jpeg ise

ffmpeg -framerate 1 -pattern_type glob -i '*.jpg' -c:v libx264 out.mp4

eğer kaydettiğimiz resim dosyası png dosyası ise

ffmpeg -framerate 1 -pattern_type glob -i '*.png' -c:v libx264 -pix_fmt yuv420p out.mp4

ile mp4 formatında videomuzu elde etmiş oluruz. oluşturacağımız video formatını ve frame sayısını v.b. istediğiniz gibi ayarlayabilirsiniz. https://www.ffmpeg.org/documentation.html adresinden çok daha fazla ayrıntıyı elde edebilirsiniz.

raspberry pi üzerinde webcam kullanımı – anlık görüntü alınması

raspberry pi üzerinde özel bir kamera için arayüz olsa da uygulamanızı ucuza getirmek istiyorsanız linux altında sorun çıkarmayan ucuz bir usb2 webcam işinizi görecektir.

ben eskilerden goldmaster v-52 diye uyduruk bir webcam buldum. ve onunla yapacağım uygulamaları…

öncelikle usb arayüzünü

pi@cicek ~ $ lsusb
Bus 001 Device 002: ID 0424:9512 Standard Microsystems Corp. 
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp. 
Bus 001 Device 004: ID 1908:2310 GEMBIRD 

ve sonrasında video arayüzünü kontrol edelim.

pi@cicek ~ $ ls -al /dev/video*
crw-rw---T 1 root video 81, 0 Jan  1  1970 /dev/video0

her şey yolunda görülüyor. şimdi video0 dan amacımızı uygun olarak veri toplayan ve bunu yayın yapan yazılımları raspberry üzerine kurmaya sıra geldi.

sadece anlık görüntüyü resim formatında kaydetmek istiyorsanız fswebcam uygulaması fazlasıyla işinizi görecektir.

pi@cicek ~ $ sudo apt-get install fswebcam
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following NEW packages will be installed:
  fswebcam
0 upgraded, 1 newly installed, 0 to remove and 3 not upgraded.
Need to get 0 B/52.3 kB of archives.
After this operation, 141 kB of additional disk space will be used.
Selecting previously unselected package fswebcam.
(Reading database ... 38843 files and directories currently installed.)
Unpacking fswebcam (from .../fswebcam_20110717-1_armhf.deb) ...
Processing triggers for man-db ...
Setting up fswebcam (20110717-1) ...

ilgili paketi kurduktan sonra bir örnek ile kameradan görüntü yakalayalım.

pi@cicek /var/www/wcam $ sudo fswebcam --no-title /var/www/wcam/test.jpg
--- Opening /dev/video0...
Trying source module v4l2...
/dev/video0 opened.
No input was specified, using the first.
Error selecting input 0
VIDIOC_S_INPUT: Device or resource busy

yukarıda görüldüğü gibi bir hata aldık. bunun nedeni video0 in başka bir uygulama tarafından kullanıldığını gösteriyor. eğer kamera ile ilgili bir uygulama yapacaksanız mutlaka anlık kamera için bu kontrolleri ve cpu ve ram kullanım durumlarını kontrol ediniz. diğer uygulamayı kapattıktan sonra fswebcami yeniden çalıştıralım.

pi@cicek /var/www/wcam $ sudo fswebcam --no-title /var/www/wcam/test.jpg
--- Opening /dev/video0...
Trying source module v4l2...
/dev/video0 opened.
No input was specified, using the first.
Adjusting resolution from 384x288 to 352x288.
--- Capturing frame...
Captured frame in 0.00 seconds.
--- Processing captured image...
Clearing title.
Unable to load font 'sans': Could not find/open font
Disabling the the banner.
Writing JPEG image to '/var/www/wcam/test.jpg'.

font yüklenirken bir hata meydana geldi ancak test.jpg dosyamz web dizinimiz altında oluştu. web tarayıcı ile http://192.168.2.37/wcam/test.jpg adresine girerek gerekli kontrolleri yapalım. elde ettiğim görüntü aşağıdaki gibidir.

wcam_test

Back To Top