diff --git a/BACKLOG.md b/BACKLOG.md index 07a84cf..7852fea 100644 --- a/BACKLOG.md +++ b/BACKLOG.md @@ -119,6 +119,35 @@ NVENC, если он есть). Это разрозненно и не даёт неподъёмным. Пока цифры замеряны только на одной машине, у человека должна быть возможность выключить любую из этих трат. +## Сборка потоком: чего она не даёт + +Ролик собирается потоком — куски идут сразу в готовый файл, кэш не +создаётся. За это заплачено тремя вещами, и все три известны заранее. + +**Продолжение стоит места.** Дописать в конец существующего MKV нельзя: +Matroska этого не даёт. Продолжение всегда пишется в новый файл, куда +сперва переливается целая часть старого, так что на диске в этот момент +лежат оба — места нужно вдвое больше готового ролика. Обойти это можно +только разбором и правкой самого контейнера, а это уже своя маленькая +библиотека Matroska. + +**Отступ назад — до целого куска.** Продолжают не с последнего +записанного кадра, а с границы последнего целого куска: кусок — это +неделимая единица, у него свои метки времени и своё число кадров. На +замерах терялось от нуля до нескольких секунд работы. Мельче отступать +можно было бы, храня рядом с файлом карту стыков, но выигрыш в секундах +не стоит нового файла, который надо держать в согласии с роликом. + +**MP4 продолжать нельзя вовсе.** Оглавление пишется в конец, оборванный +файл не открывается — `moov atom not found`. Программа предупреждает об +этом до начала сборки и предлагает MKV. Теоретически недописанный MP4 +можно восстановить, собрав оглавление по кускам самому (так делают +untrunc и подобные), но это отдельная задача другого размера. + +**Потоком идёт не всё.** MPEG-TS несёт не любой кодек, и пересборка +всего ролика под площадку требует списка кусков. В этих случаях сборка +идёт по-старому, через кэш — со всеми его 110 ГБ на часе материала. + ## Мелочи, до которых не дошли руки **Вид дорожки не виден в её заголовке.** Дорожки картинки, звука и текста