-
Notifications
You must be signed in to change notification settings - Fork 388
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat: implement captions editor integration #364
base: main
Are you sure you want to change the base?
feat: implement captions editor integration #364
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 <[email protected]>
- 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 <[email protected]>
Done, please review. Was a tough one. |
Signed-off-by: David Anyatonwu <[email protected]>
- 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 <[email protected]>
…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 |
/claim #361
Fixes #361