29T. Interfață pentru programele de editare video
By adminDeși până nu demult nu am fost interesat de latura „video”, acum vreo 4-5 luni m-am hotărât să abordez mai serios problema filmării.
Având un Canon R6 care se descurcă bine și pe partea de filmare, primul pas a fost să-mi cumpăr un gimbal și un monitor extern. După puțină documentare am ales să cumpăr un gimbal DJI Ronin S3 Mini , un Monitor Godox GM6S și un microfon extern R0DE… Întrucât pe filmare 4K aparatul consuma destul de repede acumulatorul, am rezolvat problema cu o baterie falsă. Un alt avantaj al acestui tip de acumulator este că se elimină problema căldurii generate de un acumulator obișnuit, care contribuie la încălzirea aparatului foto și în final, nu de multe ori duce la blocarea filmării 4K. Pe FHD nu se întâmplă treaba asta !
După aceea, am cumpărat de pe Temu un braț suplimentar pentru acel tip de gimbal care mi-a permis să pun acel monnitor. Un neajuns care la un moment dat poate deveni supărător este faptul că, cel puțin la Canon (în afară de ultimul apărut Canon R5C care costă o groază de bani !), pe lângă problema supraîncălzirii, filmarea se întrerupe dup 30 min. Am înțeles că este o problemă de fiscalitate, pentru a nu fi considerate camere video și nu o problemă de hardware. Citind mai mult, am ajuns la concluzia că pentru a trece peste aceste două neajunsuri singura rezolvare este înregistrarea externă… Așa că am cumpărat un Monitor Atomos Ninja V cu un SSD Samsung de 2TB… Alți bani altă distracție !!!
Într-adevăr este cu totul altă treabă și nu mai sunt acele probleme. Întrucât Monitorul Atomo Ninja V vine și cu o baterie falsă, am zis că este păcat să nu profit de treaba asta ! De aceea, pe acel braț suplimentar am adaptat partea de încărcare a acumulatorilor NP-F970 și am achiziționat și 2 acumulatori de tipul NP-F970/7800 mA. Și așa am rezolvat și partea de alimentare, fiindcă un acumulator poate alimenta monitorul și aparatul, pe filmare 4K, timp de 2 ore continuu ! Problema stocării nu se mai pune în discuție fiindcă pe 2TB se poate înregistra foarte mult cca 50 ore de 4K/60 fps. Bineînțeles că nu va apuca să se umple vreodată !
Bineînțeles că au apărut acum probleme în ceea ce privește întâlnirea noilor noțiuni pentru mine, gen timecode, culori false, LUT etc sau unele noțiuni de compoziție de care nu auzisem, gen Regula de 180 de grade, de 30 de grade, dar și termeni specifici din zona editării ! Așa că am trecut serios și pe „perfecționare continuă” !
Fiindcă toate acestea au reușit să aprindă microbul, am zis să am ceva și de toată ziua și am cumpărat un DJI OSMO Pocket 3, o bijuterie de cameră video cu tehnologie de ultimă generație (la data scrierii articolului), o cameră care s-a descurcat incredibil de bine pe întuneric aproape total (o biserică luminată doar de câteva lumânări). Poate filma până la 4k/60 fps sau Slow Motion 4k/120fps ori FHD/240fps…. Celelalte opțiuni pe care le are o fac un concurent indiscutabil pentru multe camere semiprofesioonale. Nu mai vorbim de mărimea acesteia care o fac să încapă într-un buzunar !
Fiindcă mai trebuia învățată și partea de editare, la început am zis să încep cu CapCut la care am luat și acel abonament lunar de 50 lei pentru a debloca toate opțiunile. Este un program excelent și foarte bun pentru cei care doresc să folosească multe efecte fără a cunoaște mare lucru despre editare și pe care îl recomand celor care nu își pun prea mari întrebări în legătură cu editarea video. Am reușit să învăț și să experimentez cam tot ce face și după vreo 2-3 luni de zile am zis că e momentul să trec la ceva mai profesional.
Aveam două posibilități mai serioase pentru Windows: Adobe Premiere sau DaVinci Resolve… Având în vedere că DaVinci are și varianta Free, am început să-l învăț și să mă acomodez puțin cu el, în paralel, la început, folosind și CapCut. Trecerea de la CapCut a fost foarte ușoară și asta s-a datorat atât cunoștințelor de Photoshop, în ceea ce privește Managementul de culoare și lucrul cu Layere, dar și mica experiență pe care am acumulat-o cu CapCut. Bineînțeles că acum folosesc DaVinci Resolve Studio care din punctul meu de vedere acoperă tot ceea ce înseamnă editare video.
Obișnuindu-mă puțin cu editarea, fiind totuși începător (!), pentru optimizarea fluxului de lucru am ajuns la concluzia că o tastatură dedicată este o soluție bună pentru scurtarea timpilor morți. Nu că nu aș avea timp sau prea mult de editat !!!
Mă bătea gândul la o tastatură dedicată DaVinci, care se găsesc în magazinele de specialitate de la noi, numai că urmărind multe clipuri pe youtube despre aceasta am văzut că este oarecum limitată în ceea ce privește scurtăturile. Departe de mine gândul că aceasta nu ar fi bună sau utilă ! Așa că variantele de tastaturi profesionale au ieșit din calcul !
Am zis că aș putea să fac așa ceva și asta datorită „plăcerii făcutului” dar și al utilității, fiindcă nu aș mai fi legat de niște scurtături alese de altcineva și care, mai rău, nu pot fi schimbate.
Am plecat de la ideea că o placă de dezvoltare tip Arduino, un encoder, niște întrerupătoare cu revenire cu contact normal-deschis și bineînțeles cu o programare adecvată aș rezolva situația…
Și în final s-a rezolvat !
Pentru proiect, am cumpărat o placa Arduino Leonardo R3 cu ATmega32u4, deoarece aceasta are suport nativ pentru USB HID, cu alte cuvinte, aceasta poate emula o tastatură sau un mouse fără alte adaptări. Am ales să folosesc 9 scurtături, deci 9 întrerupătoare și contactul prin apăsarea encoderului să-l folosesc pe post de ENTER. Avantajul major este că pot schimba scurtăturile oricând și foarte ușor doar prin schimbarea unor linii din program. Pentru asamblarea componentelor între ele nu îți trebuie mare experiență ! La fel, interfața nu are nevoie de vreo baterie fiindcă se alimentează din portul USB al desktopului/laptopului pe care este instalat DaVinci. Și tot așa, se poate folosi fără probleme tastatura fizică în timpul cât această interfață este cuplată la calculator.
Conectarea fiind foarte simplă nu are sens să fac vreo schemă… Intrerupătoarele având 2 pini, unul este legat la GND de la placa Arduino și celalalt la pinul digital folosit; la fel și cei doi pini-întrerupător ai encoderului. Ceilalți 3 pini ai encoderului se cuplează astfel: cel din mijloc la GND al plăcii Arduino și ceilalți doi la pinul 2 și 3 digitali de la Arduino. Ca o particularitate, având în vedere că această interfață lucrează în paralel cu tastatura fizică pentru a nu apărea anomalii, s-au montat „rezistențe de pull-up”, care au valoarea de 10 kOhmi. Acestea se montează între +5V și fiecare buton, întrerupătorul de pe encoder, inclusiv pe cei doi pini laterali ai encoderului. Doar în acest fel totul va lucra corect. Nu are sens să explic în amănunt de ce se montează acele rezistențe, doar amintesc faptul că Arduino trebuie să cunoască starea LOW a pinului, atunci când asta este dat la GND și starea HIGH, atunci când pinul nu este dat la GND. Dacă nu s-ar face acest lucru el nu va ști ce se întâmplă cu pin-ul digital când nu este dat la masă și apare o „bâlbâială” care va influența buna funcționare !
Nu în ultimul rând, acest montaj poate fi folosit cu succes pentru orice program de editare video, numai că vor trebui adaptate scurtăturile la programul respectiv. Așa cum am arătat mai sus, eu am scris liniile de cod pentru programul DaVinci Resolve.
Tot asa de bine se poate folosi pentru CapCut, Adobe Premiere, Video Pad sau orice alt program de editare video !
Postez și codul, cu explicațiile de rigoare pentru o înțelegere mai bună, pentru cine dorește să abordeze proiectul și poate fi folosit doar în scop personal și nu comercial.
// Interfață pentru programul DaVinci Resolve – © Chiru Ioan Alexandru – fotomagica.ro
#include <Keyboard.h>
// Definirea pinilor pentru encoderul rotativ
const int pinCLK = 2;
const int pinDT = 3;
// Variabile pentru encoder
int lastCLKState;
int currentCLKState;
// Definirea pinilor pentru butoane
const int button1Pin = 4; // Buton pentru scurtătura 1
const int button2Pin = 5; // Buton pentru scurtătura 2
const int button3Pin = 6; // Buton pentru scurtătura 3
const int button4Pin = 7; // Buton pentru scurtătura 4
const int button5Pin = 8; // Buton pentru scurtătura 5
const int button6Pin = 9; // Buton pentru scurtătura 6
const int button7Pin = 10; // Buton pentru scurtătura 7
const int button8Pin = 11; // Buton pentru scurtătura 8
const int button9Pin = 12; // Buton pentru scurtătura 9
const int button10Pin = 13; // Buton pentru scurtătura 10
// Variabile pentru debounce
unsigned long lastDebounceTime = 0;
unsigned long debounceDelay = 50; // 50ms pentru debounce
void setup() {
// Configurare pini encoder
pinMode(pinCLK, INPUT);
pinMode(pinDT, INPUT);
lastCLKState = digitalRead(pinCLK);
// Configurare pini butoane ca intrări cu rezistență de pull-up
pinMode(button1Pin, INPUT_PULLUP);
pinMode(button2Pin, INPUT_PULLUP);
pinMode(button3Pin, INPUT_PULLUP);
pinMode(button4Pin, INPUT_PULLUP);
pinMode(button5Pin, INPUT_PULLUP);
pinMode(button6Pin, INPUT_PULLUP);
pinMode(button7Pin, INPUT_PULLUP);
pinMode(button8Pin, INPUT_PULLUP);
pinMode(button9Pin, INPUT_PULLUP);
pinMode(button10Pin, INPUT_PULLUP);
// Pornire emulare tastatură
Keyboard.begin();
}
void loop() {
// Verificare rotire encoder
currentCLKState = digitalRead(pinCLK);
if (currentCLKState != lastCLKState) {
if (digitalRead(pinDT) != currentCLKState) {
// Rotire în sensul acelor de ceasornic (săgeată dreapta)
Keyboard.press(KEY_RIGHT_ARROW);
delay(0);
Keyboard.release(KEY_RIGHT_ARROW);
} else {
// Rotire în sens invers acelor de ceasornic (săgeată stânga)
Keyboard.press(KEY_LEFT_ARROW);
delay(0);
Keyboard.release(KEY_LEFT_ARROW);
}
}
lastCLKState = currentCLKState;
// Verificare și debounce pentru butoane
unsigned long currentTime = millis();
// Verifică starea butoanelor și debouncing
if ((currentTime – lastDebounceTime) > debounceDelay) {
// Verifică fiecare buton
if (digitalRead(button1Pin) == LOW) {
// Tasta 1 – Split = SHIFT + TAB
Keyboard.press(KEY_LEFT_SHIFT); // Apasă SHIFT
Keyboard.press(KEY_TAB); // Apasă tasta ‘TAB
delay(100); // Așteaptă 100 ms
Keyboard.release(KEY_LEFT_SHIFT); // Eliberează SHIFT
Keyboard.release(KEY_TAB); // Eliberează TAB
lastDebounceTime = currentTime;
}
if (digitalRead(button2Pin) == LOW) {
// Tasta 2 – Undo = CTRL + Z
Keyboard.press(KEY_LEFT_CTRL); // Apasă CTRL
Keyboard.press(‘z’); // Apasă tasta Z
delay(100);
Keyboard.release(‘z’); // Eliberează tasta Z
Keyboard.release(KEY_LEFT_CTRL); // Eliberează tasta CTRL
lastDebounceTime = currentTime;
}
if (digitalRead(button3Pin) == LOW) {
// Tasta 3 – Import Media = CTRL + I
Keyboard.press(KEY_LEFT_CTRL); // Apasă CTRL
Keyboard.press(‘i’); // Apasă tasta I
delay(100);
Keyboard.release(‘i’); // Eliberează tasta I
Keyboard.release(KEY_LEFT_CTRL); // Eliberează tasta CTRL
lastDebounceTime = currentTime;
}
if (digitalRead(button4Pin) == LOW) {
// Tasta 4 – Fusion = SHIFT + SPACE
Keyboard.press(KEY_LEFT_SHIFT); // Apasă SHIFT
Keyboard.press(‘ ‘); // Apasă tasta SPACE
delay(100);
Keyboard.release(‘ ‘); // Eliberează tasta SPACE
Keyboard.release(KEY_LEFT_SHIFT); // Eliberează SHIFT
lastDebounceTime = currentTime;
}
if (digitalRead(button5Pin) == LOW) {
// Tasta 5 – Redo = CTRL + SHIFT + Z
Keyboard.press(KEY_LEFT_CTRL); // Apasă CTRL
Keyboard.press(KEY_LEFT_SHIFT); // Apasă SHIFT
Keyboard.press(‘z’); // Apasă tasta Z
delay(100);
Keyboard.release(‘z’); // Eliberează tasta Z
Keyboard.release(KEY_LEFT_SHIFT); // Eliberează SHIFT
Keyboard.release(KEY_LEFT_CTRL); // Eliberează CTRL
lastDebounceTime = currentTime;
}
if (digitalRead(button6Pin) == LOW) {
// Tasta 6 – Uneste Split = CTRL + TAB
Keyboard.press(KEY_LEFT_CTRL); // Apasă CTRL
Keyboard.press(KEY_TAB); // Apasă tasta ‘TAB
delay(100);
Keyboard.release(KEY_LEFT_CTRL); // Eliberează CTRL
Keyboard.release(KEY_TAB); // Eliberează TAB
lastDebounceTime = currentTime;
}
if (digitalRead(button7Pin) == LOW) {
// Tasta 7 – Delete = DELETE
Keyboard.press(KEY_DELETE); // Apasă tasta DELETE
delay(100);
Keyboard.release(KEY_DELETE); // Eliberează tasta DELETE
lastDebounceTime = currentTime;
}
if (digitalRead(button8Pin) == LOW) {
// Tasta 8 – Select All = CTRL + A
Keyboard.press(KEY_LEFT_CTRL); // Apasă CTRL
Keyboard.press(‘a’); // Apasă tasta A
delay(100);
Keyboard.release(‘a’); // Eliberează tasta A
Keyboard.release(KEY_LEFT_CTRL); // Eliberează tasta CTRL
lastDebounceTime = currentTime;
}
if (digitalRead(button9Pin) == LOW) {
// Tasta 9 – Split Selectii unite – CTRL + SHIFT + TAB
Keyboard.press(KEY_LEFT_CTRL); // Apasă CTRL
Keyboard.press(KEY_LEFT_SHIFT); // Apasă SHIFT
Keyboard.press(KEY_TAB); // Apasă tasta TAB
delay(100);
Keyboard.release(KEY_TAB); // Eliberează tasta TAB
Keyboard.release(KEY_LEFT_SHIFT); // Eliberează SHIFT
Keyboard.release(KEY_LEFT_CTRL); // Eliberează CTRL
lastDebounceTime = currentTime;
}
if (digitalRead(button10Pin) == LOW) {
// Tasta 10 – Apasare Encoder – Enter = RETURN
Keyboard.press(KEY_RETURN); // Apasă tasta ENTER
delay(100);
Keyboard.release(KEY_RETURN); // Eliberează tasta ENTER
lastDebounceTime = currentTime;
}
}
}
Codul poate fi descărcat în format .txt de AICI !
Bineînțeles că fiecare poate folosi orice scurtătură dorește ! Probabil în timp unele le voi schimba în funcție de necesități, așa că nimic nu este bătut în cuie !
În final, totul poate fi introdus într-o cutie. Eu am ales să-mi proiectez o carcasă formată din două părți și să o printez 3D, dar fiecare poate adopta orice variantă ! Dacă cineva dorește fișierele .stl pentru carcasă îmi poate da un e-mail și le trimit…
Cei care folosiți programul de editare DaVinci și doriți o modalitate de optimizare a fluxului de lucru, puteți să vă construiți această interfață, având absolut toate datele constructive !

Mult succes !
=============================================
Publicitate !
De vânzare Monitor Godox GM6S
Preț – 1.200 lei
Este cumpărat de la F64 și mai are garanție până la 27.07.2026 !
Diagonala ecranului (tactil) este de 5,5 inch, foarte luminos – 1.200 nit.
Suportă semnal video UHD 4K, se pot încărca până la 25 de fișiere 3D LUT.
Ca facilități: culori false, zebra, răsturnarea imaginii, grid, asistență focalizare etc.
Are ieșire audio 3,5mm pentru căști, HDMI IN, HDMI OUT, ieșire Remote.
Se poate alimenta fie extern, fie din acumulator. Acumulatorul poate fi oricare din seria Sony NP-F550, NP-F750, NP-F970, NP-F990 sau înlocuitori, de exemplu din seria Patona. Extern se poate folosi DC (între 7-24V) prin mufa tip jack sau prin USB-C.
Atenție, monitorul nu se vinde cu acumulator !
Pachetul include cutia originală, bonul fiscal și accesoriile originale: cablurile HDMI-HDMI, HDMI-mini HDMI și HDMI-micro HDMI, adaptorul cu care se montează pe șina blitzului cu imbusul pentru reglarea/strângerea acestuia și parasolarul cu suportul lui care se atașează pe monitor.
Se mai dă în plus și un cablu original pentru controlul aparatelor Canon (ISO, focalizare, diafragmă, timp de expunere), care a fost achiziționat separat.
Totul funcționează impecabil. Se vinde deoarece am achiziționat un Atomos Ninja V și decât să stea degeaba mai bine se folosește cineva de el…
Verificare și predarea se face doar la Giurgiu și nu se trimite prin curier.
Pentru întrebări suplimentare puteți folosi adresa de e-mail de la pagina de CONTACT.
Postati un comentariu