feat: implement captions editor integration#364
feat: implement captions editor integration#364Brendonovich merged 17 commits intoCapSoftware:mainfrom
Conversation
- Add CaptionsTab component with comprehensive caption management UI - Implement caption store with state management using SolidJS - Add model download and management functionality - Integrate FFmpeg subtitle support - Add export settings with subtitle toggle - Implement real-time caption display in video player - Add caption styling options (font, size, color, position) - Add caption segments management with timestamps - Implement localStorage backup for captions data
|
hey @onyedikachi-david - thanks so much for the submission. it doesn't seem to load for me, I get: Also, we need the captions to be baked into the video frames that come from the renderer. Would you be able to check? |
|
Was the error during the export |
|
@onyedikachi-david it was on startup of the desktop app |
I am assuming this, not sure: let status = Command::new("ffmpeg")
.args([
"-i", &output_path.to_string_lossy(),
"-i", &srt_path.to_string_lossy(),
"-c:v", "copy",
"-c:a", "copy",
"-c:s", "mov_text",
"-metadata:s:s:0", "language=eng",
"-movflags", "+faststart",
"-map", "0:v",
"-map", "0:a",
"-map", "1:0",
"-y",
&temp_output.to_string_lossy(),
])
.status()
.map_err(|e| {
tracing::error!("FFmpeg command failed: {}", e);
format!("Failed to run FFmpeg: {}", e)
})?; |
|
right now you are:
we need the subtitles to be rendered in the GPU as part of the actual frame. Not a subtitle track, but a physical implementation in the frame. This would allow us to change the text size, text appearance etc in the editor. You can use a crate like glyphon to help with this. |
Signed-off-by: David Anyatonwu <davidanyatonwu@gmail.com>
- Refactor CaptionsTab component to improve state management and UI responsiveness. - Introduce new caption settings and segment management features. - Update caption rendering logic to ensure proper display and interaction. - Remove deprecated code related to captions synchronization with project settings. - Enhance user experience with improved caption styling options and segment operations. Signed-off-by: David Anyatonwu <davidanyatonwu@gmail.com>
Done, please review. Was a tough one. |
- Update default font in captions settings to "System Sans-Serif". - Introduce new RgbInput component for color selection in caption settings. - Implement scroll position preservation in the CaptionsTab for better user experience. - Refactor caption settings management to improve synchronization with project data. - Enhance UI for caption segments, including improved layout and interaction for adding and editing segments. Signed-off-by: David Anyatonwu <davidanyatonwu@gmail.com>
…se of std::process::Command to call ffprobe and ffmpeg
Screen.Recording.2025-03-19.at.10.46.32.mp4@richiemcilroy Here is a demo |
Signed-off-by: David Anyatonwu <davidanyatonwu@gmail.com>
- Removed unused canvasRef and related createEffect from Player component. - Updated Display type definition in tauri utility to improve type clarity. Signed-off-by: David Anyatonwu <davidanyatonwu@gmail.com>
|
Hi, @richiemcilroy, have you had time to take a look. |
|
What's up with this @Brendonovich |
|
Apologies for not looking at this for a while. I'm going to merge so we can start playing with the model downloading and transcription. Got a few things I want to do before releasing this as a feature including redoing our rendering backend. |
It's all good. |
|
Would love to help, paid or not, but I see that most issues/ are self assigned, do you allow contributions to such issues @Brendonovich |

/claim #361
Fixes #361