Repository navigation
Export: duration sources, audio length, scene/BPM metadata, clean cancel (#523, #524, #528, #532) - #762
Conversation
|
CaYaDraft — pull request Summary Files README.md (modified, +5/-3) README.tr.md (modified, +5/-3) ROADMAP.md (modified, +31/-2) src/admin/admin.js (modified, +62/-3)
src/exporter/exporter.js (modified, +6/-1)
Note Stopping here. I will not merge, push, or change this pull request until you ask.
|
Closes #523, #524, #528 and #532.
Duration (#523)
ceil(seconds × fps)frames, and frames past the end of the audio are drawn with silence.Audio follows the video (#524)
apadand re-encoded, because a copied stream cannot be filtered.-t. MP3 and AAC sources are still copied.Metadata (#528)
commentcarriesScene: … · BPM: …next to title, artist and album. MP4 and MOV do not write custom keys, andcommentis read everywhere.sceneNameis optional and defaults to the active scene.durationis a new argument.No partial file at the final path (#532)
name.partial.ext(folder.partialfor a sequence) and is renamed only after ffmpeg exits 0. If the rename fails, the job reports an error and names the partial file instead of losing it.shutdownCleanupdid not touch the export, so ffmpeg could keep running after the app closed.Rendering [NVIDIA NVENC]… 25% (300 / 1200 frames) · 112 fps · 1:05 leftin English. The clock starts at the first frame.Measured in the app
5 s of audio, isolated profile, run through
--bench-export:Scene: KulüpBPM: 120.partial.partial, no ffmpeg process leftA 6 s PNG sequence over 5 s of audio wrote 180 frames into the final folder.
Verification
npm test: 3132/3132.tests/export-job.test.jscovers duration resolution, the pad/trim/copy rules, metadata, file names, the partial path, ETA, and the main, panel and MCP wiring.tests/export-quit.test.jsnow checks the partial and promote path, and that quitting stops the export.--smoke --smoke-exportwith an isolated profile: PASS, with no.partialleft behind.