Go ile Güvenli HLS Stream Yöneticisi Giriş Bu yazımızda, Go programlama dili kullanılarak geliştirilen güvenli bir HLS (HTTP Live Streaming) Akış Yöneticisi’nin backend uygulamasını detaylı bir şekilde inceleyeceğiz. Projemiz, canlı video akışlarını güvenli bir şekilde yönetmek ve kullanıcılara sunmak için tasarlanmıştır.
Detaylı anlatıma başlamadan önce Projenin kaynak kodlarının tamamına bu linkten erişebilirsiniz Github GoLangHlsStreamProxy Kullanılan Teknolojiler Projemiz aşağıdaki temel teknolojileri kullanmaktadır:
Go: Ana programlama dili Fiber: Hızlı ve verimli bir HTTP web framework’ü GORM: Go için ORM (Object-Relational Mapping) kütüphanesi JWT: JSON Web Token ile kimlik doğrulama SQLite: Veritabanı olarak bcrypt: Şifre hashleme için Proje Yapısı Projemiz dört ana bileşenden oluşmaktadır:
AV1 Video Converter Bu yazımda, daha önce hakkında bilgi verdiğim AV1 Codec için dönüştürücü programının nasıl yazılacağı ile ilgili bilgiler paylaşacağım. AV1 video dönüştürücü uygulamamızın oluşturulmasına geçmeden önce, kullanacağımız Wails framework’ü hakkında biraz bilgi sahibi olalım. Wails Nedir? Wails, Go ve web teknolojilerini kullanarak masaüstü uygulamaları oluşturmanıza olanak tanıyan açık kaynaklı bir projedir. Kavram olarak Electron’a benzer, ancak bazı önemli farklılıkları vardır:
Go Backend: Electron’un Node.js kullanmasının aksine, Wails backend için Go’yu kullanır.
Golang Redis ile JWT Kimlik Doğrulaması Bu makalede, Golang kullanarak JWT tabanlı bir kimlik doğrulama sistemi oluşturacağız. Sistemimiz şu teknolojileri kullanacak:
Fiber: Hızlı bir web framework GORM: PostgreSQL ile etkileşim için ORM JWT: Kimlik doğrulama için JSON Web Token Redis: Token yönetimi için önbellek PostgreSQL: Kullanıcı verilerini depolamak için veritabanı Bcrypt: Şifre hashleme için güvenli algoritma Yukarıda yazdıklarımız Golang Projesi içerisinde kullanacakalarımız bunlara ek olarak proje dışı bileşenler olarak
Redis: Token yönetimi için önbellek PostgreSQL: Kullanıcı verilerini depolamak için veritabanı Gereksinimler Bu projeyi gerçekleştirmek için aşağıdaki araçlara ihtiyacınız olacak:
AV1 Nedir? Günümüzde video içeriği tüketimi giderek artmakta ve yüksek çözünürlüklü (4K, 8K) içerikler yaygınlaşmaktadır. Bu durum, daha etkili video sıkıştırma teknolojilerine olan ihtiyacı artırmıştır. AV1 (AOMedia Video 1), bu ihtiyaca cevap vermek üzere geliştirilen açık kaynaklı ve royalty-free bir video kodek standardıdır.
Neden AV1’e İhtiyaç Duyduk? H.264/AVC ve H.265/HEVC gibi önceki codec’ler, artan video kalitesi ve çözünürlük taleplerine karşı yetersiz veya bu codec’lerin lisans ücretleri, özellikle büyük ölçekli video dağıtımı yapan şirketler için önemli bir maliyet oluşturmaktaydı.
Merhabalar,
Size bu yazımda bundan bir kaç yıl önce çalıştığım kurumdaki kameraman abim Güray Ervin’in çekim esnasında kamerasının bataryası bitmiş ve kamera gerekli sonlandırmayı yapamadığı için video dosyası fiziksel olarak bulunmasına rağmen kullanılamaz bir haldeydi. Video tekrarı çekilemicek bir röportaj kaydı olduğu için çok önem arz ediyordu, bugün sizlerle paylaşacağım programın ilk versiyonunu yapmama bu olay vesile olmuştu.
Yakın bir zamanda yine bir çalışma arkadaşım bir toplantı kaydını alırken bilgisayarı kapanıyor ve yine video düzgün sonlamadığı için izlenemez ve kullanılamaz duruma gelmişti, geçmişte yaptığım gibi bu dosyayıda kullanılabilir hale getirdim ve bu uygulamayı son kullanıcının kullanabileceği bir hale getirerek sizlerle paylaşmak istedim.
Merhabalar,
Bugün sizlere FFMPEG tabanlı kendi geliştirğim çok basit arayüze sahip kolay kullanımlı bir Video converter programı paylaşacağım.
Video converter ile ;
Viideolarınız hangi formatta olursa olsun ister H264/AVC ister H265/HEVC istersenizde televizyon yayıncılığında genel olarak kullandığımız XDCAMHD 4:2:2 Long-Gop formatına çevirebilirsiniz.
Son kullanıcı olarak yüksek bitrate’e sahip videolarınızı daha az yer kaplaması amacıyla bitrate’ini düşürerek saklayabilirsiniz, 1:30 dakikakyı geçmeyen videolarınızı WhatsExport seçeneğini kullanarak whatsapp tan izlenebilir ve paylaşılabilir hale getirebilirsiniz.
Merhabalar,
Biliyorum çok ama çok uzun zamandır sizlere yazı yazamıyorum, gerek iş yoğunluğu gerek aile uğraşları derken aradan uzunca bir zaman geçmiş, umarım bugün başlayacağım yazı dizisinde sizlere faydalı bilgililer paylaşabilirim.
Yıllar önce yine yazmayı düşündüğüm SDI Must Die ve SMPTE-2022 konulu yazının daha güncel bir hali olan SMPTE-2110 Standartını bir kaç bölümden oluşacak bir yazı dizisi ile sizlere anlatmaya çalışacağım, bu bölümde çok teknik detaylara boğulmadan genel bir bilgilendirme ile giriş yapacağız.
HD televizyon yayıncılığında NLE kurguların ve HD Camcorderların genel olarak kullandığı codecler ve formatlar hakkında yüzeysel olarak bilgi vermeye çalışacağım.
DNxHD/Avid Avid tarafından produksiyon amaçlı geliştirilen ve açık kaynak kodlu bir codec. MXF yada Quicktime zarflı bir dosya oluşturulabiliyor. I-Frame Only Sıkıştırma altyapısını kullanıyor, Apple’ın ProRes formatına iyi bir alternatif. Aşağıdaki tabloda; DNxHD’nin Bit derinliği, Örnekleme ve Bant genişliğini inceleyebilirsiniz.
ProRes/Apple Apple tarafından geliştirmiş prodüksiyon bir codec, I-Frame only alt yapısında bir sıkıştırma sunuyor.
Uzun zamandır yazmayı düşündüğüm ve çok soru aldığım bir kaç konuyu bu yazımda sizlere anlatmak istiyorum. Genel olarak rastladığım sorulardan olan 4:2:2 nedir? 4:2:0 nedir? 1.5 Gb/s nedir? 3Gb/s nedir? gibi soruların cevaplarını sizlerle paylaşacağım. İlk olarak bu konuların temelinde olan renk uzayı ile başlayalım.
RGB Renk uzayı RGB Renk uzayında her bir pikseldeki renk değeri ayrı kanallar olarak saklanır. Örneğin 8 bit bir videoda her bir piksel için 3 byte (8 bit x 3 kanal) renk değeri saklanır.
H265/HEVC Nedir?
Günümüz teknolojisinde tabletlerin ve cep telefonlarının 1920x1080p (full HD) ekran çözünürlüğüne sahip olduğunu görmekteyiz. Teknoloji bu şekilde gelişirken büyük televizyon ekranlarının full HD teknolojisiyle yetinmeyeceğini tahmin edebiliyorsunuzdur. İşte tam bu noktada 2K, 4K, 8K gibi çözünürlüklerden söz edebilir olduk.
Sizler de takdir edersiniz ki çözünürlükler bu kadar yükselince, kodlama (codec) teknolojilerinin de yenilerinin çıkması ve daha yeni kodlamalar kullanması kaçınılmaz oluyor. Hali hazırda kullanılan h.264/avc kodlama teknolojisi HD için yeterli oluyordu fakat 4K ve 8K çözünürlük için performanslı olmayacak gibi gözüküyor.