Skip to content

[TEST] Video to GIF tool (scrubber, frame capture, conversion) #48

Description

@jbaddley

Route

/video-to-gif

Scenarios to test

Upload

  • Dropzone accepts .mp4, .webm, .mov, .avi, .mkv, .ogg, .m4v
  • Uploading an MP4 loads the video and renders the preview player
  • A file type error is shown when a non-video file is dropped
  • The video player shows the first frame after metadata loads

Video preview & playback

  • Play/pause button is visible in the preview area
  • Clicking play starts the video
  • Clicking pause stops it
  • The current-time overlay (e.g. 0:02.3) updates as the video plays
  • Video auto-pauses when playback reaches the clip end time

Timeline scrubber

  • The timeline track is visible below the video
  • The playhead (white vertical bar) is visible and moves as the video plays
  • Clicking on the track (outside handles) seeks the video to that position
  • Start handle (left) is draggable; dragging it moves the start time
  • End handle (right) is draggable; dragging it adjusts the clip duration
  • Dragging the selection band (between handles) moves both start and end together
  • Start time and end time labels below the handles update while dragging
  • The clip duration badge updates when handles are dragged
  • Dragging the end handle past the max duration (30s) is clamped

Start / Duration inputs

  • Start time input reflects the current start handle position
  • Changing the start time input seeks the video and moves the handle
  • Duration input reflects the clip length
  • Changing the duration input moves the end handle

Frame capture

  • "Save Frame As" section is visible below the video
  • Format selector shows PNG, JPEG, WebP
  • Clicking "Save Frame" triggers a download named with the timestamp
  • Downloaded PNG contains the actual video frame (not blank)
  • Frame capture works for JPEG and WebP formats too

Settings (FPS, width)

  • Frame rate selector is visible (6, 10, 15, 24 FPS)
  • Output width selector is visible (320, 480, 640, 800px)
  • Changing these does not crash the UI

GIF conversion

  • "Convert to GIF" button is present when a video is loaded
  • Clicking it shows a "Loading ffmpeg…" then "Converting… X%" progress
  • On completion, the GIF preview is displayed below the controls
  • "Download GIF (X KB)" button appears and triggers a .gif download
  • The downloaded file is a valid animated GIF

Change file

  • "Change file" button returns the tool to the dropzone state

Acceptance criteria

  • Timeline drag interactions registered by Playwright pointer events
  • Frame capture downloads a valid image at the current playhead position
  • GIF conversion completes and downloads for a short (≤5s) test clip

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions