Куски видео вырезаются и склеиваются копированием потока: сборка ролика занимает время копирования файла, а не время рендера. Композитинга нет принципиально — при перекрытии побеждает клип с верхней дорожки целиком, и картинкой, и звуком. Именно это ограничение и делает сборку копированием возможной. Что внутри: - монтажный стол со своей отрисовкой: дорожки, масштаб, прилипание, схлопывание, громкость на клипе; - предпросмотр прямо с монтажа через libmpv и виртуальный список кусков, без промежуточных файлов; - сборка через ffmpeg с точными резами: перекодируется только огрызок от реза до ближайшего опорного кадра, остальное копируется; - разбор заголовка MP4 для поиска опорных кадров — в 500 раз быстрее опроса ffprobe; - перепаковка контейнеров, кадрирование и поворот, сведения о проекте; - свои цвета всего окна: системные элементы под Windows цвет не берут, поэтому кнопки, полоса меню, журнал и полосы прокрутки нарисованы сами; - окно зависимостей: недостающие ffmpeg, ffprobe и libmpv скачиваются с официальных источников; - кросс-сборка под Windows и работа под Wine. Первый коммит: до этого история не велась.
24 lines
717 B
Bash
Executable file
24 lines
717 B
Bash
Executable file
#!/bin/sh
|
||
# Сборка консольного инструмента проверок.
|
||
#
|
||
# Отдельно от основного проекта: nlvetool не тянет LCL и его виджеты,
|
||
# ему нужны только модули логики и LazUtils ради поиска ffmpeg в PATH.
|
||
|
||
set -e
|
||
|
||
FPC=/home/chaiman/fpcupdeluxe/fpc/bin/x86_64-linux/fpc.sh
|
||
LAZ=/home/chaiman/fpcupdeluxe/lazarus
|
||
HERE=$(cd "$(dirname "$0")" && pwd)
|
||
ROOT=$(dirname "$HERE")
|
||
|
||
mkdir -p "$HERE/lib"
|
||
|
||
"$FPC" \
|
||
-FU"$HERE/lib" \
|
||
-Fu"$ROOT/src" \
|
||
-Fu"$LAZ/components/lazutils/lib/x86_64-linux" \
|
||
-Fi"$LAZ/components/lazutils" \
|
||
-o"$HERE/nlvetool" \
|
||
"$HERE/nlvetool.lpr"
|
||
|
||
echo "готово: $HERE/nlvetool"
|