There should be a slider for adjusting video speed. Just like this one.
Description
Event Timeline
Hi @KunalKatara12, thanks for taking the time to report this and welcome to Wikimedia Phabricator! For future reference, please use the feature request form (linked from the top of the task creation page) to create feature requests. Thanks.
Hello guys. I am new to the phabricator and i would like to start contributing to this project and i would like to start with this issue. Thank you.
Hi and thank you for your interest! Please check thoroughly https://www.mediawiki.org/wiki/New_Developers (and all of its communication section!). The page covers how to get started, assigning tasks, task status, how to find a codebase, how to create patches, where to ask general development questions and where to get help with setup problems, and how to ask good questions. Thanks a lot! :)
I think @KunalKatara12 is still working on this, so this isn't open right now. (Btw, feel free to ping us (me/@Gopavasanth) if you get stuck anywhere @KunalKatara12 )
Hey @KunalKatara12 removing you from the assignee of this ticket. Since there were no updates here.
Feel free to reclaim the task.
Also do ping us if you're stuck anywhere
Hey! I’ve forked the repo and got it running locally. I’m excited about this project and looking forward to contributing. 😊
Plan: Add Speed (Playback Rate) Slider
1. Scope & UI
- Scope: Slider affects both preview and the final exported video.
- Range: 0.1x to 16x with key ticks (1x, 2x, 4x, 16x).
- Audio: Define behavior for speeds <0.5x (e.g., mute or limit).
- UI: Add "Speed" slider control to the settings panel.
- i18n: Add new strings (setting-speed, etc.) to all locales.
2. Client-Side Logic
- State: Add speed (default: 1.0) to the video manipulation state.
- Preview: On slider change, set videoEl.playbackRate = speed for instant feedback in the main player and the Trim component.
3. Backend & FFmpeg Processing
- Payload: Plumb speed from router-controller.js through to the worker.js settings.
- Video Filter: Apply setpts=PTS/speed to the FFmpeg video filter chain.
- Audio Filter: For audio, build a chained atempo filter (using segments between 0.5–2.0) to handle the full speed range.
- Audio Codec: Do not use -c:a copy if atempo or volume filters are active.
4. Validation & Testing
- Safeguards: Clamp the speed value on both the client and server to the allowed range.
- Unit Tests: Verify atempo chain generation logic for various speeds (0.25x, 3.5x, 16x).
- Manual Tests: Confirm preview responsiveness and that the exported file's duration, video, and audio match the selected speed.
