Честное предупреждение о контейнере и отметка недописанной сборки

У MP4 два неудобства, о которых человек узнавал поздно: прерванную
сборку в нём продолжить нельзя вовсе, а перекодированный стык точного
реза воспроизводится правильно не везде. Теперь об обоих говорится до
начала работы, одним окном с кнопками «Собрать в MKV», «Всё равно mp4»,
«Не собирать».

Признак точного реза заодно исправлен: смотрели на отметку edPrecise,
а резы стали точными всегда — предупреждение молчало. Теперь признак —
клип, начинающийся не с начала файла.

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

Ещё: на каждом стыке кусков приёмник писал «Packet corrupt», по паре
строк на кусок. Данные целы, но журнал забивался, и настоящую ошибку в
нём было не найти. Лечится ключом -mpegts_flags +initial_discontinuity
у отправителя: сверено по кадрам и по md5, результат тот же.
This commit is contained in:
4aiman 2026-09-30 16:48:31 +03:00
commit f841ed79ec
4 changed files with 170 additions and 11 deletions

View file

@ -834,6 +834,14 @@ Wine с новой библиотекой не грузилось ничего.
`TThread`, `Name` и `Caption` — у формы. Компилятор ловит это как
«Duplicate identifier», но причину не объясняет.
**Стык кусков в потоке выглядит как порча.** Каждый кусок — это
отдельный поток MPEG-TS со своим счётчиком непрерывности, и на стыке
приёмник пишет «Packet corrupt», по паре строк на кусок. Данные при этом
целы, но журнал сборки забивается жалобами, из-за которых не найти
настоящую ошибку. Лечится ключом `-mpegts_flags +initial_discontinuity`
у отправителя: он помечает начало куска как разрыв, жалобы исчезают, а
результат тот же — сверено по кадрам и по md5.
**Приёмник двигает весь ролик.** `-avoid_negative_ts make_zero` у
приёмника сдвигает поток так, чтобы самая ранняя метка декодирования
стала нулём, — а у первого куска она уходит в минус на задержку