OpenCV Video Yazma (Video Writer, Codec, FourCC)

OpenCV ile video oluşturmak yani eldeki görüntü dizilerini kaydetmek için VideoWriter sınıfı kullanılmaktadır.  Kullanımına geçmeden önce bazı kavramlara bakmakta fayda var bu kavramlar codec yani kod çözücü ve FourCC (Four character code).

Codec (Kod Çözücü)

Ham ses ve görüntü dosyalarının boyutu oldukça büyüktür, bu sorunu çözmeni yolu ise bu verileri sıkıştırmaktır. Görüntü ve ses dosyalarını sıkıştırmak için bir çok farklı algoritma geliştirilmiştir, bu algoritmalar sıkıştırmak için  farklı yöntemler kullanmışlardır. Sıkıştırılan veriyi açmak için ise bu sıkıştırma algoritmasını anlayacak ve veriyi gösterecek bir çözücüye ihtiyaç duyulmaktadır, işte bu çözücüler codec olarak adlandırılmaktadır. Sık kullanılan sizinde aşina olduğunuzu düşündüğüm bazı codec’ler şunlardır; H261, MJPEG, MPEG vb.

FourCC

“Four character code” yani  dört karakter kodu olarak adlandırılır.  FourCC nin amacı medya verilerindeki codec’leri dört karakter ile tanımlamaktır, yani standart bir tanımlama formatı oluşturmaktır.  FourCC kodunu tanımlarken  ASCI tablosunda olmayan bir karakter kullanılamaz. En çok bilinenleri DIVX, XVID, H264 vb. güncel listeye buradan bakabilirsiniz. Codec’leri indirmek için ise bu bağlantıyı kullanabilirsiniz.

FourCC formatı aşağıdaki gibidir,

__ – __ – __ – __

8   –  8   –   8   –   8      = 4byte – 32bit

OpenCV içerisinde codec tanımlamak veya kullanmak için FourCC kullanacağız.

 

VideoWriter

Videoyu yazmak için 5 adet parametreye ihtiyacı vardır, bu parametreler; videonun kaydedileceği dizin, codec,  frame boyutu (genişlik, yükseklik), fps değeri ve videonun renkli mi yoksa siyah beyaz mı kayıt edileceğini belirten boolean bir bayrak değişken.

Bu işlem sonucunda muhtemel karşılaşacağınız sorunlardan bir tanesi yazılan video’nun açılmaması veya yazma işleminin başarısız olmasıdır. Bu sorunun nedeni muhtemelen sisteminizde codec paketinin eksik olmasından kaynaklanmaktadır, çözümü için bu bağlantıdan ffmpeg indirebilir ve buradaki bağlantıdan nasıl kurulduğuna göz atabilirsiniz.

 


Yararlanılan Kaynaklar:

  • http://docs.opencv.org/2.4/doc/tutorials/highgui/video-write/video-write.html
  • https://www.fourcc.org/fourcc.php

 

 





Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir