СВЕТ НЕ СТОЈИ У МЕСТУ.RSS
BIG CHANGE.
BIG CHANGE, на један додир
BIG CHANGE, на један додир

Оставите простор за ширу слику.

Додајте BIG CHANGE на почетни екран или радну површину. Отвара се у сопственом прозору, са најновијим причама када сте на мрежи.

iPhone & iPad
Отворите bigchange.ai у прегледачу Safari. Додирните Share, затим Add to Home Screen. Укључите Open as Web App ако се прикаже, а затим додирните Add.
Android
Отворите bigchange.ai у прегледачу Chrome. У менију прегледача изаберите „Инсталирај апликацију“ или „Додај на почетни екран“.
Рачунар
У прегледачу Chrome или Edge користите икону за инсталацију у адресној траци или мени апликација прегледача. У прегледачу Safari на Mac рачунару изаберите File → Add to Dock.

Markdown издање

AI-translated from English; not yet reviewed by a fluent editor.

# Претворите један дуги видео за који имате права у пет проверених вертикалних клипова

> Поступак заснован на документацији за пет клипова проверених према изворном снимку, са исправљеним титловима, вертикалним кадром и људском провером.

By BIG CHANGE Editorial

Published: 2026-10-21T09:43:38.285Z
Updated: 2026-10-21T09:43:38.285Z
Canonical: https://bigchange.ai/blog/five-checked-video-shorts-claude-code-whisper-ffmpeg

![Conceptual charcoal illustration of five upright unbranded phones in a wall shelf, each showing a generic vertical image with a blank orange caption bar.](https://bigchange.ai/api/media/file/owned-video-five-shorts-hero-v1.png)
AI-generated conceptual illustration by BIG CHANGE.

Из једног снимка можете издвојити више кратких клипова, али транскрипт не може да одреди да ли исечак поштено представља садржај, нити извоз у 1080 × 1920 доказује да је видео пријатан за гледање. Овај водич користи пет ручно покретаних пројектних вештина у Claude Code: транскрипцију, рангирање, сечење, титловање и рендеровање. Људски уредник одобрава сваки интервал изворног снимка и гледа сваки завршени фајл. Поступак је намењен видеу који поседујете или имате изричито право да уређујете и делите.

Ово је поступак заснован на документацији за macOS Terminal са zsh. BIG CHANGE није покренуо ове команде, прегледао приватне снимке нити направио пет фајлова. Пре примене проверите помоћ инсталираних алата и свој медијски материјал. Насловна илустрација концептуално приказује пет вертикалних видеа које би аутор прегледао. То нису стварни клипови, излаз софтвера нити BIG CHANGE тест документованог поступка.

## Велика промена

- **Шта се променило:** Пројектне вештине у Claude Code могу да поделе локалну монтажу видеа на пет ручно покретаних фаза. Предложени записи о предаји повезују изворне временске ознаке, одобрене резове, исправљене титлове и завршне фајлове; документација алата не потврђује да је баш овај ланац успешно извршен.
- **Зашто је важно:** Аутор који има дозволу за коришћење изворног снимка може људском уреднику да препусти конкретну одлуку у свакој фази, укључујући питање да ли уопште постоји пет различитих одговарајућих исечака. Таква структура омогућава одбацивање слабог или обмањујућег реза пре извоза са титловима.
- **На шта пазити:** Одлука о дељењу резултата и даље зависи од права, политике података изабраног Claude налога и потпуног гледања сваког сачуваног MP4 фајла. Успешна техничка провера фајла не решава та питања.

## Пре почетка

Потребан вам је локални `source.mp4` са употребљивим звуком, довољно простора, приступом Claude Code и исправним локалним whisper.cpp `whisper-cli` и моделом који подржава језик, као и FFmpeg и ffprobe са потребним енкодерима и филтерима. Потребан је и уредник који може да провери снимак и свих пет извезених видеа. Забележите Claude Code налог и политику података, инсталиране верзије, whisper.cpp commit или издање, SHA-256 модела и лиценцу, као и ограничења коришћења. Claude Code може користити удаљени модел чак и када се транскрипција и рендеровање обављају локално. Омогућите му само приступ транскрипту или медијима који дозвољавају ваша права и политика налога. Његова [упутства за вештине](https://code.claude.com/docs/en/skills) не ограничавају приступ. Посебне [контроле дозвола за алате](https://code.claude.com/docs/en/permissions) управљају позивима алата; у зависности од подешавања, рутинске радње само за читање могу се извршити без упита. Свесно проверите шта вештина може да чита, као и шта предлаже да упише или изврши.

Ставите непроменљиву копију извора и `rights.json` у нову поуздану локалну фасциклу за овај рад. Евиденција права треба да садржи SHA-256 извора, уредника, дозвољене исечке и даљу употребу, дозволе за говорнике, музику и визуелни садржај, као и правила чувања и задржавања. Не настављајте ако су права нејасна. Отворите Terminal у тој фасцикли, проверите `pwd`, па направите радне фасцикле:

```shell
mkdir -p transcript clips captions shorts probes .claude/skills/video-transcribe .claude/skills/video-rank .claude/skills/video-cut .claude/skills/video-caption .claude/skills/video-vertical
command -v claude
command -v ffmpeg
command -v ffprobe
claude --version
ffmpeg -version
ffprobe -version
ffmpeg -hide_banner -h encoder=libx264
ffmpeg -hide_banner -h encoder=aac
ffmpeg -hide_banner -h filter=subtitles
ffmpeg -hide_banner -h filter=scale
```

Поставите `WHISPER_CLI` и `WHISPER_MODEL` на стварне апсолутне путање у наводницима. Поставите `LANGUAGE` на проверену ознаку говорног језика, на пример `en` само када је звук на енглеском. Проверите да модел подржава тај језик; модел `.en` намењен само енглеском не покрива други језик. Мешовити или неподржани језици захтевају проверен план пре наставка. [whisper.cpp CLI приручник](https://github.com/ggml-org/whisper.cpp/blob/master/examples/cli/README.md) документује `-l`, `-m`, `-f`, `-osrt`, `-oj` и `-of`; проверите их према помоћи свог издања. Не укључујте опцију превођења.

```shell
WHISPER_CLI='/absolute/path/to/whisper-cli'
WHISPER_MODEL='/absolute/path/to/approved-model.bin'
LANGUAGE='en'
test -x "$WHISPER_CLI"
test -r "$WHISPER_MODEL"
"$WHISPER_CLI" --help
ffprobe -v error -show_entries format=duration:stream=index,codec_type,codec_name,width,height,sample_aspect_ratio -of json source.mp4
```

Замените пример путања и језик пре било каквог покретања. Проверите трајање извора, токове, оријентацију, звук и слободан простор. Потврдите да инсталирани филтер `subtitles` подржава libass и да `scale` прихвата `force_original_aspect_ratio`, `force_divisible_by` и `reset_sar`. Ако потребна могућност недостаје, следите упутства одржавалаца за изградњу и поновите провере. Немојте прећутно изоставити титлове.

## Направите пет пројектних вештина са јасним границама

У поузданом пројекту сачувајте пет одвојених `.claude/skills/<name>/SKILL.md` фајлова. Сваком су потребни сопствени `name`, `description`, `disable-model-invocation: true`, као и потпун улаз, радња, излаз и правило заустављања. Покрећите их ручно овим редоследом: `/video-transcribe`, `/video-rank`, `/video-cut`, `/video-caption`, `/video-vertical`. Немојте додавати `allowed-tools`: према Claude Code документацији, то поље даје дозволу за коришћење наведених алата без упита током покретања; оно не ограничава вештину. Задржите нормална подешавања дозвола и свесно проверите приступ. Позив алата само за читање можда неће тражити потврду, док упис и извршавање прате стварне контроле налога.

Користите следеће потпуне садржаје уз заједничку евиденцију описану испод. Текст у вештини је упутство за Claude Code, а не технички спроведена граница.

**`.claude/skills/video-transcribe/SKILL.md`**

```markdown
---
name: video-transcribe
description: Transcribe the authorized local source for the five-short workflow.
disable-model-invocation: true
---

Input: rights.json, immutable source.mp4, checked source probe, verified language and local whisper.cpp executable/model. Confirm matching source and model hashes, usable audio and permitted access before any command.
Action: From the checked run directory, confirm source.wav and both transcript output paths do not exist. Extract mono 16 kHz 16-bit PCM source.wav with explicit first-audio mapping and no overwrite. Continue to whisper-cli only after a zero exit and valid WAV readback; use the verified model and explicit language, SRT and JSON output, and translation off. Inspect both outputs, parse source-relative times, and compare representative passages and uncertain names or quotes against source audio. Record a nonzero exit or uncertain output as a manifest blocker before any next stage.
Output: transcript/source.srt and transcript/source.json, recorded hashes, corrections or marked uncertainties, tool and model identity in manifest.json.
Stop: Missing rights, changed inputs, absent audio, empty or malformed transcript, or unverified relevant speech. Do not upload, publish or overwrite accepted files; ask the editor to settle uncertainty.
```

**`.claude/skills/video-rank/SKILL.md`**

```markdown
---
name: video-rank
description: Suggest source moments for human selection of five distinct clips.
disable-model-invocation: true
---

Input: Checked source transcript and hash, immutable source hash and probe duration, rights.json, intended audience. Verify all identities and authorized transcript access.
Action: Suggest more than five moments with numeric source-second start/end, source words, surrounding context and editorial rationale. Treat ranking as a suggestion, never a viral forecast. Have the editor open each candidate in the original and check speaker, wording, facts, context and rights. Record exactly five distinct coherent approved intervals and a rejected-candidate log.
Output: approved-moments.json with order, source hash and five numeric bounds satisfying 0 <= start < end <= source duration.
Stop: Fewer than five permissible, meaningful moments, mismatched hashes, uncertain bounds or missing human approval. Do not invent a fifth excerpt.
```

**`.claude/skills/video-cut/SKILL.md`**

```markdown
---
name: video-cut
description: Cut the five approved source intervals into separate local clips.
disable-model-invocation: true
---

Input: Immutable source.mp4, source hash/probe and five human-approved intervals. Verify hashes and calculate each duration as end minus start.
Action: For each 01-05, confirm its unique output path is unused, then transcode the approved source-relative interval with input -ss, -t duration, explicit first video/audio mapping, libx264, AAC and -n. Continue only on zero exit and file readback. Probe streams and duration, inspect first and last frames, and have the editor watch each whole cut for boundaries, sync and context. Record the exact command and output hash. Any failure or uncertain write is a manifest blocker; never pass that clip to captioning.
Output: Five accepted numbered clips, individual probe records and links to approved intervals in manifest.json.
Stop: Wrong bounds, absent stream, drift, misleading context, output collision or uncertain command result. Read back the existing path first; correct bounds with human approval and use a new filename. Never overwrite or reuse an old clip hash.
```

**`.claude/skills/video-caption/SKILL.md`**

```markdown
---
name: video-caption
description: Create and check local captions from each accepted clip.
disable-model-invocation: true
---

Input: Five accepted clip hashes, verified language and local model identity. Reject stale clips or mismatched source links.
Action: For each actual numbered clip 01-05, verify its accepted hash and unused WAV/raw-SRT paths, then extract its own mono 16 kHz 16-bit PCM WAV with -n. Run whisper-cli only after zero exit and WAV readback, with the matching language and SRT output; translation stays off. Preserve raw SRT. Have the editor correct words, names, numbers, cue timing, overlaps and readability against the actual clip, then save a distinct .checked.srt. Use clip-local times, not source-offset cues. Record failures as blockers before rendering.
Output: Five checked SRTs with raw-ASR and exact clip hash links in manifest.json.
Stop: Any cue outside clip duration, uncertain speech, bad alignment or stale clip hash. Repair and replay before rendering; a recut requires matching new captions.
```

**`.claude/skills/video-vertical/SKILL.md`**

```markdown
---
name: video-vertical
description: Render and review five captioned 1080x1920 MP4s.
disable-model-invocation: true
---

Input: Five accepted clip hashes/probes, matching checked SRT hashes, rights record and a human-approved crop or framing plan for each clip.
Action: Check decoded orientation and sample aspect ratio. Choose even integer crop width, height and x/y for each clip; require positive dimensions, nonnegative offsets and a rectangle within the decoded frame. A fixed crop does not track motion. Verify unique output and probe paths are unused. From the established run directory, render each separately with crop, aspect-preserving scale, pad, clip-local subtitles, explicit video/audio mapping, libx264, yuv420p, AAC and -n. Continue only on zero exit and saved-file readback. Create probe JSON without clobbering an existing path, reopen the MP4 and have the editor watch its entire video and audio, checking cut context, every caption, framing, sync, facts and rights. Record any failure or uncertain output as a blocker.
Output: Five distinct accepted 1080x1920 MP4s, hashes, probe JSON, exact source/clip/SRT lineage and UTC human acceptance notes.
Stop: Unknown orientation, invalid crop, missing filter, collision, unreadable file, silent audio, cut-off text, wrong duration, bad context or failed full playback. Inspect uncertain existing outputs; revise to a new filename, probe and watch again. No upload or publishing.
```

Чувајте један `manifest.json` за овај рад. При свакој предаји забележите евиденцију права и SHA-256 непроменљивог извора, верзије алата, SHA-256/лиценцу/језик модела, улазе и излазе са SHA-256, одобрене бројчане интервале извора, тачне команде и одлуке са UTC временом. Ако се назив фајла или hash разликује, зауставите се и разрешите разлику пре следеће вештине.

Сваки shell блок испод третирајте као једну фазу у новој zsh скрипти или контролисаном shell окружењу, уз `set -e` да неуспешна команда заустави фазу. Пре покретања проверите да излазна путања није заузета и у manifest упишите сваки излазни код различит од нуле, недостајући фајл или неизвестан упис као блокаду. Следећа вештина мора да прочита тај статус и hash излаза; не сме прихватити неуспешан рез само зато што постоји стари клип.

## 1. Транскрибујте извор

Према [whisper.cpp README документу одржавалаца](https://github.com/ggml-org/whisper.cpp/blob/master/README.md) , тренутни CLI пример захтева 16-битни WAV. Након провере изворног звука, из проверене пројектне фасцикле покрените следеће. `-n` спречава FFmpeg да препише постојећи WAV.

```shell
set -e
test ! -e source.wav
test ! -e transcript/source.srt
test ! -e transcript/source.json
ffmpeg -i source.mp4 -map 0:a:0 -ar 16000 -ac 1 -c:a pcm_s16le -n source.wav
test -s source.wav
"$WHISPER_CLI" -m "$WHISPER_MODEL" -f source.wav -l "$LANGUAGE" -osrt -oj -of transcript/source
test -s transcript/source.srt
test -s transcript/source.json
```

Потврдите да и `transcript/source.srt` и `.json` постоје, садрже говор са временским ознакама и не прелазе проверено трајање извора. Преслушајте репрезентативне делове и проверите нејасна имена, бројеве и цитате према оригиналу. Сачувајте исправљен транскрипт извора или изричите ознаке неизвесности. Ако је издвојени звук или транскрипт празан, проверите изворни ток, извршни фајл, језик и усклађеност модела пре новог излаза са јединственим именом.

## 2. Изаберите пет тренутака у оригиналу

Покрените `/video-rank` са провереним транскриптом и циљном публиком. Тражите више од пет предлога како би уредник могао да одбаци слабе исечке. За сваки предлог захтевајте почетак и крај у бројчаним секундама од почетка извора, изговорени део, контекст пре и после и разлог зашто исечак може да стоји самостално. Отворите сваки интервал у оригиналу. Уредник одлучује да ли рез задржава говорника, формулацију, визуелни контекст, чињенице и дозволе. Сачувајте тачно пет различитих одобрених интервала у `approved-moments.json`; укључите редослед, hash извора и `0 <= start < end <= source duration`. Део транскрипта служи само за проналажење места. За ужи задатак тражења временских ознака погледајте [Пронађите изговорени тренутак пре монтаже видеа](https://bigchange.ai/blog/find-spoken-moment-before-video-editing).

Ако снимак нема пет оправданих тренутака, зауставите се. Задатак са пет фајлова остаје недовршен.

## 3. Исеците одобрене интервале

Покрените `/video-cut`. За сваки интервал израчунајте `DURATION = END - START` из његових одобрених бројчаних граница. Замените ознаке у угластим заградама испод стварним бројевима; ознаке нису извршиве вредности. Поновите за `clip-02.mp4` до `clip-05.mp4`. FFmpeg документује тражење места у улазу, трајање, изричит избор токова и [излаз који не преписује постојеће фајлове](https://ffmpeg.org/ffmpeg.html). За предвиђене границе реза користите транскодирање уместо копирања тока.

```shell
set -e
test ! -e clips/clip-01.mp4
ffmpeg -ss <START_SECONDS> -i source.mp4 -t <DURATION_SECONDS> -map 0:v:0 -map 0:a:0 -c:v libx264 -c:a aac -n clips/clip-01.mp4
test -s clips/clip-01.mp4
```

Технички проверите токове и трајање сваког стварног клипа, прегледајте први и последњи кадар, па га погледајте целог. Забележите hash и одобрени интервал извора. Погрешан рез захтева нове одобрене границе и ново име излаза. Ако команда не успе или је резултат неизвестан, прегледајте постојећи фајл и технички га проверите пре поновног покретања; никада не усмеравајте поновни покушај на исто име.

## 4. Исправите титлове према сваком стварном резу

Покрените `/video-caption`. Транскрибујте сваки прихваћени клип јер његови титлови треба да почињу од нуле на почетку клипа. За клип 01 команде су:

```shell
set -e
test ! -e captions/clip-01.wav
test ! -e captions/clip-01.srt
ffmpeg -i clips/clip-01.mp4 -map 0:a:0 -ar 16000 -ac 1 -c:a pcm_s16le -n captions/clip-01.wav
test -s captions/clip-01.wav
"$WHISPER_CLI" -m "$WHISPER_MODEL" -f captions/clip-01.wav -l "$LANGUAGE" -osrt -of captions/clip-01
test -s captions/clip-01.srt
```

Поновите са стварним одговарајућим двоцифреним бројем од 02 до 05 и одвојеним путањама. Сачувајте сваки сирови `captions/clip-NN.srt`. Уредник пореди сваки титл са клипом, исправља речи, имена и бројеве, проверава време и читљивост и чува `captions/clip-NN.checked.srt`. Титл који прелази трајање клипа блокира рендеровање. Забележите hash сваког SRT фајла уз hash клипа. Ако се рез промени, поново направите или проверите титлове према новом фајлу.

## 5. Промените кадар, рендерујте и прихватите свих пет

Покрените `/video-vertical`. За сваки прихваћени клип проверите декодирану слику, оријентацију, однос страница узорка и кретање. Уредник бира засебне парне целобројне вредности за `CROP_W`, `CROP_H`, `CROP_X`, `CROP_Y`. Правоугаоник мора стати у декодирани кадар. Фиксно изрезивање не прати покретан субјекат; ако губи важан садржај, изаберите проверен план скалирања и допуњавања оквира или измените рез. Нејасна ротација или координате изрезивања заустављају рендеровање. [FFmpeg приручник за филтере](https://ffmpeg.org/ffmpeg-filters.html) документује crop, scale, pad и subtitles филтер који користи libass.

Из утврђене радне фасцикле поставите `CLIP` на стварни двоцифрени број, а четири променљиве изрезивања на одобрене целе бројеве тог клипа. Команда је шаблон, а не тестиран пример. Задржите приказану једноставну релативну путању титлова; посебни знакови у именима фајлова захтевају засебно escape кодирање за filtergraph. Поновите одвојено за 02 до 05.

```shell
set -e
setopt noclobber
CLIP=01
CROP_W=<CHECKED_EVEN_INTEGER>
CROP_H=<CHECKED_EVEN_INTEGER>
CROP_X=<CHECKED_EVEN_INTEGER>
CROP_Y=<CHECKED_EVEN_INTEGER>
test ! -e "shorts/short-${CLIP}.mp4"
test ! -e "probes/short-${CLIP}.json"
ffmpeg -i "clips/clip-${CLIP}.mp4" -map 0:v:0 -map 0:a:0 -vf "crop=${CROP_W}:${CROP_H}:${CROP_X}:${CROP_Y},scale=1080:1920:force_original_aspect_ratio=decrease:force_divisible_by=2:reset_sar=1,pad=1080:1920:(ow-iw)/2:(oh-ih)/2,subtitles=captions/clip-${CLIP}.checked.srt" -c:v libx264 -pix_fmt yuv420p -c:a aac -n "shorts/short-${CLIP}.mp4"
test -s "shorts/short-${CLIP}.mp4"
ffprobe -v error -show_entries format=duration:stream=index,codec_type,codec_name,width,height,sample_aspect_ratio -of json "shorts/short-${CLIP}.mp4" > "probes/short-${CLIP}.json"
test -s "probes/short-${CLIP}.json"
```

За сваки од пет JSON извештаја техничке провере захтевајте видео ток 1080 × 1920 са односом страница узорка 1:1, аудио ток и позитивно трајање усклађено са одобреним резом након кодирања и заокруживања кадрова. Недостајућа или непозната вредност остаје неразрешена. [JSON излаз алата ffprobe](https://ffmpeg.org/ffprobe.html) проверава особине фајла, а не квалитет монтаже. Поново отворите и погледајте сваки MP4 у целини, поредећи га са изворним интервалом, прихваћеним резом и провереним SRT фајлом. Проверите границе реченица, титлове и њихов безбедан положај, кадар током кретања, синхронизацију звука, чињенице и права. У manifest упишите прихватање, измену или одбијање са UTC временом. Задатак је завршен са пет прихваћених фајлова, од којих је сваки повезан са hashом извора, одобреним интервалом, hashом клипа, hashом провереног SRT фајла и JSON извештајем. Четири прихваћена фајла нису довољна.

## Ограничења и опоравак

Приступ Claude Code може захтевати претплату или API накнаду и имати ограничења коришћења. Преузет локални модел, транскрипција, транскодирање и више измена троше простор и рачунарске ресурсе. Забележите стварне трошкове ако их налог приказује; непознат трошак није нула. За овај поступак нису измерени брзина, тачност, квалитет титлова, уштеде нити популарност.

Сачувајте оригинал и прихваћене резултате. Ако модел недостаје, опција није подржана, транскрипт је лош, рендеровање не успе или је упис неизвестан, проверите тачне hash вредности улаза и постојећи фајл пре било какве промене. Отклоните конкретан узрок, дајте измени нову путању и поновите техничку проверу и потпуно гледање. Не отпремајте нити делите завршени клип док људски уредник не прихвати садржај и права.

## Sources

- [Claude Code вештине](https://code.claude.com/docs/en/skills) — Anthropic документује пројектни SKILL.md, ручно покретање и то да allowed-tools привремено дозвољава коришћење алата без упита. То не потврђује успех било ког видео поступка.
- [Claude Code дозволе](https://code.claude.com/docs/en/permissions) — Anthropic документује засебан систем дозвола. Текст вештине не намеће границу приступа медијима или отпремања; корисници морају прегледати подешавања налога и пројекта, укључујући приступ само за читање који је могућ без упита.
- [whisper.cpp README](https://github.com/ggml-org/whisper.cpp/blob/master/README.md) — Упутства одржавалаца за изградњу и моделе и тренутни whisper-cli пример описују захтев за 16-битним WAV улазом и FFmpeg конверзију. Инсталирано издање и модел проверите засебно.
- [whisper.cpp CLI README](https://github.com/ggml-org/whisper.cpp/blob/master/examples/cli/README.md) — CLI одржавалаца наводи -m, -f, -l, -osrt, -oj, -of и -tr. Водич поставља проверен језик и оставља превођење искљученим; локална транскрипција не гарантује тачне речи или време.
- [FFmpeg документација командне линије](https://ffmpeg.org/ffmpeg.html) — Референца за тражење места у улазу, -t, изричити -map, транскодирање и -n. Стварне границе и излаз морају се прегледати; копирање тока није прописан начин сечења.
- [FFmpeg документација филтера](https://ffmpeg.org/ffmpeg-filters.html) — Референца за crop, scale, pad и subtitles. Филтер subtitles захтева libass и пратеће библиотеке; проверите да инсталирано издање нуди потребне scale опције.
- [ffprobe документација](https://ffmpeg.org/ffprobe.html) — Референца за машински читљив излаз токова и формата. Техничка провера не може потврдити контекст реза, читљивост титлова, синхронизацију, чињеничну тачност или права.
- [Пронађите изговорени тренутак пре монтаже видеа](https://bigchange.ai/blog/find-spoken-moment-before-video-editing) — Повезани BIG CHANGE текст проналази делове транскрипта са временским ознакама. Овај водич наставља до пет одобрених резова, локалних титлова, вертикалног рендеровања и потпуне провере; то је засебан задатак, а не временски наставак исте приче.