nlve/nlve.lpi

246 lines
7.2 KiB
Text
Raw Permalink Normal View History

Нелинейный видеоредактор без перекодирования Куски видео вырезаются и склеиваются копированием потока: сборка ролика занимает время копирования файла, а не время рендера. Композитинга нет принципиально — при перекрытии побеждает клип с верхней дорожки целиком, и картинкой, и звуком. Именно это ограничение и делает сборку копированием возможной. Что внутри: - монтажный стол со своей отрисовкой: дорожки, масштаб, прилипание, схлопывание, громкость на клипе; - предпросмотр прямо с монтажа через libmpv и виртуальный список кусков, без промежуточных файлов; - сборка через ffmpeg с точными резами: перекодируется только огрызок от реза до ближайшего опорного кадра, остальное копируется; - разбор заголовка MP4 для поиска опорных кадров — в 500 раз быстрее опроса ffprobe; - перепаковка контейнеров, кадрирование и поворот, сведения о проекте; - свои цвета всего окна: системные элементы под Windows цвет не берут, поэтому кнопки, полоса меню, журнал и полосы прокрутки нарисованы сами; - окно зависимостей: недостающие ffmpeg, ffprobe и libmpv скачиваются с официальных источников; - кросс-сборка под Windows и работа под Wine. Первый коммит: до этого история не велась.
2026-08-19 18:36:16 +03:00
<?xml version="1.0" encoding="UTF-8"?>
<CONFIG>
<ProjectOptions>
<Version Value="12"/>
<General>
<Flags>
<CompatibilityMode Value="True"/>
</Flags>
<SessionStorage Value="InProjectDir"/>
<Title Value="nlve"/>
<Scaled Value="True"/>
<ResourceType Value="res"/>
<UseXPManifest Value="True"/>
<XPManifest>
<DpiAware Value="True"/>
</XPManifest>
</General>
<BuildModes Count="1">
<Item1 Name="Default" Default="True"/>
</BuildModes>
<PublishOptions>
<Version Value="2"/>
<UseFileFilters Value="True"/>
</PublishOptions>
<RunParams>
<FormatVersion Value="2"/>
</RunParams>
<RequiredPackages Count="1">
<Item1>
<PackageName Value="LCL"/>
</Item1>
</RequiredPackages>
<Units Count="31">
<Unit0>
<Filename Value="nlve.lpr"/>
<IsPartOfProject Value="True"/>
</Unit0>
<Unit1>
<Filename Value="src/uAppTypes.pas"/>
<IsPartOfProject Value="True"/>
<UnitName Value="uAppTypes"/>
</Unit1>
<Unit2>
<Filename Value="src/uDeps.pas"/>
<IsPartOfProject Value="True"/>
<UnitName Value="uDeps"/>
</Unit2>
<Unit3>
<Filename Value="src/uDepsForm.pas"/>
<IsPartOfProject Value="True"/>
<ComponentName Value="DepsForm"/>
<HasResources Value="True"/>
<ResourceBaseClass Value="Form"/>
<UnitName Value="uDepsForm"/>
</Unit3>
<Unit4>
<Filename Value="src/uDownload.pas"/>
<IsPartOfProject Value="True"/>
<UnitName Value="uDownload"/>
</Unit4>
<Unit5>
<Filename Value="src/uEdl.pas"/>
<IsPartOfProject Value="True"/>
<UnitName Value="uEdl"/>
</Unit5>
<Unit6>
<Filename Value="src/uExport.pas"/>
<IsPartOfProject Value="True"/>
<UnitName Value="uExport"/>
</Unit6>
<Unit7>
<Filename Value="src/uFfmpegCmd.pas"/>
<IsPartOfProject Value="True"/>
<UnitName Value="uFfmpegCmd"/>
</Unit7>
<Unit8>
<Filename Value="src/uFfmpegJob.pas"/>
<IsPartOfProject Value="True"/>
<UnitName Value="uFfmpegJob"/>
</Unit8>
<Unit9>
<Filename Value="src/uFlatten.pas"/>
<IsPartOfProject Value="True"/>
<UnitName Value="uFlatten"/>
</Unit9>
<Unit10>
<Filename Value="src/uGenerate.pas"/>
<IsPartOfProject Value="True"/>
<UnitName Value="uGenerate"/>
</Unit10>
<Unit11>
<Filename Value="src/uKeyframeIndex.pas"/>
<IsPartOfProject Value="True"/>
<UnitName Value="uKeyframeIndex"/>
</Unit11>
<Unit12>
<Filename Value="src/uLogView.pas"/>
<IsPartOfProject Value="True"/>
<UnitName Value="uLogView"/>
</Unit12>
<Unit13>
<Filename Value="src/uMainForm.pas"/>
<IsPartOfProject Value="True"/>
<ComponentName Value="MainForm"/>
<HasResources Value="True"/>
<ResourceBaseClass Value="Form"/>
<UnitName Value="uMainForm"/>
</Unit13>
<Unit14>
<Filename Value="src/uMediaProbe.pas"/>
<IsPartOfProject Value="True"/>
<UnitName Value="uMediaProbe"/>
</Unit14>
<Unit15>
<Filename Value="src/uMismatchForm.pas"/>
<IsPartOfProject Value="True"/>
<ComponentName Value="MismatchForm"/>
<HasResources Value="True"/>
<ResourceBaseClass Value="Form"/>
<UnitName Value="uMismatchForm"/>
</Unit15>
<Unit16>
<Filename Value="src/uMpvLib.pas"/>
<IsPartOfProject Value="True"/>
<UnitName Value="uMpvLib"/>
</Unit16>
<Unit17>
<Filename Value="src/uMpvPlayer.pas"/>
<IsPartOfProject Value="True"/>
<UnitName Value="uMpvPlayer"/>
</Unit17>
<Unit18>
<Filename Value="src/uPanCropForm.pas"/>
<IsPartOfProject Value="True"/>
<ComponentName Value="PanCropForm"/>
<HasResources Value="True"/>
<ResourceBaseClass Value="Form"/>
<UnitName Value="uPanCropForm"/>
</Unit18>
<Unit19>
<Filename Value="src/uProcRunner.pas"/>
<IsPartOfProject Value="True"/>
<UnitName Value="uProcRunner"/>
</Unit19>
<Unit20>
<Filename Value="src/uProgressForm.pas"/>
<IsPartOfProject Value="True"/>
<ComponentName Value="ProgressForm"/>
<HasResources Value="True"/>
<ResourceBaseClass Value="Form"/>
<UnitName Value="uProgressForm"/>
</Unit20>
<Unit21>
<Filename Value="src/uProject.pas"/>
<IsPartOfProject Value="True"/>
<UnitName Value="uProject"/>
</Unit21>
<Unit22>
<Filename Value="src/uProjectInfoForm.pas"/>
<IsPartOfProject Value="True"/>
<ComponentName Value="ProjectInfoForm"/>
<HasResources Value="True"/>
<ResourceBaseClass Value="Form"/>
<UnitName Value="uProjectInfoForm"/>
</Unit22>
<Unit23>
<Filename Value="src/uRemuxForm.pas"/>
<IsPartOfProject Value="True"/>
<ComponentName Value="RemuxForm"/>
<HasResources Value="True"/>
<ResourceBaseClass Value="Form"/>
<UnitName Value="uRemuxForm"/>
</Unit23>
<Unit24>
<Filename Value="src/uRemuxQueue.pas"/>
<IsPartOfProject Value="True"/>
<UnitName Value="uRemuxQueue"/>
</Unit24>
<Unit25>
<Filename Value="src/uSettings.pas"/>
<IsPartOfProject Value="True"/>
<UnitName Value="uSettings"/>
</Unit25>
<Unit26>
<Filename Value="src/uTheme.pas"/>
<IsPartOfProject Value="True"/>
<UnitName Value="uTheme"/>
</Unit26>
<Unit27>
<Filename Value="src/uThemedScroll.pas"/>
<IsPartOfProject Value="True"/>
<UnitName Value="uThemedScroll"/>
</Unit27>
<Unit28>
<Filename Value="src/uThumbs.pas"/>
<IsPartOfProject Value="True"/>
<UnitName Value="uThumbs"/>
</Unit28>
<Unit29>
<Filename Value="src/uTimelineCtrl.pas"/>
<IsPartOfProject Value="True"/>
<UnitName Value="uTimelineCtrl"/>
</Unit29>
<Unit30>
<Filename Value="src/uTransform.pas"/>
<IsPartOfProject Value="True"/>
<UnitName Value="uTransform"/>
</Unit30>
</Units>
</ProjectOptions>
<CompilerOptions>
<Version Value="11"/>
<Target>
<Filename Value="nlve"/>
</Target>
<SearchPaths>
<IncludeFiles Value="$(ProjOutDir)"/>
<OtherUnitFiles Value="src"/>
<UnitOutputDirectory Value="lib/$(TargetCPU)-$(TargetOS)"/>
</SearchPaths>
<Linking>
<Debugging>
<DebugInfoType Value="dsDwarf3"/>
<UseExternalDbgSyms Value="True"/>
</Debugging>
<Options>
<Win32>
<GraphicApplication Value="True"/>
</Win32>
</Options>
</Linking>
</CompilerOptions>
<Debugging>
<Exceptions Count="3">
<Item1>
<Name Value="EAbort"/>
</Item1>
<Item2>
<Name Value="ECodetoolError"/>
</Item2>
<Item3>
<Name Value="EFOpenError"/>
</Item3>
</Exceptions>
</Debugging>
</CONFIG>