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

AI-generated conceptual illustration by BIG CHANGE.
একটি রেকর্ডিং থেকে কয়েকটি ছোট ক্লিপ পাওয়া যায়, কিন্তু প্রতিলিপি কোনো অংশ ন্যায্যভাবে উপস্থাপিত হচ্ছে কি না ঠিক করতে পারে না; 1080 × 1920-এ রপ্তানিও দেখার মানের প্রমাণ নয়। এই নির্দেশিকায় Claude Code-এর পাঁচটি প্রকল্প স্কিল হাতে চালিয়ে কাজ সাজানো হয়: প্রতিলিপি, ক্রম নির্ধারণ, কাটা, সাবটাইটেল ও রেন্ডার। একজন মানব সম্পাদক মূলের প্রতিটি সময়সীমা অনুমোদন করেন এবং প্রতিটি তৈরি ফাইল পুরো দেখেন। এটি আপনার নিজের বা সম্পাদনা ও ভাগ করার স্পষ্ট অধিকার থাকা ভিডিওর জন্য।
এটি zsh-সহ macOS Terminal-এর জন্য নথিভিত্তিক পদ্ধতি। 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 সিদ্ধান্ত নথিভুক্ত করুন। নাম বা হ্যাশ আলাদা হলে পরের স্কিলের আগে থেমে সমাধান করুন।
নিচের প্রতিটি shell ব্লককে নতুন zsh স্ক্রিপ্ট বা নিয়ন্ত্রিত shell-এ এক ধাপ ধরুন, সঙ্গে `set -e` রাখুন যাতে কমান্ড ব্যর্থ হলে ধাপ থামে। চালানোর আগে প্রতিটি আউটপুট পথ অব্যবহৃত কি না দেখুন। শূন্য ছাড়া প্রস্থান কোড, অনুপস্থিত ফাইল বা অনিশ্চিত লেখা manifest-এ বাধা হিসেবে লিখুন। পরের স্কিলকে ওই অবস্থা ও আউটপুট হ্যাশ পড়তে হবে; পুরোনো ক্লিপ রয়ে গেছে বলে ব্যর্থ কাট গ্রহণ করা যাবে না।
## 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`এ রাখুন; ক্রম, মূল হ্যাশ ও `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
```
প্রতিটি প্রকৃত ক্লিপের স্ট্রিম ও দৈর্ঘ্য পরীক্ষা করুন, প্রথম-শেষ ফ্রেম দেখুন, তারপর পুরো দেখুন। হ্যাশ ও অনুমোদিত মূল সময়সীমা লিখুন। ভুল কাটে নতুন অনুমোদিত সীমা ও নতুন আউটপুট নাম চাই। কমান্ড ব্যর্থ বা ফল অনিশ্চিত হলে আবার চালানোর আগে বিদ্যমান ফাইল ও probe দেখুন; একই নামে পুনরায় লেখার চেষ্টা করবেন না।
## 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`রাখেন। ক্লিপের দৈর্ঘ্যের বাইরে সাবটাইটেল থাকলে রেন্ডার বন্ধ থাকবে। প্রতিটি SRT হ্যাশ ক্লিপ হ্যাশের সঙ্গে লিখুন। কাট বদলালে নতুন ফাইল অনুযায়ী সাবটাইটেল আবার তৈরি বা পরীক্ষা করুন।
## 5. নতুন ফ্রেম দিন, রেন্ডার করুন ও পাঁচটিই গ্রহণ করুন
এই স্কিল চালান: `/video-vertical`। প্রতিটি গৃহীত ক্লিপের ডিকোড করা ছবি, দিক, নমুনা অনুপাত ও গতি দেখুন। সম্পাদক প্রতিটি ক্লিপের নিজস্ব জোড় পূর্ণসংখ্যা `CROP_W`, `CROP_H`, `CROP_X`, `CROP_Y`বাছেন। আয়তক্ষেত্রটি ডিকোড করা ফ্রেমে ধরতে হবে। স্থির ক্রপ চলন্ত বিষয় অনুসরণ করে না; গুরুত্বপূর্ণ বিষয় হারালে পর্যালোচিত স্কেল-ও-প্যাড পরিকল্পনা নিন বা কাট বদলান। ঘূর্ণন বা ক্রপ স্থানাঙ্ক অস্পষ্ট হলে রেন্ডার থামান। [FFmpeg ফিল্টার নির্দেশিকা](https://ffmpeg.org/ffmpeg-filters.html) এ crop, scale, pad ও libass-ভিত্তিক subtitles ফিল্টার বর্ণিত।
নির্ধারিত কাজের ডিরেক্টরি থেকে `CLIP` প্রকৃত দুই অঙ্কের সংখ্যা এবং চার ক্রপ চলক ওই ক্লিপের অনুমোদিত পূর্ণসংখ্যায় সেট করুন। কমান্ডটি ছাঁচ, পরীক্ষিত উদাহরণ নয়। দেখানো সহজ আপেক্ষিক সাবটাইটেল পথ রাখুন; নামের বিশেষ অক্ষরের জন্য পৃথক filtergraph escaping দরকার। 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 probe ফাইলের প্রতিটিতে 1080 × 1920 ভিডিও স্ট্রিম, নমুনা অনুপাত 1:1, অডিও স্ট্রিম এবং এনকোডিং/ফ্রেম রাউন্ডিংয়ের পর অনুমোদিত কাটের সঙ্গে মেলা ধনাত্মক দৈর্ঘ্য চাই। গুম বা অজানা মান অমীমাংসিত। [ffprobe-এর JSON আউটপুট](https://ffmpeg.org/ffprobe.html) ফাইলের বৈশিষ্ট্য দেখে, সম্পাদনার মান নয়। প্রতিটি MP4 আবার খুলে পুরো দেখুন এবং মূল সময়সীমা, গৃহীত কাট ও যাচাই করা SRT-এর সঙ্গে তুলনা করুন। বাক্যের সীমা, নিরাপদ অবস্থানসহ সাবটাইটেল, গতিতে ফ্রেম, শব্দের সমন্বয়, তথ্য ও অধিকার দেখুন। manifest-এ UTC সময়সহ গ্রহণ, সংশোধন বা বাতিল লিখুন। পাঁচটি গৃহীত ফাইলের প্রতিটির সঙ্গে মূল হ্যাশ, অনুমোদিত সময়সীমা, ক্লিপ হ্যাশ, যাচাই করা SRT হ্যাশ ও probe JSON যুক্ত থাকলে কাজ শেষ। চারটি গৃহীত ফাইল যথেষ্ট নয়।
## সীমা ও পুনরুদ্ধার
Claude Code-এ প্রবেশের জন্য প্ল্যান বা API খরচ ও ব্যবহারসীমা থাকতে পারে। ডাউনলোড করা স্থানীয় মডেল, প্রতিলিপি, ট্রান্সকোড ও একাধিক সংশোধন স্টোরেজ ও গণনা ব্যবহার করে। অ্যাকাউন্ট দেখালে প্রকৃত খরচ লিখুন; অজানা খরচ শূন্য নয়। এই পদ্ধতির গতি, নির্ভুলতা, সাবটাইটেলের মান, সাশ্রয় বা জনপ্রিয়তা মাপা হয়নি।
মূল ও গৃহীত ফল রাখুন। মডেল গুম, বিকল্প অসমর্থিত, প্রতিলিপি খারাপ, রেন্ডার ব্যর্থ বা লেখা অনিশ্চিত হলে কিছু বদলানোর আগে সঠিক ইনপুট হ্যাশ ও বিদ্যমান ফাইল দেখুন। নির্দিষ্ট কারণ সারান, সংশোধনকে নতুন পথ দিন, probe ও পুরো দেখা আবার করুন। মানব সম্পাদক বিষয়বস্তু ও অধিকার গ্রহণ না করা পর্যন্ত তৈরি ছোট ভিডিও আপলোড বা ভাগ করবেন না।
## 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) — যন্ত্র-পাঠযোগ্য স্ট্রিম ও ফরম্যাট আউটপুটের তথ্যসূত্র। probe কাটের প্রসঙ্গ, সাবটাইটেল পাঠযোগ্যতা, সমন্বয়, তথ্যের নির্ভুলতা বা অধিকার প্রতিষ্ঠা করতে পারে না।
- [ভিডিও সম্পাদনার আগে কথার মুহূর্ত খুঁজুন](https://bigchange.ai/blog/find-spoken-moment-before-video-editing) — সংশ্লিষ্ট BIG CHANGE লেখা সময়চিহ্নিত প্রতিলিপির অংশ খুঁজে দেয়। এই নির্দেশিকা পাঁচটি অনুমোদিত কাট, স্থানীয় সাবটাইটেল, উল্লম্ব রেন্ডার ও পূর্ণ পর্যালোচনা পর্যন্ত যায়; এটি আলাদা কাজ, একই ঘটনার তারিখভিত্তিক পরের পর্ব নয়।
BIG CHANGE নিউজলেটার
বড় ছবিটা। আপনার গতিতে।
এআই ও রোবোটিক্স নিয়ে সাম্প্রতিক খবর, নজর রাখার মতো পরিবর্তন এবং কাজে লাগানোর ব্যবহারিক ধারণা। দৈনিক ব্রিফিং, সাপ্তাহিক সংকলন বা মাসিক দৃষ্টিভঙ্গি বেছে নিন।
পরবর্তী নির্ধারিত প্রেরণ (UTC): . আপনি নিশ্চিত করার পরে পরবর্তী নির্ধারিত প্রেরণের সময় প্রথম সংখ্যাটি পাবেন।
আপনার গোপনীয়তা, আপনার পছন্দ।
প্রয়োজনীয় স্টোরেজ সাইটের নিরাপত্তায় সাহায্য করে এবং আপনার পছন্দ মনে রাখে। আপনি অনুমতি না দেওয়া পর্যন্ত ঐচ্ছিক Google Analytics বন্ধ থাকবে। প্রয়োজনীয় স্টোরেজ ব্যবহার করেই প্রতিটি গল্প পড়তে পারেন। গোপনীয়তার বিবরণ