← Портфолио ЮР Юлия Репринцева EN
Инструкция · видео из созвона

Созвон в Контур.Толке — готовое видео для соцсетей

На весь кадр — ваш экран, Claude или страница в браузере. Внизу — вы и гость в аккуратных кружках. Горизонтально или вертикально, без монтажа.

Без монтажа

Контент из разговора, который и так был

Эфир с экспертом, разбор, демонстрация инструмента — после звонка у вас готовый ролик, а не сырая запись, которую ещё неделю собирать.

Один кадр

Своя раскладка вместо сетки сервиса

Экран крупно, спикеры кружками, одинаково в каждом выпуске. В 16:9 для YouTube и VK или в 9:16 для Reels и Shorts — с полями под интерфейс соцсети.

Приватно

В кадре только то, что вы показываете

Одно окно Claude или одна вкладка браузера. Уведомления, другие вкладки и рабочий стол в запись не попадают.

Через Claude

Настройка — одним промптом

OBS не нужно осваивать: Claude ставит и настраивает всё сам. Гость может повторить настройку у себя тем же промптом.

Кому пригодится: экспертам и преподавателям, которые показывают работу с ИИ; ведущим рубрик с гостями; всем, у кого созвоны в Контур.Толке — а контента для соцсетей не хватает.

Порядок действий

  1. Посмотрите, что получится — две раскладки, 16:9 и 9:16.
  2. Настройте OBS — отдайте промпт Claude, он поставит и настроит всё сам. 10–15 минут.
  3. Выберите формат — два переключателя в меню OBS.
  4. Пройдите чек-лист перед записью — отметки сохранятся в браузере.
  5. Если что-то пошло не так — раздел 7, там всё, на что уже наступали.
1 Что получится
Горизонталь 16:9YouTube · VK Видео
экран · Claude · вкладка гость вы
Вертикаль 9:16Reels · Shorts
подписи кнопки соцсети экран гость вы
Кружки — это видео с вашей камеры и плитка гостя, вырезанная из окна Контур.Толка. Обе с белой обводкой и лёгкой цветокоррекцией.

Как это устроено

Записывает не Контур.Толк, а OBS Studio — бесплатная программа для записи и трансляций. Толк нужен для самого разговора: гость видит показ экрана как обычно. OBS в это время снимает экран напрямую и берёт видео гостя из окна Толка, поэтому картинка чёткая, а раскладка всегда одна и та же.

Что можно показывать

  • Экран целиком — всё подряд, включая уведомления и другие окна.
  • Окно Claude — только приложение Claude.
  • Окно браузера — одна страница без вкладок и адресной строки, см. раздел 5.
2 Настроить через Claude

Проходить настройку руками не нужно. Промпт ниже описывает готовый результат, порядок работы и грабли, на которые уже наступали. Внутри есть скрипт: он рисует маски-кружки и собирает обе раскладки в файлы, которые OBS принимает через импорт.

Что понадобится

  • Mac и приложение Claude в режиме Cowork с подключённым компьютером — чтобы Claude мог нажимать кнопки в OBS.
  • Открытый Контур.Толк — чтобы Claude мог выбрать его окно.
  • Пять минут вашего внимания: разрешения на камеру, микрофон и запись экрана macOS выдаёт только человек.
Промпт для Claude · целиком
Настрой мне OBS Studio на этом Mac, чтобы записывать созвоны из Контур.Толка как готовые видео для соцсетей. У тебя есть доступ к моему компьютеру: делай сам, спрашивай меня только там, где нужно моё решение или системное разрешение.

## Что должно получиться

Две раскладки кадра:
- Горизонталь 16:9 (1920×1080): экран на весь кадр, внизу справа два кружка по 280 px: я и собеседник из Толка.
- Вертикаль 9:16 (1080×1920): экран сверху (область 1080×675 с отступом 260 px сверху), под ним два кружка по 440 px. Верх ~250 px и низ ~450 px в Reels и Shorts закрывают подписи и кнопки, туда ничего не ставим.

В каждой раскладке одна сцена «Запись с Толком» с источниками:
- «Экран целиком» — захват экрана (включён);
- «Окно Claude» — захват приложения Claude (выключен);
- «Окно браузера» — захват одного окна Chrome, сверху срезано 230 px: вкладка, адресная строка, закладки (выключен);
- «Я — камера» — встроенная камера, фильтры: лёгкая цветокоррекция и маска-круг, поверх белая обводка;
- «Собеседник — окно Толка» — захват окна Толка, фильтры: обрезка плитки собеседника, цветокоррекция, маска-круг, поверх обводка;
- «Звук Толка (собеседник)» — звук приложения Толк, плюс «Мой микрофон».
У экрана, окон и камеры звук выключен, чтобы голос не задваивался.

## Порядок работы

1. Проверь, что это macOS. На Windows остановись и скажи мне: источники там называются иначе, план нужно адаптировать.
2. Установи OBS Studio, если его нет: `brew install --cask obs`, а если Homebrew нет — попроси меня скачать установщик с obsproject.com. Запусти OBS. Если откроется мастер автонастройки, закрой его.
3. Системные разрешения выдаю я. Попроси меня разрешить OBS доступ к камере, микрофону и «Записи экрана и системного звука» (Системные настройки → Конфиденциальность и безопасность). После выдачи записи экрана OBS нужно перезапустить.
4. Создай маски и файлы сцен скриптом ниже. Нужен Python 3 с Pillow: если Pillow нет, поставь `pip3 install --user pillow`. Скрипт кладёт всё в «Фильмы/OBS для Толка».
5. В OBS: меню «Коллекция сцен → Импорт…», добавь оба файла «Запись Толк 16x9.json» и «Запись Толк 9x16.json», нажми «Импорт».
6. Профили: «Профиль → Дублировать» → «Горизонталь 16x9», потом ещё раз → «Вертикаль 9x16». В каждом «Настройки → Видео»: «Разрешение предпросмотра (холст)» и «Разрешение выхода» — 1920x1080 или 1080x1920. «Настройки → Вывод» → «Запись»: «Качество записи» — «Высокое качество, средний размер файла», «Формат записи» — «Гибридный MP4 (.mp4)», «Кодировщик видео» — «Аппаратный (Apple, H.264)». Папка записи — «Фильмы».
7. Выбери устройства в каждой из двух коллекций (переключение: «Профиль» + «Коллекция сцен»). Двойной клик по источнику открывает свойства:
   - «Экран целиком»: «Экран» — встроенный дисплей;
   - «Окно Claude»: «Экран» — встроенный дисплей, «Приложение» — Claude;
   - «Я — камера»: «Устройство» — HD-камера FaceTime, «Предустановка» — High;
   - «Собеседник — окно Толка»: «Способ» — «Захват окна», «Окно» — «[Толк] Толк». Толк должен быть открыт;
   - «Окно браузера» оставь пустым, если я не попросил иначе.
8. Проверь глазами: скриншот превью обеих раскладок, кружки круглые, экран на месте. Сделай тестовую запись на 10 секунд и проверь файл: `ffprobe` должен показать H.264, AAC и нужное разрешение.
9. Скажи мне коротко, что готово, и что остаётся на мне: навести кружок собеседника в живом звонке (фильтр «Обрезать плитку собеседника», поля X, Y, Ширина, Высота; ширина = высота).

## Грабли, на которые уже наступали

- Кружок камеры пустой после переключения коллекции: предустановка 1920x1080 бывает недоступна. Ставь «High».
- «Вставить (дубликат)» для захвата экрана в OBS недоступен: новый источник захвата создаётся заново через «+».
- Скрытое или свёрнутое окно OBS не видит. Для окна браузера включи «Показывать полноэкранные и скрытые окна / приложения» и разверни окно.
- Во время записи пишется окно «Передача». Если включён «Режим студии» и «Передача» пустая, нажми «Переход».
- Толк при показе экрана перестраивает окно, поэтому обрезку кружка собеседника настраивают во время звонка.
- Советуй записывать в наушниках, иначе голос собеседника попадёт в микрофон дважды.

## Скрипт

```python
import json, uuid
from pathlib import Path
from PIL import Image, ImageDraw

D = Path.home() / "Movies" / "OBS для Толка"
D.mkdir(parents=True, exist_ok=True)

# --- маски и обводка ---
def draw(w, h, box, ring=0):
    s = 4
    im = Image.new("RGBA", (w * s, h * s), (0, 0, 0, 0))
    d = ImageDraw.Draw(im)
    b = [v * s for v in box]
    b[2] -= 1; b[3] -= 1
    if ring:
        d.ellipse(b, outline=(255, 255, 255, 255), width=ring * s)
    else:
        d.ellipse(b, fill=(255, 255, 255, 255))
    return im.resize((w, h), Image.LANCZOS)

draw(1000, 1000, (0, 0, 1000, 1000)).save(D / "маска-кружок.png")
draw(1920, 1080, (420, 0, 1500, 1080)).save(D / "маска-кружок-16x9.png")
draw(1000, 1000, (0, 0, 1000, 1000), ring=14).save(D / "обводка-кружка.png")

# --- коллекции сцен ---
P = str(D) + "/"
HK = {"libobs.mute": [], "libobs.unmute": [], "libobs.push-to-mute": [], "libobs.push-to-talk": []}

def src(name, id_, settings, vid=None, filters=None, mixers=255, mute=False):
    s = {"prev_ver": 537001986, "name": name, "uuid": str(uuid.uuid4()), "id": id_,
         "versioned_id": vid or id_, "settings": settings, "mixers": mixers, "sync": 0,
         "flags": 0, "volume": 1.0, "balance": 0.5, "enabled": True, "muted": mute,
         "push-to-mute": False, "push-to-mute-delay": 0, "push-to-talk": False,
         "push-to-talk-delay": 0, "hotkeys": dict(HK), "deinterlace_mode": 0,
         "deinterlace_field_order": 0, "monitoring_type": 0, "private_settings": {}}
    if filters:
        s["filters"] = filters
    return s

def flt(name, id_, settings, vid=None):
    return {"prev_ver": 537001986, "name": name, "uuid": str(uuid.uuid4()), "id": id_,
            "versioned_id": vid or id_, "settings": settings, "enabled": True,
            "mixers": 0, "sync": 0, "flags": 0, "volume": 1.0, "balance": 0.5, "muted": False,
            "hotkeys": {}, "deinterlace_mode": 0, "deinterlace_field_order": 0,
            "monitoring_type": 0, "private_settings": {}}

def look():
    return flt("Лёгкая цветокоррекция", "color_filter",
               {"gamma": -0.08, "brightness": 0.02, "contrast": 0.06, "saturation": 0.10,
                "hue_shift": 0.0, "opacity": 1.0, "color_multiply": 4293850879,
                "color_add": 4278190080}, "color_filter_v2")

def mask(path):
    return flt("Кружок", "mask_filter",
               {"type": "mask_alpha_filter.effect", "image_path": path}, "mask_filter_v2")

def collection(name, W, H, L):
    screen = src("Экран целиком", "screen_capture", {"type": 0, "show_cursor": True, "hide_obs": True}, mute=True)
    claude = src("Окно Claude", "screen_capture", {"type": 2, "application": "com.anthropic.claudefordesktop",
                 "show_cursor": True, "hide_obs": True}, mute=True)
    browser = src("Окно браузера", "screen_capture", {"type": 1, "show_cursor": True}, mute=True)
    cam = src("Я — камера", "macos-avcapture", {"use_preset": True, "preset": "AVCaptureSessionPresetHigh"},
              filters=[look(), mask(P + "маска-кружок-16x9.png")], mute=True)
    talk = src("Собеседник — окно Толка", "screen_capture", {"type": 1, "show_cursor": False},
               filters=[flt("Обрезать плитку собеседника", "crop_filter",
                            {"relative": False, "left": 0, "top": 0, "cx": 600, "cy": 600}),
                        look(), mask(P + "маска-кружок.png")], mute=True)
    talk_audio = src("Звук Толка (собеседник)", "sck_audio_capture", {"type": 1, "application": "kontur.talk"})
    ring_me = src("Обводка — я", "image_source", {"file": P + "обводка-кружка.png"})
    ring_talk = src("Обводка — собеседник", "image_source", {"file": P + "обводка-кружка.png"})
    bg = src("Фон", "color_source", {"color": 4280295456, "width": W, "height": H}, "color_source_v3")

    items, hot = [], {"OBSBasic.SelectScene": []}
    def item(s, x, y, bw, bh, btype=2, crop=False, visible=True, top=0):
        i = len(items) + 1
        hot[f"libobs.show_scene_item.{i}"] = []
        hot[f"libobs.hide_scene_item.{i}"] = []
        items.append({"name": s["name"], "source_uuid": s["uuid"], "visible": visible, "locked": False,
                      "rot": 0.0, "align": 5, "bounds_type": btype, "bounds_align": 0, "bounds_crop": crop,
                      "crop_left": 0, "crop_top": top, "crop_right": 0, "crop_bottom": 0, "id": i,
                      "group_item_backup": False, "pos": {"x": float(x), "y": float(y)},
                      "scale": {"x": 1.0, "y": 1.0}, "bounds": {"x": float(bw), "y": float(bh)},
                      "scale_filter": "disable", "blend_method": "default", "blend_type": "normal",
                      "show_transition": {"duration": 300}, "hide_transition": {"duration": 300},
                      "private_settings": {}})
    item(bg, 0, 0, W, H, btype=1)
    item(screen, *L["screen"])
    item(browser, *L["screen"], visible=False, top=230)  # 230 px сверху: вкладка, адресная строка, закладки
    item(claude, *L["screen"], visible=False)
    item(talk, *L["talk"])
    item(ring_talk, *L["talk"])
    item(cam, *L["me"], btype=3, crop=True)
    item(ring_me, *L["me"])
    item(talk_audio, 0, 0, 0, 0, btype=0)

    scene = src("Запись с Толком", "scene", {"id_counter": len(items), "custom_size": False, "items": items}, mixers=0)
    scene["hotkeys"] = hot
    scene["canvas_uuid"] = "6c69626f-6273-4c00-9d88-c5136d61696e"
    return {"name": name,
            "AuxAudioDevice1": src("Мой микрофон", "coreaudio_input_capture", {"device_id": "default"}),
            "groups": [], "scene_order": [{"name": "Запись с Толком"}],
            "current_scene": "Запись с Толком", "current_program_scene": "Запись с Толком",
            "canvases": [], "current_transition": "Затухание", "transition_duration": 300,
            "transitions": [], "quick_transitions": [], "saved_projectors": [], "preview_locked": False,
            "scaling_enabled": False, "scaling_level": 0, "scaling_off_x": 0.0, "scaling_off_y": 0.0,
            "modules": {}, "resolution": {"x": W, "y": H}, "version": 2,
            "sources": [screen, browser, claude, cam, talk, talk_audio, ring_me, ring_talk, bg, scene]}

d, m, g = 280, 40, 24
h = collection("Запись Толк 16x9", 1920, 1080, {"screen": (0, 0, 1920, 1080),
               "me": (1920 - m - d, 1080 - m - d, d, d), "talk": (1920 - m - 2 * d - g, 1080 - m - d, d, d)})
d, g = 440, 60
x0 = (1080 - 2 * d - g) // 2
v = collection("Запись Толк 9x16", 1080, 1920, {"screen": (0, 260, 1080, 675),
               "talk": (x0, 1010, d, d), "me": (x0 + d + g, 1010, d, d)})
for c in (h, v):
    (D / f"{c['name']}.json").write_text(json.dumps(c, ensure_ascii=False, indent=2), encoding="utf-8")
print("Готово:", D)
```
Как отдать

Скопируйте промпт, вставьте в новый чат Claude и отправьте. Дальше Claude будет спрашивать только про разрешения. В конце он пришлёт скриншоты обеих раскладок и проверит тестовую запись.

Одно остаётся на вас: навести кружок на гостя во время настоящего звонка — шаг 05 в разделе 4.

3 Выбрать формат

В верхнем меню OBS два переключателя. Меняйте оба, иначе размер кадра и раскладка не совпадут.

НужноМеню «Профиль»Меню «Коллекция сцен»
Горизонтальное видеоГоризонталь 16x9Запись Толк 16x9
Вертикальное видеоВертикаль 9x16Запись Толк 9x16

Записи сохраняются в папку «Фильмы» в MP4 — формат, который принимают все соцсети. Имя файла — дата и время записи.

4 Перед каждой записью
  1. Наденьте наушники

    Без них голос гостя из динамиков попадёт в микрофон и прозвучит в записи дважды.

  2. Зайдите во встречу в Контур.Толке

    OBS берёт видео гостя из окна Толка — окно должно быть открыто, не свёрнуто.

  3. Откройте OBS и выберите формат

    Профиль и коллекцию сцен — по таблице в разделе 3.

  4. Проверьте окно Толка

    После перезапуска Толка OBS его теряет. Двойной клик по Собеседник — окно Толка → поле «Окно» → [Толк] Толк → «OK».

  5. Наведите кружок на гостя

    Выделите Собеседник — окно Толка → «Фильтры» → Обрезать плитку собеседника. X и Y — откуда вырезать, Ширина и Высота — размер. Держите их равными, иначе кружок станет овалом.

  6. Выберите, что показывать

    В списке «Источники» глазик включён только у одного из трёх: Экран целиком, Окно Claude или Окно браузера.

  7. Включите показ экрана в Толке

    Если гость должен видеть то же, что и зрители. Толк при этом перестраивает окно — ещё раз проверьте кружок из шага 05.

  8. Сверьте «Передачу» и нажмите «Начать запись»

    Записывается то, что в окне «Передача». Если там пусто — нажмите «Переход». В конце — «Остановить запись».

0 из 8
5 Одна вкладка браузера

В записи будет одна страница — без других вкладок, закладок, уведомлений и остального экрана. В другом окне Chrome в это время можно спокойно работать.

  1. Вынесите вкладку в отдельное окно

    Потяните вкладку мышкой за пределы окна Chrome и отпустите. Держите в этом окне только её: если открыть там другую вкладку, запишется она.

  2. Выберите это окно в OBS

    Двойной клик по Окно браузера → «Способ»: Захват окна → в списке «Окно» — [Google Chrome] название страницы → «OK». Окна нет в списке — включите «Показывать полноэкранные и скрытые окна / приложения».

  3. Переключите глазики

    Включите у «Окно браузера», выключите у «Экран целиком» и «Окно Claude», иначе они будут видны по краям.

  4. Проверьте верх кадра

    Вкладка, адресная строка и закладки уже срезаны: сверху обрезано 230 px. Если что-то видно или срезан кусок страницы — правый клик по Окно браузера → «Преобразовать» → «Изменить преобразование…» → блок «Обрезка», поле «Сверху».

Для гостя

В Толке тоже лучше показывать не весь экран, а только это окно, если Толк даёт выбрать окно. Тогда лишнего не увидит и гость.

6 Внешний вид

Цветокоррекция

На обоих кружках уже стоит фильтр Лёгкая цветокоррекция: чуть светлее, мягче контраст, тёплый оттенок. Отключить — «Фильтры» источника, глазик у фильтра.

Фон гостя

Видео гостя приходит из Контур.Толка уже готовым: OBS его фон не изменит. Если нужен размытый фон, гость включает его у себя.

Положение кружков

Кружки можно перетащить в превью OBS, если они закрывают нужное на экране. Выделите кружок и его обводку с зажатым Cmd и двигайте вместе.

7 Если что-то не так
Что видноЧто сделать

Кружок камеры пустой

После переключения коллекции камера не успевает запуститься.

  1. Двойной клик по Я — камера.
  2. «Устройство» — HD-камера FaceTime, «Предустановка» — High.
  3. «OK», подождать пару секунд.

В кружке гостя не лицо, а кусок окна

Сдвинулась раскладка Толка: начался показ, вошёл участник, окно поменяло размер.

Поправьте X и Y в фильтре обрезки (шаг 05). Кружок совсем пустой — выберите окно заново (шаг 04).

Голос гостя звучит дважды или с эхом

Звук из динамиков попадает в микрофон, или в микшере включён лишний источник.

Наденьте наушники. В «Микшере звука» должны работать только Мой микрофон и Звук Толка (собеседник). У экрана, окон и камеры звук выключен специально — перечёркнутый динамик.

Запись чёрная или не тот кадр

Включён «Режим студии»: слева «Предпросмотр», справа «Передача», записывается «Передача».

Нажмите «Переход» или выключите «Режим студии» кнопкой справа внизу.

Окна браузера нет в списке или в кадре пусто

Chrome свёрнут или скрыт — такое окно OBS не видит.

Разверните окно. В свойствах Окно браузера включите «Показывать полноэкранные и скрытые окна / приложения» и выберите окно заново.

8 Где лежат настройки
Фильмы/OBS для Толка/ Запись Толк 16x9.json ← раскладки: при поломке «Коллекция сцен → Импорт…» Запись Толк 9x16.json маска-кружок.png ← маски и обводка: не переименовывать маска-кружок-16x9.png обводка-кружка.png

Если файлы потерялись, скрипт из промпта в разделе 2 создаст их заново — достаточно попросить Claude выполнить только его.