# Remotion z agentem AI: rolka z jednego promptu

Dziesięć klipów, jeden utwór i jeden prompt. Agent zmontował z tego w Remotion pionową rolkę z napisami i cięciami na bicie w 3 min 25 s.

Data publikacji: 21 września 2026

Agentowi nie trzeba tłumaczyć, jak obsługiwać narzędzie. Trzeba mu powiedzieć, na czym
oprzeć robotę i czym sprawdzić, że trafił. Reszta dzieje się bez ciebie.

Wrzuciłem do dwóch folderów dziesięć klipów i jeden utwór. Dałem prompt z bloku pod
tekstem i nie dopowiedziałem już nic.

![Materiał wejściowy: dziesięć pionowych kadrów leśnych — dłonie plotące wieniec, kora dębu, paprocie, postać w wieńcu, kobieta w bieli o zachodzie](/img/posts/remotion-z-agentem-ai/material-wejsciowy.jpg "Całe wejście: dziesięć klipów po 10 sekund, bez opisów, bez kolejności, bez montażu")

![Osiem kadrów z gotowej rolki, każdy z podświetlonym wersem; w trzecim obraz przechodzi z mroku w słońce](/img/posts/remotion-z-agentem-ai/arkusz-stykowy.jpg "Wyjście po 3 minutach i 25 sekundach zegarowych, osiem klatek z gotowej rolki")

Pionowa rolka 1080×1920, 29,5 s, napisy podświetlane słowo po słowie, polskie znaki bez
błędu na wszystkich ośmiu klatkach, które obejrzałem.

Cięcie w trzecim kadrze siedzi na dropie refrenu i obraz przechodzi tam z mroku w słońce.
Drop zmierzyłem skokiem głośności: −22,5 dB na −13,6 dB w ćwierć sekundy.

## Co wrzucasz agentowi: klipy, utwór, prompt

- **Klipy.** Dowolna liczba plików wideo w folderze `klipy/`. U mnie dziesięć, pionowych,
  po 10 sekund, wygenerowanych w AI.
- **Utwór.** Jeden plik dźwiękowy w folderze `muzyka/`.
- **Prompt.** 139 słów, w bloku pod tekstem.

Czego nie wrzucasz: scenariusza, listy ujęć, tekstu piosenki, tempa utworu. Agent wyciąga
to sam z plików, które dostał.

## Czy musisz umieć programować

Nie musisz rozumieć promptu ani umieć programować. Musisz zrobić trzy rzeczy.

Postawić pięć narzędzi z tabeli niżej; React dokłada się sam przy zakładaniu projektu.
Zrobić obok siebie dwa foldery o dokładnie takich nazwach: `klipy/` na wideo i `muzyka/`
na utwór. Otworzyć w tym miejscu agenta i wkleić prompt.

Narzędzia postaw sam. U mnie wszystkie już były, więc nie sprawdziłem, czy agent postawi
je od zera, i tego nie obiecuję.

## Jak agent montuje rolkę w Remotion, krok po kroku

1. **Ogląda materiał.** Wycina po kilka klatek z każdego klipu, skleja w arkusz i opisuje,
   co na nich jest. Bez tego zostają mu nazwy plików.
2. **Mierzy utwór.** Wylicza tempo i rozkłada je na równe odstępy, na których siedzi
   każde uderzenie. Osobno zaznacza te, które uderzają najmocniej.
3. **Wybiera okno na rolkę** wokół dropu. Prompt nie mówi, jak długie ma być to okno —
   to agent rozstrzyga sam.
4. **Bierze czasy słów z Whispera, a słowa od ciebie.** Jeśli masz swój tekst, agent
   wkleja go i używa transkrypcji wyłącznie jako zegara.
5. **Zakłada projekt i zapisuje montaż jako listę.** Każde ujęcie to jeden wiersz: który
   plik, od którego beatu, do którego. Przesunięcie cięcia o takt to zmiana jednej liczby
   w tym wierszu.
6. **Renderuje osiem klatek i patrzy na nie.** To jest ten arkusz wyżej.
7. **Sprawdza kod przed pełnym renderem.** Zły typ albo literówka w nazwie pola wychodzi
   wtedy od razu, a nie po 92 s renderu. Dopiero potem idzie render całości
   i przepakowanie pliku pod platformę.
8. **Mierzy własny wynik.** Wyciąga dźwięk z gotowego MP4 i sprawdza korelacją, czy
   cięcie leży tam, gdzie miało leżeć.

Krok 6 odróżnia to od generatora wideo: agent renderuje kadr i ogląda go, zanim pójdzie
dalej. Krok 8 kończy się liczbą, czyli rozjazdem obrazu z dźwiękiem podanym w klatkach.

Dwa zastrzeżenia. Te same klipy montowałem wcześniej, więc w tym przebiegu nie oglądałem
ich od nowa. Agent, który widzi je pierwszy raz, dołoży krok 1 i zegar będzie dłuższy.

I jedna poprawka po zegarze: w trzech miejscach wstawiłem myślnik zamiast półpauzy
z tekstu autora. Wyłapałem to przy weryfikacji i wyrenderowałem rolkę jeszcze raz.

## Ile to trwa

| Operacja | Wynik |
|---|---|
| całość, od wrzucenia plików do MP4 | 3 min 25 s |
| sam render 885 klatek w 1080×1920 | 90,09 s |
| jedna klatka przez `remotion still`, z narzutem startu | 2,8 s |
| plik z renderu przy `--crf=18` | 28,8 MB |
| ten sam materiał po transkodzie | 17,2 MB |

## Ile z tego promptu naprawdę trzeba

Pierwszą rolkę do tego utworu zrobiłem z promptu na 35 słów. Napisałem w nim tylko, gdzie
leżą pliki, że ma być Remotion i TikTok, że bazą ma być refren i że mają być napisy.
Wyszła i działa.

Potem napisałem prompt na pięćset słów, rozpisany na dziesięć punktów, z FFT i oknem
Hanninga. Rolka wyszła, ale gdy policzyłem, ile z tych punktów było potrzebnych, wyszło
**sześć zbędnych na dziesięć**.

Remotion wydaje dla agenta własny zestaw `skills`: dwanaście plików z zasadami pisania
kompozycji, renderu i napisów. Transkrypcja Whisperem, `remotion still`, zakładanie
projektu i pisanie kompozycji już tam są, opisane dokładniej, niż zrobiłem to w prompcie.

Zostały trzy rzeczy, których w skillach nie ma, i z nich powstał prompt pod tekstem.

## Czego potrzebujesz: Node, Remotion, ffmpeg, Python, Whisper

Wersje wypisuję po to, żeby dało się odtworzyć ten przebieg za pół roku. Sam musisz mieć
te narzędzia, nie te konkretne numery.

| Składnik | Wersja, na której to działało |
|---|---|
| Node | 24.13.0 |
| Remotion | 4.0.526 |
| React | 19.2.3 |
| ffmpeg | 7.1.5 |
| Python 3 z numpy | do pomiaru dźwięku |
| faster-whisper | large-v3, int8, na procesorze |

Skille wchodzą przez wtyczkę Remotion do Claude Code, a
[dokumentacja](https://www.remotion.dev/docs/ai/skills) podaje też instalację komendą
`npx skills add remotion-dev/skills`. Nie sprawdziłem, jak agent radzi sobie bez nich —
miałem je włączone od pierwszej komendy.

Instalator wypisuje wprost „Remotion is free for teams of up to 3”. Przy większym zespole
licencja jest płatna, a jej warunki stoją
w [licencji producenta](https://www.remotion.pro/license).

Librosa nie jest potrzebna. Nie miałem jej zainstalowanej i cały pomiar poszedł na numpy.

Materiału nie nagrywałem kamerą. Klipy wyszły z generatora wideo, utwór z generatora
muzyki. Ile [taka muzyka zarabia](/trends/ile-zarabia-muzyka-z-ai/) i gdzie
[wolno ją wydać](/trends/gdzie-wydac-muzyke-z-ai/), liczyłem osobno.

## Wniosek

Sześć rolek, prompty od 35 do 500 słów, wszystkie działają. O wyniku nie zdecydowała żadna
z tych długości, tylko dwa zdania: na czym oprzeć montaż i czym sprawdzić, że trafił.

Nie pisz agentowi instrukcji obsługi narzędzia, bo ją już ma. Każ mu zmierzyć własny wynik
i podać rozjazd w klatkach. Bez tej liczby masz plik, o którym nikt nic nie wie.

## Co poszło nie tak po drodze

Pięć rzeczy, każda kosztowała mnie jeden przebieg. Zostawiam je tu, bo trafisz na nie
w tej samej kolejności.

### Kotwica bez wzmianki o śpiewie trafia w instrumentalkę

W prompcie pod tekstem stoi zdanie o tym, że rolka ma się opierać na fragmencie ze
śpiewem. Uruchomiłem wcześniej wersję bez niego i wyszło to:

![Osiem kadrów z innego przebiegu; sześć pierwszych bez żadnego napisu](/img/posts/remotion-z-agentem-ai/bez-spiewu.jpg "Ten sam materiał, prompt bez zdania o śpiewie")

Agent postawił kotwicę na najgłośniejszym uderzeniu w całym utworze i wybrał okno
28–58 s. Whisper znalazł tam pierwsze słowo dopiero na 47,70 sekundzie.

Przez pierwsze 19,7 sekundy nikt nie śpiewa, więc sześć z ośmiu kadrów jest bez napisów.
Jedno zdanie w prompcie to naprawia.

### Tempo z autokorelacji nie zawsze trafia w akcenty

Sprawdziłem na trzech oknach tego samego utworu i wyszło różnie.

| Okno | Autokorelacja | Po dostrojeniu do akcentów |
|---|---|---|
| 78–108 s | 103,50 BPM, 3,03 klatki od siatki | 102,93 BPM, 1,09 klatki |
| 28–58 s | 103,70 BPM, 0,48 klatki od siatki | 103,65 BPM, 0,31 klatki |
| 133–163 s, ta rolka | 103,30 BPM, 0,32 klatki od siatki | 103,45 BPM, 0,01 klatki |

W pierwszym oknie dostrojenie zdjęło 2 klatki błędu. W dwóch pozostałych autokorelacja
trafiła od razu i dostrojenie schodziło z ułamka klatki na mniejszy ułamek. Nie wiem
z góry, które okno jest które — dlatego ten krok zostaje w prompcie na stałe.

### Whisper na śpiewie po polsku zmyśla

Na fragmencie, z którego zrobiona jest ta rolka, nie przekręcił słów. Zamiast nich
wypisał zdanie, którego w utworze nie ma: „Wielkie dzięki i do zobaczenia!”. Trzydzieści
sekund refrenu, zero prawdziwego tekstu.

W innych oknach tego samego utworu mylił pojedyncze słowa: „suchy czas” zamiast „suchy
trzask”, „Wędzno” zamiast „Tętno”, „Marżanna” zamiast „Marzanna”. Jedno słowo zostało
nierozpoznane do końca.

Dlatego prompt mówi wprost, że słowa mają być twoje. Whisper jest tu zegarem, nie źródłem
tekstu.

Czas też bywa nie ten. W jednym oknie postawił refren na 85,640 s, a najmocniejsze
uderzenie siedzi na 85,695 s — 55 ms, czyli 1,65 klatki. Kotwicę stawiaj na akcencie
z pomiaru, nie na słowie z transkrypcji.

### Render przesuwa dźwięk o 42,7 ms

Plik `audio.wav`, który dostał Remotion, zgadza się z oryginałem co do próbki. Ten sam
dźwięk wyjęty z gotowego MP4 jest przesunięty o 42,7 ms, czyli 1,28 klatki.

| Etap | Przesunięcie |
|---|---|
| WAV przed Remotion | 0 ms |
| po `remotion render` | −42,7 ms |
| po transkodzie ffmpegiem | −42,7 ms |

Transkod nic nie dokłada, to dzieje się przy renderze. Zmierzyłem to samo w sześciu
niezależnych rolkach. Przyczyny nie ustaliłem i jej nie zmyślam — liczba jest stała, więc
da się ją odjąć przy kotwiczeniu cięcia.

### Napisy mają dwie własne pułapki

Pierwsza: linijki nachodzą na siebie. Linia wchodzi trzy klatki przed swoim pierwszym
słowem, a poprzednia schodzi jedną klatkę przed nim, więc przez dwie klatki obie są na
ekranie naraz. Zobaczyłem to na arkuszu, zanim cokolwiek wyrenderowałem.

Poprawka to jedna liczba: poprzednia linia musi zejść o tyle klatek wcześniej, ile wynosi
wyprzedzenie następnej.

Druga: napis zjada własną spację. W innej rolce ostatnia linijka czytała się
„PŁONIEWRZOS,” zamiast „PŁONIE WRZOS,”.

![Trzy warianty tej samej linijki napisu, na środkowym brakuje spacji między słowami](/img/posts/remotion-z-agentem-ai/napis-zjada-spacje.jpg "29,20 s, 29,50 s i 30,10 s z jednego renderu — spacja znika tylko na środkowej")

Przyczyna jest w CSS. Aktywne słowo dostaje na moment podświetlenia `scale(1.16)`,
a `scale` nie zmienia układu. Powiększona litera wchodzi więc w odstęp, którego nikt nie
odsunął.

Odstęp wynosił `0.3em` przy stopniu 92 px, czyli 27,6 px. Przyrostu samego słowa nie
zmierzyłem. Podniosłem odstęp do `0.5em`, wyrenderowałem tę samą klatkę jeszcze raz
i spacja wróciła.

Tej usterki arkusz stykowy nie złapał, bo akurat tej klatki w arkuszu nie było. Pętla
oglądania działa tylko na klatkach, które ktoś wybrał.

## Gotowy prompt

W `klipy/` są pliki wideo, w `muzyka/` jeden utwór. Zrób z tego pionową rolkę 1080×1920 na TikToka w Remotion, z napisami z tekstu utworu. Rolkę oprzyj na fragmencie, w którym ktoś śpiewa, a nie na samej instrumentalce.

Trzy rzeczy zrób inaczej, niż zrobiłbyś domyślnie:

1. Tempa nie zgaduj. Zmierz je z pliku i postaw cięcia na beatach. Kotwicę ustaw tam, gdzie utwór wchodzi najmocniej — szukaj skoku głośności, nie pojedynczego transjentu, i nie stawiaj jej na słowie z transkrypcji.

2. Zanim wyrenderujesz całość, wyrenderuj osiem pojedynczych klatek, sklej je w jeden obraz i obejrzyj go.

3. Na koniec sprawdź pomiarem, czy trafiłeś: wyciągnij dźwięk z gotowego MP4, porównaj z oryginałem i podaj rozjazd obrazu z dźwiękiem w klatkach.

Napisy mają poprawnie pokazywać polskie znaki. Jeśli masz tekst utworu od autora, użyj jego słów, a z transkrypcji weź tylko czasy.

## Pytania i odpowiedzi

### Co trzeba przygotować, żeby agent zmontował rolkę?

Trzy rzeczy: folder `klipy/` z plikami wideo, folder `muzyka/` z jednym utworem i prompt. Scenariusza, listy ujęć, tekstu piosenki ani tempa utworu nie podajesz — agent wyciąga je z plików, które dostał.

### Ile trwa montaż rolki przez agenta AI?

U mnie 3 minuty i 25 sekund zegarowych, od wrzucenia plików do gotowego MP4. Sam render 885 klatek w 1080×1920 zajął 90,09 s. Reszty czasu nie rozbijałem na etapy.

### Czy Remotion jest darmowy?

Instalator wypisuje „Remotion is free for teams of up to 3”. Przy większym zespole licencja jest płatna, a jej warunki stoją na stronie producenta.
