# Devir notu: Eğitim - 01 önizleme oynatıcısı

Bu iş başka bir ajana devredildi. Aşağıdakiler şimdiye kadar yapılanlar ve öğrenilenler.

## Kullanıcının istediği
- İki kamera ve sesler senkron, bütün kayıt tek seferde izlenebilsin.
- **Dönüştürme yok, proxy yok, render yok.** Oynatıcı orijinal 4K dosyaları kullanmalı.
- Tarayıcı (HTML) şart değil; **Python ile yazılmış bir oynatıcı** istiyor.
- Kurguyu daha sonra ayrıca yaptıracak.
- Kullanıcı kısa ve Türkçe konuşulmasını, bir şey çalıştırmadan önce ne yapılacağının söylenmesini istiyor.

## Dosyalar
- Kaynak: `/home/stark/Desktop/Eğitim - 01/`
  - `Eğitim/`: sahne/workshop. 19:35–21:37.
  - `Sohbet/`: masa. 22:15 sonrası.
  - `TASIMA-KAYDI.txt`: klasörleme sırasında hangi dosyanın nereye taşındığı.
- `Önizleme/oynatici.py`: oynatıcının ilk sürümü, **henüz hiç çalıştırılmadı**.
  - PyQt6 kullanıyor; iki mpv sürecini `--wid` ile pencereye gömüyor, JSON IPC ile yönetiyor.
  - Okuduğu zaman çizelgesi `medya/zaman.json`, ama bu dosya **henüz yok**.
  - Beklenen yapı: `{"bolumler": {"Eğitim": {"bas", "son", "video": {"A": [{"yol", "bas", "sure"}], "B": []}, "ses": {"Mikrofon 1": [], "Mikrofon 2": []}}}, "kanal": {...}}`
  - Zamanlar gece yarısından itibaren saniye cinsinden.
- `Önizleme/medya/slog3-709.cube`: S-Log3 / S-Gamut3.Cine → Rec.709 LUT, 33³. Bir karede denendi, iyi görünüyor. Oynatıcıda mpv `lut` + `lut-type=native` ile kullanılması düşünüldü; bu ayar henüz doğrulanmadı.
- `Önizleme/medya/senkron.py` + `senkron.json`: ses karşılaştırmalı senkron ölçümü (normalize çapraz korelasyon, 4 kHz, 250–1800 Hz bandı).

## Kurulu olanlar
- PyQt6, mpv 0.41 ve libmpv2 kurulu.
- python-mpv **kurulu değil**. Paket kurmadan önce kullanıcıdan onay alınmalı.

## Medya bilgisi
**Kameralar:** İki Sony FX3. Kamera A: C19xx. Kamera B: C22xx.
- Format: HEVC 4:2:2 10 bit, 4K 50p, S-Log3, full range.
- Kamera sesi: PCM s16be, 2 kanal.
- Çözme: Intel VA-API ile (`/dev/dri/renderD128`) 268 fps. RTX 4090 4:2:2 HEVC çözemiyor. Linux Chrome HEVC oynatamıyor.
- Bir kamera bir kaydın ortasında sehpadan sökülüp elde kullanıldı. Kullanıcı bunun ayrıca işaretlenmesini önemsemiyor.
- `C2222/2223/2224.RSV`: Kamera B'nin yarım kalmış kayıtları (20:20–21:28 arası workshop). Kullanıcı kurtarılmasını istedi. Kurtarılmadılar; `untrunc` kurulu değil.

**Ses:** Rode Wireless PRO.
- 1. verici: 00049–00053. 2. verici: 00057–00063.
- BWF `time_reference / 48000` = gece yarısından itibaren saniye. İki vericinin saati birbirini **2 ms içinde** tutuyor; WAV'lar doğrudan bu değerle yerleştirilebilir.
- 2. vericinin 00057 ve 00058 dosyaları kesintisiz devam ediyor; kayıt 60 dakikada otomatik bölünmüş.
- 1. vericinin kendi kaydı 20:25 civarında durdurulmuş (birisi tuşa basmış). Kullanıcıya göre alıcı bir kameraya jack ile bağlıydı ve iki mikrofonu sol ve sağ kanal olarak gönderiyordu. Eksik kısım o kameranın kanalından alınmalı.

## Senkron ölçüm sonuçları (`senkron.json`)
- **Kamera B tutarlı.** Ölçülen başlangıçlar: C2221 = 71111.99 sn, C2225 = 77394.65 sn, C2229 = 82946.48 sn. Kamera B'nin saati XML CreationDate'e göre yaklaşık +1530 sn kayık; bu sabit fark ölçülemeyen C2220 ve C2226–2228 için de kullanılabilir.
- **Kamera A ölçülemedi.** Korelasyon katsayısı yaklaşık 0.05, sonuçlar rastgele dağılıyor. Sol ve sağ kanal birebir aynı; büyük ihtimalle sadece kameranın kendi mikrofonu. Başka bir yöntem gerekiyor: daha uzun pencere, zarf korelasyonu ya da Kamera B'nin sesiyle karşılaştırma.
- **Kamera B'nin kanalları hiçbir vericiyle birebir eşleşmedi** (r en fazla 0.3). Rode'un hangi kameraya bağlı olduğu henüz belli değil; Kamera A'nın kanallarına ayrıca bakılmalı.
- C2220 (4 sn) ve C2227 (15 sn) test kayıtları.

## Sıradaki adımlar
1. Kamera A'yı senkronla.
2. Hangi kamera kanalında hangi mikrofonun olduğunu bul.
3. `zaman.json` dosyasını üret.
4. `oynatici.py` dosyasını çalıştırıp test et.
5. Kullanıcı isterse RSV'leri kurtar.
