Оцифровка MiniDV-кассет и использование камкордера как веб-камеры на macOS 26 Tahoe — там, где Apple полностью удалила поддержку FireWire.
Пошаговая инструкция, проверенная на живом железе: Sony DCR-PC115E → Apple Thunderbolt-адаптеры → MacBook Air M1 → macOS 26.5.2.
- Что это и зачем
- Результат
- Требования
- Часть 1. Подготовка системы
- Часть 2. Драйвер FireWire
- Часть 3. Оцифровка кассет
- Часть 4. Камера как веб-камера
- Часть 5. Настройки OBS
- Часть 6. Ежедневные сценарии
- Часть 7. Возврат системы в исходное состояние
- Найденные баги драйвера
- Грабли и решения
- Ограничения
В macOS 26 Tahoe Apple удалила стек FireWire целиком. Бандлы IOFireWireFamily.kext, IOFireWireAVC.kext, AppleFWOHCI.kext формально лежат в /System/Library/Extensions, но это пустые скорлупки: кода в boot kernel collection нет, загрузить их невозможно. Адаптер Thunderbolt→FireWire подключается, контроллер виден на шине PCIe — и остаётся без драйвера.
Единственный путь — пользовательский драйвер ASFireWire, реализующий OHCI 1394 на DriverKit. Проект экспериментальный, но на нём удалось получить и побитовую копию ленты, и живое видео.
Инструкция закрывает два сценария:
- Архивная оцифровка — точная копия кассеты в файл
.dvбез потерь, с таймкодом и метаданными. - Веб-камера — камкордер как системная камера в Zoom, FaceTime, Photo Booth, Safari.
Проверочный захват с ленты:
| Показатель | Значение |
|---|---|
| Кадров | 1895 |
| Потеряно кадров | 1 (0,05 %) |
| Переполнений кольца | 0 |
| Размер файла | 272 880 000 байт |
| Делится на 144 000 | без остатка |
| DV-пакетов на кадр | ровно 300 |
| Таймкод ленты | сохранён (00:04:22:08) |
Живой режим: 720×576, 50 обновлений в секунду после деинтерлейса, задержка порядка одного кадра.
| Компонент | Модель | Примечание |
|---|---|---|
| Камкордер | Sony DCR-PC115E (MiniDV, PAL) | Подойдёт любой DV с i.LINK |
| Кабель | FireWire 400 4-pin ↔ FireWire 800 9-pin | 4-pin в камеру |
| Адаптер 1 | Apple Thunderbolt → FireWire (A1463) | Внутри LSI/Agere FW643, PCI 11c1:5901 |
| Адаптер 2 | Apple Thunderbolt 3 (USB-C) → Thunderbolt 2 (A1790) | Однонаправленный |
| Mac | MacBook Air M1 (MacBookAir10,1 / T8103) | Любой Apple Silicon с Thunderbolt |
Порядок сборки жёсткий: A1790 в Mac → в него A1463 → в него FireWire-кабель → в камеру. Наоборот не работает.
| Что | Версия | Зачем |
|---|---|---|
| macOS | 26.x Tahoe | Проверено на 26.5.2 (25F84) |
| Xcode | 26.x | Полноценный, не Command Line Tools |
| Metal Toolchain | отдельный компонент | xcodebuild -downloadComponent MetalToolchain |
| Homebrew | — | Для ffmpeg |
| ffmpeg | 8.x | Проверка и транскод |
| OBS Studio | 32.2.1+ | Виртуальная камера (только для живого режима) |
13 ГБ на час ленты. 60-минутная кассета в SP ≈ 13 ГБ в сыром .dv.
Драйвер собирается локально и подписывается ad-hoc — без нотаризации. Чтобы система его запустила, нужно отключить SIP.
Внимание. Отключение SIP снижает защиту всей системы. Не оставляйте машину в этом состоянии дольше, чем нужно, и не пользуйтесь в это время банковскими приложениями.
- Выключить Mac полностью (не перезагрузка).
- Зажать кнопку питания до надписи «Загрузка параметров запуска» → Параметры → выбрать пользователя → пароль.
- Меню Утилиты → Терминал:
csrutil disableПодтвердить y, ввести пароль администратора, затем:
rebootПосле загрузки:
csrutil status
# System Integrity Protection status: disabled.
sudo systemextensionsctl developer onDeveloper mode нужен только на время установки драйвера. После установки его следует выключить — иначе он ломает виртуальную камеру OBS (см. Грабли).
Подключите оба переходника (камеру пока не нужно):
ioreg -p IOService -w0 | grep -i "11c1"
system_profiler SPThunderboltDataType | head -40Ожидается строка вида pci11c1,5901@0 <class IOPCIDevice ... registered, matched, active> и «Thunderbolt to FireWire Adapter» в списке Thunderbolt-устройств. Если ноды нет — проблема в кабелях или порядке переходников, дальше идти бессмысленно.
В Xcode 26 компилятор Metal вынесен в отдельный загружаемый компонент. Без него не соберётся Syphon (Часть 4), а заодно и ряд других зависимостей:
xcodebuild -downloadComponent MetalToolchainmkdir -p ~/Developer && cd ~/Developer
git clone https://github.com/mrmidi/ASFireWire.git
cd ASFireWire
sudo xcode-select -s /Applications/Xcode.app/Contents/Developer
sudo xcodebuild -license acceptОбязательный шаг для камкордеров. В ASFWDriver/Async/Tx/ResponseSender.cpp скорость исходящих async-ответов зашита константой S400. Камкордеры i.LINK работают только на S100 и физически не принимают такие пакеты — AV/C разваливается, Config ROM читается через раз.
sed -i '' 's/constexpr uint8_t kSpeedS400 = 0x02;/constexpr uint8_t kSpeedS400 = 0x00; \/\/ S100 responses/' \
ASFWDriver/Async/Tx/ResponseSender.cpp
grep -n "kSpeedS400" ASFWDriver/Async/Tx/ResponseSender.cppДолжно быть = 0x00. Подробности — в docs/asfireware-bugs.md.
./build.sh --config Release
./sign.shНикогда не собирайте с флагом
--scsi. При отсутствии SBP-2-устройства на шине это приводит к панике ядра в бут-луп. Для камкордера SCSI не нужен.
Признак успеха — последняя строка:
[OK] Signed .../ASFW.app (ad-hoc, entitlements embedded).
cp -R build/DerivedData/Build/Products/Release/ASFW.app /Applications/
open /Applications/ASFW.appКнопка Install находится в тулбаре окна справа сверху, горячая клавиша ⌘I.
Расширение уйдёт в состояние activated waiting for user — одобрить вручную:
Системные настройки → Основные → Объекты входа и расширения → Расширения драйверов → включить ASFW.
Проверка:
systemextensionsctl list
# net.mrmidi.ASFW.ASFWDriver ... [activated enabled]
ioreg -p IOService -w0 -l -r -n "pci11c1,5901" -d 2 | grep -Ei "ASFWDriver|IOUserServerCDHash"Под PCI-нодой должен появиться дочерний ASFWDriver. IOUserServerCDHash — надёжный способ проверить, что загружена свежая сборка: версия бандла при пересборке не меняется, а хеш меняется всегда.
После успешной установки:
sudo systemextensionsctl developer offДрайвер продолжит работать — проверено. А виртуальная камера OBS без этого режима перестанет плодить дубли расширения.
- Дайте кассетам сутки полежать в комнате, если они хранились в холоде или сырости.
- Перед первой кассетой прогоните чистящую кассету, дальше — каждые 8–10 часов записи.
- Оцифровывайте той же камерой, которой снимали — юстировка головок у каждого аппарата своя.
- Не перематывайте на максимальной скорости до упора: это главный источник зажёвывания.
- Если лента скрипит или осыпается — ловите один чистый проход, второго может не быть.
- Сдвиньте на кассете защиту от записи в положение SAVE.
| Параметр | Значение | Почему |
|---|---|---|
| Питание | Сетевой адаптер | Просадка батареи в середине кассеты = обрыв захвата |
| POWER | VCR | Режим воспроизведения |
MENU → VCR SET → A/V→DV OUT |
OFF | Это сквозной аналог→DV, при чтении ленты не нужен |
MENU → OTHERS → A.SHUT OFF |
NEVER | Иначе камера уснёт на паузе |
| Подключение кабеля | при выключенной камере | Горячее подключение FireWire — способ сжечь порт i.LINK |
caffeinate -d -i # в отдельном окне — не давать Mac уснуть- ASFW → вкладка Controller Status → Connect.
- Вкладка DV Capture.
- Channel =
63(камкордеры вещают широковещательно на 63-м изохронном канале). - Choose Output File… → осмысленное имя, например
2003-08_отпуск_кассета-04.dv. - Start Capture, затем Play — в приложении или пальцем на камере.
Захват идёт в реальном времени: час ленты = час ожидания.
AV/C-команды (Play/Stop/Rewind) до камеры доходят, но приложение может показать «no FCP response» — это известный баг сопоставления транзакций, а не отказ. Смотрите, поехала ли лента.
| Счётчик | Норма | Если не так |
|---|---|---|
| System | PAL (625/50) |
NTSC на европейской ленте — разбираться до продолжения |
| Isoch packets seen | ≈8000/с | 0 → камера не вещает или IR-контекст занят |
| DV source packets | 7500/с (300 на кадр) | Меньше — потери на шине |
| Non-DV packets | 0 | >0 → фильтр CIP не узнаёт поток |
| Frames | +25/с | Отставание = потери |
| Dropped frames | 0, допустимы единицы | Растёт постоянно → приём не справляется |
| Ring overruns | 0 | >0 → приложение не успевает вычитывать кольцо (буфер 1,1 с) |
| Written | ≈3,6 МБ/с | Арифметика: кадры × 144000 = байты |
F=~/Documents/tape01.dv
python3 -c "import os,sys;s=os.path.getsize(sys.argv[1]);print(s,'bytes |',s/144000,'frames | remainder',s%144000)" "$F"
ffprobe -hide_banner "$F"Остаток от деления обязан быть 0 — это главный признак того, что кадры выровнены и файл цел.
ffprobe должен показать dvvideo, yuv420p, 720x576 [SAR 16:15 DAR 4:3], 25 tbr.
Проверить вторую звуковую дорожку (12-битный режим пишет две, вторая обычно пуста):
ffmpeg -hide_banner -i "$F" -map 0:a:0 -af volumedetect -f null - 2>&1 | grep mean_volume
ffmpeg -hide_banner -i "$F" -map 0:a:1 -af volumedetect -f null - 2>&1 | grep mean_volumeУровень около -91 dB = дорожка пустая.
Мастер .dv — точная копия ленты. Его не редактируют, не пережимают и не удаляют; всё остальное пересоздаётся из него.
Монтажный мастер — ProRes HQ, обе звуковые дорожки, поля сохранены:
ffmpeg -i "$F" -map 0 -c:v prores_ks -profile:v 3 -vf "setfield=bff" \
-c:a pcm_s16le tape01_prores.movДля просмотра — деинтерлейс в 50p, квадратный пиксель:
ffmpeg -i "$F" -filter_complex \
"[0:v]bwdif=mode=send_field:parity=bff,scale=768:576:flags=lanczos,setsar=1[v]" \
-map "[v]" -map 0:a:0 -c:v libx264 -crf 18 -preset slow -pix_fmt yuv420p \
-c:a aac -b:a 192k tape01_view.mp4Почему 768, а не 1024. PAL DV имеет неквадратный пиксель. При
SAR 16:15и кадре 4:3 правильный размер в квадратных пикселях — 720 × 16/15 = 768×576. Ширина 1024 применяется только к анаморфному 16:9.
Правило 3-2-1: три копии, на двух разных носителях, одна вне дома. Рядом с каждым мастером держите текстовый файл с заметками: что на ленте, состояние плёнки, число потерянных кадров.
Камера (режим CAMERA, живое DV)
│ изохронный канал 63
▼
ASFWDriver → кольцо в разделяемой памяти
│
▼
DVLivePipeline: сборка кадров → VideoToolbox → bob-деинтерлейс
│ CVPixelBuffer 720×576 BGRA
▼
SyphonOutput → Syphon-сервер «Sony DCR-PC115E»
│ IOSurface, без копирования
▼
OBS: источник «Клиент Syphon» → Start Virtual Camera
│
▼
Zoom / FaceTime / Photo Booth / Safari
Собственное CMIO-расширение камеры на бесплатном Apple-аккаунте активировать невозможно. Причина глубже, чем отсутствие entitlement system-extension.install: камера-расширение обязано зарегистрировать Mach-сервис с именем $(TeamIdentifierPrefix)<bundle-id>, а у ad-hoc-подписи нет ни Team ID, ни app group — регистрировать сервис попросту не в чем.
Обход: не нужно, чтобы ваше расширение было подписано — нужно, чтобы кадры попали в чужое, уже подписанное. OBS Studio с версии 28 публикует виртуальную камеру как Camera Extension на Core Media I/O с подписью OBS Project. Syphon доставляет туда кадры через IOSurface и подписи не требует вообще.
cd ~/Developer
git clone https://github.com/Syphon/Syphon-Framework.git
cd Syphon-Framework
xcodebuild -project Syphon.xcodeproj -scheme Syphon -configuration Release -derivedDataPath ./buildВерсия критична — нужен коммит 71351d4 (PR #103, pixel-format) или новее, иначе клиенты на OBS 32.x получают прозрачный кадр:
git merge-base --is-ancestor 71351d4b484cd2d1917867f7846a5cdca724552d HEAD && echo "фикс есть"Проверка результата:
F=~/Developer/Syphon-Framework/build/Build/Products/Release/Syphon.framework
lipo -info "$F/Versions/A/Syphon" # arm64 x86_64
ls "$F/Versions/A/Modules/" # module.modulemap
codesign -dv "$F" 2>&1 | grep -E "Signature|TeamIdentifier" # adhoc / not setНе перетаскивайте фреймворк в Xcode. Проект ASFW генерируется XcodeGen'ом из
project.yml, иbuild.shвызываетxcodegen generateавтоматически. Любая правка через интерфейс будет стёрта при первой же сборке.
mkdir -p ~/Developer/ASFireWire/Vendor
cp -R ~/Developer/Syphon-Framework/build/Build/Products/Release/Syphon.framework \
~/Developer/ASFireWire/Vendor/В project.yml, в target ASFW, в блок dependencies:
- framework: Vendor/Syphon.framework
embed: true
codeSign: trueLD_RUNPATH_SEARCH_PATHS там уже содержит @executable_path/../Frameworks.
Скопируйте из этого репозитория:
| Файл | Куда | Роль |
|---|---|---|
src/SyphonOutput.swift |
DVLive/ |
Публикация CVPixelBuffer в Syphon через IOSurface |
src/DVSyphonRunner.swift |
DVLive/ |
Независимый от CMIO запуск пайплайна + сторожевой таймер |
Правки в существующие файлы описаны в patches/dvlivepipeline-syphon.md:
DVLive/DVLivePipeline.swift— полеsyphon, создание вstart(), остановка вstop(),syphon?.publish(progressive)вemit()сразу после деинтерлейса.ASFW/ASFWApp.swift— запуск по флагу:
if ProcessInfo.processInfo.arguments.contains("--syphon") {
DVSyphonRunner.shared.start()
}Почему по флагу, а не всегда. Живой пайплайн занимает изохронный контекст приёма. Если бы он стартовал автоматически, оцифровка кассет перестала бы работать — они делят одно кольцо. Живой режим и захват с ленты взаимоисключающи.
Требование к декодеру: буферы должны быть IOSurface-backed и в формате BGRA. В атрибутах VTDecompressionSession:
kCVPixelBufferPixelFormatTypeKey: kCVPixelFormatType_32BGRA,
kCVPixelBufferIOSurfacePropertiesKey: [:] as CFDictionary,
kCVPixelBufferMetalCompatibilityKey: true,Без kCVPixelBufferIOSurfacePropertiesKey публикация молча пропустит все кадры — счётчик framesSkippedNoIOSurface это покажет.
cd ~/Developer/ASFireWire
xcodegen generate
./build.sh --config Release && ./sign.sh
rm -rf /Applications/ASFW.app
cp -R build/DerivedData/Build/Products/Release/ASFW.app /Applications/Драйвер переустанавливать не нужно — менялась только Swift-часть.
| Параметр | Значение | Почему |
|---|---|---|
| Кассета | вынуть | С лентой камера через несколько минут расцепляет барабан головок и уходит в сон. Это защита механики, отключить нельзя |
| POWER | CAMERA | Живой сигнал с матрицы |
| Питание | Сетевой адаптер | |
MENU → OTHERS → DEMO MODE |
OFF | Без кассеты камера через 10 минут запускает демо-ролик и подмешивает эффекты прямо в выход i.LINK. Пункт доступен только когда лента вынута |
MENU → OTHERS → A.SHUT OFF |
NEVER | |
| Крышка объектива | снять |
Один раз: запустить OBS → Start Virtual Camera → согласиться на установку расширения → одобрить в Системные настройки → Основные → Объекты входа и расширения → Расширения камеры.
systemextensionsctl list | grep -i obs
# нужна РОВНО ОДНА строка [activated enabled]Если строк две (одна terminated waiting to uninstall on reboot) — см. Грабли.
pkill -x ASFW; sleep 2
open -a /Applications/ASFW.app --args --syphon
sleep 3
log show --last 1m --info --style compact --predicate 'category == "SyphonRunner"' | tail -3
# Syphon runner started on channel 63Затем в OBS: Источники → + → Клиент Syphon → в свойствах выбрать Sony DCR-PC115E → Start Virtual Camera.
В нужном приложении выбрать камеру OBS Virtual Camera.
Правильные настройки важнее выбора кодека: при холсте 1920×1080 SD-картинка растягивается в FullHD и записывается размытый апскейл.
| Параметр | Значение |
|---|---|
| Базовое разрешение (холст) | 768×576 |
| Выходное разрешение | 768×576 (равно базовому — тогда пересчёта нет вовсе) |
| Фильтр масштабирования | Ланцоша |
| FPS | 50 (bob-деинтерлейс даёт 50 обновлений в секунду) |
768 — это кадр 720×576 в квадратных пикселях при соотношении 4:3.
В сцене: правый клик по источнику → Трансформировать → Сбросить трансформацию. Кадр должен занять холст пиксель в пиксель.
| Параметр | Значение |
|---|---|
| Режим вывода | Расширенный |
| Тип | Обычный |
| Формат записи | Гибридный MOV (.mov) — переживает падение OBS |
| Генерировать имя файла без пробела | включить |
| Кодировщик видео | свой, не «использовать кодировщик трансляции» |
| Кодировщик звука | CoreAudio AAC |
Частая ошибка. «Использовать кодировщик трансляции» означает битрейт стрима — около 2500 Кбит/с. Для 50 кадров в секунду этого мало, картинка в файле заметно хуже превью.
Выбор кодека:
| Задача | Кодировщик | Настройки | Место |
|---|---|---|---|
| Обычная запись | Apple VT H.264 (аппаратный) | CQP/CRF 18–20, или CBR 20000 Кбит/с | 5–8 ГБ/час |
| Материал в монтаж | Apple ProRes 422 | — | ~36 ГБ/час |
ProRes 422 HQ избыточен для SD (~54 ГБ/час), 4444 бессмыслен — источник 4:2:0 без альфа-канала.
- Цветовой диапазон: Ограниченный. DV-материал изначально в ограниченном диапазоне; при полном тени зальются в чёрный, а света выбьются.
Syphon передаёт только видео. Звук с камкордера в OBS не попадает — он остаётся в DIF-блоках и отбрасывается. Всё, что запишет OBS, — микрофон Mac или системный звук.
Чтобы получить звук с камеры, нужно извлекать PCM из тех же DIF-чанков и отдавать в виртуальное аудиоустройство (например, BlackHole). В текущей версии это не реализовано.
caffeinate -d -i # отдельное окно- Камера: сеть, кассета внутри, VCR,
A/V→DV OUT = OFF. - Запустить ASFW без флага:
open -a /Applications/ASFW.app - Controller Status → Connect → вкладка DV Capture → канал 63 → выбрать файл → Start Capture → Play.
- По окончании — Stop Capture (только после этого файл закрыт и валиден).
- Проверить кратность 144 000.
- Камера: сеть, кассету вынуть, CAMERA,
DEMO MODE = OFF, крышку снять. -
pkill -x ASFW; sleep 2 open -a /Applications/ASFW.app --args --syphon - OBS → источник «Клиент Syphon» → Start Virtual Camera. Окно можно свернуть.
- В приложении выбрать OBS Virtual Camera.
Быстрый запуск OBS сразу с камерой:
open -a OBS --args --startvirtualcamПорядок обратный установке, нарушать нельзя:
systemextensionsctl uninstall - net.mrmidi.ASFW.ASFWDriver
systemextensionsctl list # убедиться, что записи нет
sudo systemextensionsctl developer off # если ещё включёнИ только потом Recovery → csrutil enable → перезагрузка.
С включённым SIP система откажется запускать ad-hoc-подписанный dext. Если расширение осталось установленным, при каждом старте остаётся осиротевший kernel-stub.
Аварийный выход: Recovery →
csrutil disable→ загрузиться → снять расширение → Recovery →csrutil enable.
Подробный разбор с трассами транзакций — в docs/asfireware-bugs.md.
| # | Баг | Статус |
|---|---|---|
| 1 | Скорость исходящих async-ответов зашита константой S400 → S100-устройства не отвечают | Исправлено патчем из Части 2.3 |
| 2 | AT-completion не сопоставляется для блочных записей → все AV/C-команды «падают», хотя на проводе проходят | Открыт |
| 3 | ARPacketView хранит только младшие 16 бит xferStatus → скорость приёма (биты 21–23) теряется |
Открыт, блокирует правильный фикс бага 1 |
Наблюдение: Gap Count: 44 при оптимальном 5, оптимизация подавлена (Role Mode: Client Only). На двухузловой шине это раздутые арбитражные паузы — на захват не повлияло, но при более загруженной шине стоит вернуться.
| Симптом | Причина | Решение |
|---|---|---|
cannot execute tool 'metal' |
В Xcode 26 Metal-тулчейн — отдельный компонент | xcodebuild -downloadComponent MetalToolchain |
Kext-ы FireWire есть в /System/Library/Extensions, но не грузятся |
На Apple Silicon код живёт в boot kernel collection, бандлы — пустые скорлупки | Проверять через kmutil inspect, а не find |
AppleFireStormErrorHandler в выводе kextstat | grep fire |
Обработчик ошибок ядер M1 | К FireWire отношения не имеет |
Расширение висит terminating for uninstall but still running |
Старая копия держит слот | Перезагрузка |
| Непонятно, загрузилась ли новая сборка | Версия бандла не меняется | Сверять IOUserServerCDHash в ioreg |
| Правки в Xcode исчезают после сборки | Проект генерируется XcodeGen'ом | Править project.yml, затем xcodegen generate |
initializer for conditional binding must have Optional type |
SyphonMetalServer неопционален при мосте из ObjC |
Убрать guard let |
Флаг --syphon не срабатывает |
open --args не передаёт аргументы уже запущенному приложению |
pkill -x ASFW перед open |
| Лог пустой, хотя код работает | log.info скрыт по умолчанию |
Добавить --info к log show |
| Картинка вверх ногами | Разные начала координат в OpenGL и Metal | flipped: true в publishFrameTexture |
| В OBS источник есть, кадр прозрачный | Баг Syphon Framework | Обновить Syphon до 71351d4+ и пересобрать |
| «Не удалось найти системный процесс виртуальной камеры» | Developer mode заставляет OBS переустанавливать расширение при каждом запуске, ассистент CMIO застревает между дублями | sudo systemextensionsctl developer off → systemextensionsctl uninstall 2MMRE5MTB8 com.obsproject.obs-studio.mac-camera-extension → перезагрузка → чистая установка |
framesSkippedNoIOSurface растёт |
Буферы не IOSurface-backed | Добавить kCVPixelBufferIOSurfacePropertiesKey в атрибуты декодера |
| Захват с ленты перестал работать | Живой пайплайн держит изохронный контекст | Остановить живой режим, перезапустить ASFW без флага |
| Камера засыпает в живом режиме | Защита барабана головок при вставленной ленте | Вынуть кассету |
| Сами по себе накладываются эффекты | DEMO MODE камеры (запускается без кассеты через 10 мин) | MENU → OTHERS → DEMO MODE → OFF |
| Запись хуже, чем превью | Запись использует битрейт стрима (~2500 Кбит/с) и/или холст 1920×1080 | Свой кодировщик + холст 768×576 |
- SIP должен быть выключен постоянно. Драйвер подписан ad-hoc; чтобы работать с включённым SIP, нужны entitlements
com.apple.developer.driverkit.transport.pci, которые Apple выдаёт индивидуально по запросу с платным Developer-аккаунтом. - Живой режим требует запущенного OBS. Убрать его из цепочки можно только собственным CMIO-расширением, а для этого нужен платный Apple Developer Program.
- Звук в живом режиме не передаётся. Syphon — только видео.
- Живой режим и оцифровка кассет взаимоисключающи — общий изохронный контекст.
- AV/C-управление формально не работает (баг 2), хотя команды до камеры доходят.
- Isochronous Receive в ASFireWire помечен как экспериментальный. На проверочном захвате — 1 потерянный кадр из 1896, но гарантий проект не даёт. Ценные ленты стоит прогонять с контролем счётчиков.
- mrmidi/ASFireWire — драйвер, без которого ничего бы не было.
- Syphon — межпроцессный обмен кадрами.
- OBS Studio — подписанная виртуальная камера.
- DVRescue — методика архивной оцифровки DV.
MIT — см. LICENSE.
Документация описывает конкретную конфигурацию по состоянию на июль 2026 года. ASFireWire активно развивается: перед началом сверьтесь с актуальным состоянием репозитория — баг со скоростью ответов может быть уже исправлен в upstream.