◂ Этап HandbookRYA.AESpeaker in the Center · Measured Framing — спикер в центре: поля слева и справа равны, над макушкой — по замерусправочник · 4 окт 2026
Роман 03.10.2026, по странице YTCG37 v3: «мне ещё важно, чтобы ты спикера в центр помещал. В центр экрана, чтобы пространство по сторонам и сверху и по бокам ты замерял». Кадр ставили по точке между глаз — а силуэт человека несимметричен: волосы, плечо, наклон головы. В v3 Кейт стояла правее центра в 34 планах из 36, над головой оставалось 14–26 % высоты кадра. С v4 машина меряет силуэт (Apple Vision) и ставит кадр по числам: поля ← → равны, над макушкой — доля высоты по плану. Ниже — где стоит спикер в каждой раскладке, как меряет машина, случай YTCG37 и что проверять. 03.10 вечером Роман спросил: «А ты уверен, что прям так сильно? Не надо чуть больше пространства сверху над головой? Ещё надо правило, когда делаем zoom in zoom out» — ниже теория планов из видеопроизводства, замер «сейчас → по теории» и черновик правила наезда и отъезда.
📌 Правило. Спикер — по центру видимой части кадра (весь кадр · правее панели · правее колонки текста · окно холста). Поля слева и справа равны и меряются по верху тела — голова, волосы, плечи: 600 px от макушки, края — 10-й и 90-й перцентиль строк, не руки и не колени. Над макушкой — постоянная доля высоты по плану. Упёрлись в край исходника — наезд до +0,3, а не сдвиг спикера. На странице версии — числа ← → ↑ px, а не слово «по центру». Вертикаль — на пересмотре (03.10.2026): постоянная доля над макушкой подняла глаза на 20 % высоты кадра — тесно сверху. По теории планов глаза стоят на верхней трети (≈33 %), низ кадра — на линии плана и не по суставу: Теория планов. Код меняется после «ок» Романа по парам кадров.
Одним взглядом
≤ 4px
разница полей ← → во всех 36 планах
YTCG37 v4 · в среднем 1,8 px
8,5%
над макушкой, средний план
= 184 px из 2160 · крупный 6 % · в коде сейчас, на пересмотре
+0,3
предел наезда вместо сдвига
шаг 0,05; стоп при |←−→| ≤ 2 % ширины
1кадр/с
силуэт Apple Vision по всем дублям
303 кадра · 17 дублей · 2 мин 56 с
20 → 33%
глаза от верха кадра: сейчас → по теории
36 планов YTCG37 v4–v6 · верхняя треть — после «ок»
1Схема2Теория3По плану4Глаза5Наезд6Числа7Как меряет8YTCG379Движки10Шортс11Показ12Проверки13Построить14Знание15Грабли16Команды17Источники18Где

22.6 · 1Схема: где стоит спикер в каждой раскладке

Пять раскладок фильма — настоящие планы YTCG37 v4 в координатах кадра 4K (3840×2160). Пунктир лайма — видимая часть: в ней спикер и центрируется. Зелёные стрелки — поля по верху тела; ↑ — над макушкой. Шортс 9:16 — в разделе Шортс ниже.

← 14121408 →↑ 184 · 8,5 %
Весь кадр · средний план ×1,5план #4 (C, 0:35): поля 1412 и 1408 px, над макушкой 184 px = 8,5 %
full/mid8,5 %×1,5
← 12561254 →↑ 129 · 6 %
Весь кадр · крупный план ×1,79план #2 (B2, 0:22): поля 1256 и 1254 px, над макушкой 129 px = 6 %
full/close6 %×1,79
панель 1844 px · 48 %← 462460 →↑ 184 · 8,5 %
Правее панели 1844 pxплан #1 (B1_side, 0:10): центр не кадра, а свободной части; поля 462 и 460 px, ↑ 184
side/A8,5 %side/B — 6,5 %
колонка текста поверх кадра до 1950 px← 443440 →↑ 195 · 9 %
Правее колонки текстаплан #28 (M, 3:22): текст поверх кадра слева до 1950 px; поля 443 и 440, ↑ 195 = 9 %
over/A9 %over/B — 7 %
← 8785 →↑ 103
Окно холста 900×1360план #3 (B2_uae, 0:28) в v4: поля 87 и 85, ↑ 103 = 7,5 % окна. С v6 окно крупнее: ×1,22 / ×1,45, над макушкой 6 % / 5 %
window/Av4: 7,5 %v6: 6 % · ×1,22

Доли над макушкой — от высоты видимой части (у окна — от 1360 px окна). Числа и раскладки — solo.py (константы HEAD, ZOOM) и ytcg.py (SIDE_W 1844, HOLE 2790,400,900×1360, OVER_TEXT_R 1950); планы — edl_v4.json YTCG37.

22.6 · 2Теория планов: где кадр режет человека

План — сколько человека в кадре. Его задаёт низ кадра: он режет фигуру на своей линии и никогда — по суставу. Глаза в любом плане — на линии верхней трети. Так учат в видеопроизводстве (Video Production Handbook, гл. 8.1 и 8.5; Grammar of the Shot) — источники в конце раздела.

Глазана верхней трети кадра — в любом плане
CU · Крупныйкрай плеч или под подбородком; макушку можно срезать
MCU · Погрудныйсередина груди, выше локтя — основной план разговора
MS · Пояснойчуть ниже пояса, не по бедру — жест, руки
MLS · По коленочуть выше колена — поза, кто рядом
LS · Общийвся фигура с полями — место, кто где
суставы: шея, локоть, запястье, бедро, колено, щиколотка — по ним кадр не режетлиния глазниз кадра плана

Суставы — Video Production Handbook 8.1: «not cut them off at a natural joint in the body, like the knees or elbows. It will give the illusion on camera that the person has been amputated». Названия в школах расходятся: в новостях ТВ «средний» — человек целиком; здесь — словарь машины, русское и английское рядом.

Шкала планов: низ кадра, воздух, глаза
ПланENНиз кадраНад головойГлазаКогда
ДетальECUчасть лица или рука——доказательство, предмет
СверхкрупныйBCUлицо целиком, макушка срезана0около серединыпик эмоции
КрупныйCUпод подбородком или край плечминимум, можно срезать волосыверхняя третьэмоция, признание, главная фраза
ПогрудныйMCUсередина груди, выше локтянебольшойверхняя третьосновной план разговора
ПояснойMSчуть ниже пояса, не по бедрубольшеверхняя третьжест, руки, действие
По коленоMLSчуть выше коленаещё больше—поза, движение, кто рядом
ОбщийLSвся фигура с полями——место, кто где
ДальнийELSфигура мала——обстановка

22.6 · 3Как ставить человека: кадр по плану

Один и тот же человек в кадре 16:9 по теории: низ — на линии плана, глаза — на линии верхней трети (лайм). Воздух над макушкой не задают числом — он получается из плана: в крупном его нет, в поясном — пятая часть кадра. Последний кадр — наше правило сейчас в том же масштабе, что поясной.

глаза · 33 %
Крупный · CUниз — край плеч; верх волос можно срезать
эмоция, главная фраза
глаза · 33 %↑ 15 %
Погрудный · MCUниз — середина груди, выше локтя
основной план разговора
глаза · 33 %↑ 22 %
Поясной · MSниз — чуть ниже пояса, не по бедру
жест, руки
глаза · 33 %↑ 27 %
По колено · MLSниз — чуть выше колена
поза, кто рядом
глаза · 33 %↑ 29 %
Общий · LSвся фигура с полями
место
глаза · 21 %↑ 9 %
Сейчас у нас · глаза на 21 %масштаб поясного, над макушкой 9 % — кадр ниже на ⅛ высоты: низ уехал на бедро и запястья
v4–v6низ — по суставу

Фигура — стоящий человек, голова — ⅛ роста. В YTCG37 Кейт сидит, но сдвиг тот же: при том же наезде глаза с трети на 20 % опускают кадр на 13 % его высоты — снизу прибавляется тело, сверху пропадает воздух.

22.6 · 4Глаза по замеру: v3 → v4–v6 → по теории

План #4 YTCG37 (весь кадр, средний ×1,5) по вертикали: где стояли глаза в v3, где стоят сейчас и где их ставит теория. Горизонталь во всех трёх — по центру: её решает силуэт, это не меняем.

↑ 484 · 22 %⅓глаза 34,5 %
v3 · по глазамглаза почти на трети; ошибкой v3 был сдвиг вбок (медиана 64 px), не воздух
v3глаза 34,5 %
↑ 184 · 8,5 %⅓глаза 20,6 %
v4–v6 · сейчаспостоянная доля над макушкой 8,5 % подняла человека к верху — «тесно сверху»
сейчасглаза 20,6 %
↑ 459 · 21 %⅓глаза 33 %
По теорииглаза на линии верхней трети, центр — по силуэту, как в v4
предложениеглаза ⅓

Глаза пересчитаны по точкам v3 и сдвигу окна исходника v3 → v4 (frame_facts.json). Менять код — после «ок» Романа по парам настоящих кадров одного плана «сейчас / по теории»; кадры клиента — только приватно.

Глаза от верха кадра, % высоты · 36 планов
Раскладкаv3 · по глазамv4–v6Над макушкой v4–v6
весь кадр, средний ×1,534,5 %20,6 %8,5 %
весь кадр, крупный ×1,7937,1 %20,8 %6 %
правее панели (side/A)34,6 %21,1 %8,5 %
окно холста (window/A)37,1 %20,4 %7,5 % · v6 — 6 %

22.6 · 5Наезд и отъезд: когда меняем план

Роман 03.10: «Ещё надо правило, когда делаем zoom in zoom out». Смена плана — склейкой и с поводом; правила ниже — черновик до «ок» Романа, что уже есть в коде — отдельной плиткой.

1Наезд — крупнеечерновик
  • эмоция, признание, пик
  • главная фраза, вывод, цифра
  • стык дублей одного плана — закрыть склейку
  • пауза героя после пика
2Отъезд — общеечерновик
  • новый блок, глава, смена темы — «сброс»
  • руки, предмет, показ
  • рядом экран или панель
  • после крупного пика — назад
3Шаг сменычерновик
  • склейкой, не плавным зумом; плавный наезд — приём (story_cut: zoompan)
  • минимум на ступень шкалы, лучше через одну: поясной ↔ крупный
  • соседние похожие кадры одного человека — «прыжок» (правило 30°, Grammar of the Shot)
4Не делатьзапрет
  • смену плана внутри слова или фразы — только на паузе, на стыке слов
  • чаще раза в ~1,2 с — порог рамки шортсов
  • план дольше 12,5 с без смены — MAX_HOLD в sc_edl.py: «добавь ракурс, наезд, перебивку или графику»
5Что в коде сейчасесть сегодня
  • solo.py: A/B ×1,5 ↔ ×1,79 (+19 %), в окне ×1,22 ↔ ×1,45; на стыке дублей план меняется
  • story_cut: склейка «punch» — та же камера и разница zoom ≥ 0,15
  • director.py: наезд ×1,12 — крайний способ закрыть склейку звука
  • autocut: наезд PUNCH по лицу, сила — из профиля (по умолчанию ×1,2)
6Предел разрешенияпредел
  • из 4K в 4K любой наезд растягивает кадр: ×1,79 — мягко на 4K-экране
  • для выдачи 1080p из 4K запас ×2
  • шортсы: растяжение больше ×1,25 — ⚠ в shorts.py

22.6 · 6Правило числами

Над макушкой в пикселях кадра 4K: доли в коде с v4 по видам плана и что было в v3 «по глазам». ⚠ По теории планов эти доли малы — глаза встали на 20 % высоты: Глаза по замеру.

v3 · по глазам296–552 px = 14–26 % кадра · по вертикали ближе к теории296–552
over/A · колонка текста9 % от 2160195
full/mid · средний8,5 %184
side/A · правее панели8,5 %184
over/B7 %151
side/B6,5 %140
full/close · крупный6 %129–132
window/A · окно 1360v4 7,5 % · v6 6 %102 → 82
window/B · окноv4 6 % · v6 5 %83 → 68

Источник долей — HEAD в solo.py (v4: стр. 987, сейчас 989). Окно изменили после v5: «где она крупно на таких экранах — лучше такой план брать» (Роман, 03.10.2026 ~10:00) — Кейт в окне ×1,0 была мелкой, видно колени.

Шесть правил — каждое из своей ошибки
1Центр видимой частираскладка
  • весь кадр 0–3840 · правее панели от 1844 · правее текста от 1950 · окно 2790–3690
  • центр кадра при панели — ошибка: спикер уходит под панель
2Поля по верху телаUPPER 600
  • полоса 600 px от макушки: голова, волосы, плечи
  • весь силуэт тянет вбок: Кейт сидит нога на ногу, колени влево
3Края — 10/90 перцентильEDGE_Q
  • по 20-строчным полосам, не крайние точки
  • рука на подлокотнике растянула край 2360 → 2970 px (план O2)
4Над макушкой — доляHEAD
  • средний 8,5 % · крупный 6 % · over 9/7 % · side 8,5/6,5 % · окно 6/5 %
  • в v3 было 14–26 % кадра; по теории планов это ближе к норме, чем 8,5 % — глаза
5Край исходника — наезд+0,3
  • шаг +0,05 до +0,3; стоп при |←−→| ≤ 2 % видимой ширины
  • #28: ×1,40 → ×1,50, поля 304/650 → 443/440
6Числа на странице← → ↑
  • у каждого плана ←L →R ↑T px и пара кадров «было → стало»
  • слово «по центру» без чисел

22.6 · 7Как меряет машина

1
Кадр в секундумашинакаждый дубль программы, через цветовую цепочку фильма → JPEG 1920×1080⇒ --every 25 · 4 потока
2
Маска человекамашинаApple Vision, .accurate: по каждой строке маски крайний левый и правый пиксель⇒ vision_person, 0,07 с/кадр
3
Профиль силуэтамашинамакушка + 108 полос по 20 строк, края в px кадра 4K⇒ silhouette_v1.json
4
Лист силуэтов глазамичеловек3 кадра на дубль: красный — левый край, синий — правый, жёлтый — макушка⇒ qc/silhouette_v1_NN.jpg
5
frame_fit по планумашинамедиана по дублю; макушка на доле HEAD; центр верха тела — в центр видимой части✓ |←−→| ≤ 2 % ширины
6
Край — наездмашинаокно упёрлось в исходник: +0,05 … +0,3, берётся план с меньшей разницей полей⇒ «⚠ край исходника»
7
Пары «было → стало»человеквсе планы кадрами с линиями и числами ← → ↑ на странице версии✓ Роман смотрит все
машиначеловек

Замер идёт по исходнику до рендера: план пишет в edl_vN.json поле fit {left, right, top, region, zoom, clamped} и печатает «поля ←462 →460 ↑184 ×1.5». Без файла силуэта план откатывается к старому способу и пишет «(по глазам)».

22.6 · 8Случай YTCG37: v3 по глазам → v4 по силуэту

План #1 B1_side (0:10, 20 с, правее панели). В v3 точка между глаз стояла точно в центре свободной части (2844 при центре 2842) — а силуэт с волосами и плечом уехал вправо на 85 px.

было · v3по глазам (YuNet)
панель 1844 px · 48 %← 546376 →↑ 476 · 22 %глаза
546 / 376px
поля ← →
476px
над головой · 22 %
стало · v4по силуэту (Apple Vision)
панель 1844 px · 48 %← 462460 →↑ 184 · 8,5 %
462 / 460px
поля ← →
184px
над макушкой · 8,5 %

Источник: 08_Cut/framing_v3_v4.json и страница v4 «Кадрирование по замеру» (YTCG37, на Drive и в Trello — YTCG49). Окно исходника сдвинулось на 56 px вбок и на 194 px вниз.

Все 36 планов: насколько уехал центр в v3
0–24 px2
25–49 px7
50–74 px12
75–99 px8
100–124 px4
125–149 px1
≥ 150 pxоба — колонка текста: 298 и 3542

Медиана 64 px, среднее 83, худший 354 px (#28, over/A). На странице v4 «в среднем 64» — это медиана. До правки краёв (10/90) таблица давала 72 и 398 — в старых записях встречается 72.

v4: разница полей ← →, планов
0 px7
1 px10
2 px10
3 px2
4 px7

Центр — в пределах ±2 px; над макушкой 83–195 px, отклонение от цели −0,6…+2,4 px. Наезд понадобился один раз: #28 ×1,40 → ×1,50.

Куда уезжал спикер
34 из 3694 %
планов v3 — Кейт правее центра: волосы и плечо справа от точки между глаз
2 из 366 %
плана v3 обрезали плечо окном (−21 и −18 px) — окна E и G, window/B

22.6 · 9Окна говорящего по движкам

Силуэт меряет пока только solo.py (одна камера, дубли). Остальные движки ставят кадр по лицу — правило «поля равны» у них держится приблизительно.

ДвижокОкно и раскладкиКак ставит спикера
solo.py + ytcg.py · YTCGокно холста 900×1360 (2790, 400), r 48; панель 1844 px; колонка текста до 1950силуэт: frame_fit, центр верха тела в центр видимой части, макушка на доле HEAD, наезд ≤ +0,3
director.py + gfx.py · YTLABокно 1160×1560 слева (150, 330) или справа (2530, 330), r 56; панель 1920 = полкадралицо YuNet: глаза в точке (0,5; 0,36) окна; кадр под окном сдвигается, не масштабируется. Панель: центр фигуры (лицо + 0,45 ширины лица к телу) — в центр свободной половины
autocut · screens2.py · YTEVOокно 690×1180 справа (3054, 720), r 48лицо YuNet: без увеличения, лицо ≈ 32 % высоты окна, центр лица на 38 % высоты, по горизонтали по центру
story_cut · sc_gfx.py · YTCRокно PIP 1180×664 в углу холста, ×1,3лицо остаётся там, где было в кадре: окно не центрирует — «надо построить»
шортсы · render.pyкадр 1080×1920 из мастера 16:9лицо YuNet 2 раза в секунду: крупный — рамка 608×1080, лицо по центру; общий — 456×810, центр лица на 36 % высоты

Источники: solo.py 953–1085 · gfx.py 54–62, 685–707 · director.py 415–441, 521–575 · plan.py 290–362 · render.py 214–351.

22.6 · 10Шортс 9:16: лицо по центру, рамка не дёргается

Шортс режется из мастера 16:9 по лицу. Рамка ставится по треку лица и держится: двигается, только если лицо ушло дальше порога, и не чаще раза в 1,2 с.

← 4444 →
Крупный план: рамка 608×1080лицо шире 120 px → рамка во всю высоту мастера, лицо по центру по горизонтали, по вертикали не двигаем
close_face 120из 4K ×0,89из 1080p ×1,78
← 6868 →36 %
Общий план: рамка 456×810лицо в кадре ≥ 60 % речи → наезд на говорящего; центр лица на 36 % высоты рамки
wide_height 810headroom 0,36из 1080p ×2,37

Сдвиг рамки — при уходе лица больше 70 px по горизонтали или 50 по вертикали (кадр плана 1080p); кусок короче 1,2 с сливается с соседом, мигание A→B→A убирается. После рендера: две склейки ближе 0,1 с — «⚠ мелькнул кадр»; растяжение больше ×1,25 — «⚠ мастер мал». Правки по выпускам: YTEVO02 crop.headroom 0.31, YTFP01 close_face 100.

Пороги рамки шортса
70 / 50px
сдвиг лица, после которого двигаем рамку
stable_dx / stable_dy
1,2с
рамка не меняется чаще
min_hold
0,1с
две склейки ближе — мелькнул кадр
проверка после рендера
×1,25
растяжение больше — ищем мастер 4K
shorts.py find4k

22.6 · 11Как показывать Роману

1Блок «Кадрирование по замеру»страница версии
  • наверху страницы, когда меняется кадр
  • пример «было → стало» с линиями и числами
  • правило — четыре строки
2Все планы спискомсвёрнуто
  • у каждого плана ←L · →R · ↑T px для vN и vN+1
  • якоря #fr-01…#fr-36 — ссылкой в чат
  • под карточкой экрана: «Кейт по центру, поля ←… · →…»
3Кадры с линиямиframing.py
  • видимая часть — белый пунктир
  • было — оранжево-красный, стало — зелёный
  • 1280×720, средний кадр плана

Образец — страница YTCG37 v4, которую Роман 03.10.2026 в 04:45 прислал как «Пример анализа расположений человека и экрана». В gen_screen_plan.py этого раздела пока нет — его собрали скрипты проекта (08_Cut/review_page_v4/): «надо построить».

22.6 · 12Проверки

ЧтоНормаЧемОткуда взялась
Поля ← →|←−→| ≤ 2 % видимой ширины (весь кадр 77 px, панель 40, окно 18); в v4 вышло ≤ 4 pxsolo.py plan → fitYTCG37 v3: медиана 64 px, до 354
Над макушкойсейчас — доля HEAD по виду плана; ⚠ на пересмотре: глаза на верхней трети, воздух — по плануsolo.py plan → fit.topv3: 14–26 % · v4–v6: глаза на 20 %
Низ кадрана линии плана, не по суставу: шея, локоть, запястье, бедро, колено, щиколоткаглазами; надо построить — точки тела Apple VisionVideo Production Handbook 8.1
Край исходниканаезд +0,05…+0,3; в плане «⚠ край исходника»solo.py plan#28: ×1,40 → ×1,50
Силуэт найден«замеров 303 из 303 · без силуэта: нет»; иначе план «(по глазам)»solo.py silhouette03.10.2026
Глазами — все парыкаждый план «было → стало»; равные числа ≠ центрчеловекO2: −199 / −199, а Кейт у края окна
Окно не мелкоев окне голова и плечи, не коленичеловек → ZOOM PIPРоман по v5: ×1,0 → ×1,22
Шортслицо по центру; рамка держится ≥ 1,2 с; мигание ≥ 0,1 сrender.pyYTFP01 · YTTRBM01

Готовый фильм заново не меряется: поля считаются по силуэту исходника до рендера — «надо построить» замер на мастере.

22.6 · 13Надо построить

1Вертикаль по теории плановпосле «ок»
  • пары кадров одного плана YTCG37 «сейчас / по теории» — Роману приватно (кадры клиента)
  • solo.py: глаза на ⅓ видимой части, низ — на линии плана по точкам тела Apple Vision (VNDetectHumanBodyPoseRequest)
  • затем director, autocut, story_cut и шортсы
2Раздел в странице версиинадо построить
  • «Кадрирование по замеру» в gen_screen_plan.py вместо скриптов проекта
  • команда solo.py framing --from vA --to vB → framing_A_B.json + пары кадров
3Силуэт во всех движкахнадо построить
  • director, autocut, story_cut и шортсы ставят по лицу
  • story_cut: окно PIP не центрирует лицо вовсе
4Замер на готовом фильменадо построить
  • повторить ← → ↑ на мастере, а не только на исходнике
  • флаг, когда окно упёрлось в край по вертикали (сейчас молча)
5Наклон внутри планаразвилка
  • план держит медиану: наклон за 20 с не догоняется
  • решает Роман: подвижная рамка или нет

22.6 · 14Что обновляет базу знаний

ФайлКто пишетКогда
solo.py — HEAD, ZOOM, UPPER, EDGE_Qсессия фильма по слову Романаправило поменялось (окно ×1,22 после v5)
08_Cut/silhouette_vN.json + qc/silhouette_vN_NN.jpgsolo.py silhouetteдо плана, раз на версию исходников
08_Cut/framing_vA_vB.jsonскрипт проекта (пока не команда)при смене кадра между версиями
эта страницасессия KBновое число или новая раскладка
память feedback_speaker_centered_measuredсессия, получившая правкуслова Романа о кадре

22.6 · 15Ошибки и грабли

По глазам ≠ по центруточка между глаз в центре, а силуэт с волосами и плечом уехал: 34 плана из 36 правее, медиана 64 pxYTCG37 v3 · 03.10.2026
Постоянная доля над макушкой8,5 / 6 % подняли глаза на 20 % высоты во всех раскладках — тесно сверху; вертикаль задают линия глаз и план, а не доляРоман 03.10.2026 · замер 36 планов
Весь силуэт тянет вбокколени, руки, кресло — мерить только верх тела, 600 px от макушки (UPPER)solo.py · Кейт нога на ногу
Равные числа, а спикер у краярука на подлокотнике растянула край 2360 → 2970 px: «−199 / −199» при Кейт у левого края окна; лечится краями 10/90 перцентиль и просмотром всех парO2 · 03.10.2026 04:15
Сдвиг вместо наездаокно упёрлось в край исходника — сдвиг уводит спикера из центра; наезд до +0,3#28: ×1,40 → ×1,50
Мелкий спикер в окне×1,0 — видно колени, человек маленький; в окне — голова и плечи (×1,22)Роман по v5 · YTCG37
Центр кадра при панелицентр видимой части, не кадра: правее панели 1844 и колонки текста 1950v3 over: лицо на 66,5 % ширины вместо 75,4 %
Число поменялось с методомдо правки краёв — «72 px, до 398», после — «64, до 354»; «в среднем 64» — медиана, среднее 83страница v4 · хэндофф 03.10b
Отрицательные поля в узком окнеплечи шире окна — режутся симметрично (v6: −67 / −65); это не ошибка, но на странице объяснятьYTCG37 v6

22.6 · 16Команды

Силуэт и план
$V $HC/solo.py silhouette --job $J --ver v1 --every 25  # кадр в секунду → 08_Cut/silhouette_v1.json + qc/silhouette_v1_NN.jpg
$V $HC/solo.py plan --job $J --ver v1 --tag v4  # план: у каждого плана «поля ←L →R ↑T ×zoom»
$V $HC/solo.py run --job $J --tag v4 --out $F  # рендер по окнам плана — через очередь
Инструмент Apple Vision
printf '%s\n' кадр.jpg | ~/YTAI/scripts/999_extra/bin/vision_person  # маска одного кадра: строки xmin,xmax,n
swiftc -O $X/vision_person.swift -o $X/bin/vision_person  # собрать инструмент

$V = ~/YTAI/environment/.venv_transcribe/bin/python · $HC = ~/YTAI/scripts/05_editing/0510_headless_cut · $X = ~/YTAI/scripts/999_extra · $J = {проект}/00_Setup/08_Cut/{CODE}_cut_job.json

22.6 · 17Источники теории

ИсточникЧто берёмГде
Video Production Handbook (C. Clemens и др., CC BY-NC 4.0), гл. 8.1 и 8.5шкала по фигуре: MLS — выше колена, MS — по поясу, «not at the hip», MCU — низ грудины, CU — край плеч; суставы; воздух; глаза интервью — на верхних пересечениях третейLibreTexts, гл. 8.1
Grammar of the Shot (R. Thompson, C. J. Bowen, 2-е изд.)MCU «two-button» выше локтя; CU может срезать волосы; «appropriate headroom for each shot type»; правило 30°книга
Кулешов: шесть крупностейдеталь, крупный, первый средний (поясной), второй средний, общий, дальнийru.wikipedia «План (кинематограф)»
К. Гаврилов «Как делать сюжет новостей»ТВ: «средний» — человек целиком; поясной, крупный, деталькнига
Подборка Романа: StudioBinder, Every Frame a Painting, ASCмаршрут обучения, склейка по эмоции и ритму, «через одну крупность»; 19 ссылок провереныТеория_планов_гайды_и_статьи.docx
Разбор 03.10.2026проверка подборки, шкала для машины, замеры YTCG37, черновик правила наездаТеория_планов_проверка_и_дополнения.md

22.6 · 18Где лежит

Код
~/YTAI/scripts/05_editing/0510_headless_cut/solo.pysilhouette · frame_fit · HEAD/ZOOM/UPPER/EDGE_Q (953–1159)
~/YTAI/scripts/999_extra/vision_person.swiftмаска человека Apple Vision → строки маски
~/YTAI/scripts/05_editing/0510_headless_cut/ytcg.pyраскладки YTCG: панель 1844, окно 900×1360, колонка 1950
~/YTAI/scripts/07_shorts/0701_finished/render.pyрамка шортса по лицу, пороги, мигание
Проект YTCG37
{проект}/00_Setup/08_Cut/silhouette_v1.json303 замера, 17 дублей
{проект}/00_Setup/08_Cut/framing_v3_v4.json36 планов: поля v3 и v4
{проект}/00_Setup/08_Cut/review_page_v4/framing.py · build_page.py · кадры fr_NN_v3/v4.jpg
Теория планов
~/YTAI/output/shot-guide/Теория_планов_проверка_и_дополнения.mdразбор подборки Романа: источники с цитатами, шкала, замеры, черновик правила наезда
~/YTAI/output/shot-guide/Теория_планов_гайды_и_статьи.docx · …_v2.docxподборка Романа (19 ссылок) и v2 с дополнениями
Спикер в центре · сверено с кодом 03.10.2026 · solo.py (v4 и рабочая копия v6) · YTCG37 v3 → v4 · 36 планов · теория планов: Video Production Handbook 8.1 и 8.5, Grammar of the Shot