Skip to content
intermediatevideo

TRECVID Shot Boundary Detection

Detect shot boundaries and classify transition types in broadcast video. Mark cuts, dissolves, fades, and other transitions between camera shots.

Get This Design

View on GitHub(opens in a new tab)

Clone or download from the repository

Quick start:

bash
git clone https://github.com/davidjurgens/potato-showcase.git
cd potato-showcase/video/boundary-detection/shot-boundary-detection
potato start config.yaml

Configuration File

This Potato config reproduces the annotation task. Save it as config.yaml and run potato start config.yaml to try it.

yaml
# TRECVID Shot Boundary Detection Configuration
# Task: Detect and classify shot transitions in broadcast video

annotation_task_name: "Shot Boundary Detection"
task_dir: "."

data_files:
  - data.json
item_properties:
  id_key: "id"
  text_key: "video_url"

output_annotation_dir: "annotation_output/"
output_annotation_format: "json"

annotation_schemes:
  - name: "shot_boundaries"
    description: |
      Mark every shot boundary and classify the transition type.
      A shot is a continuous sequence from a single camera.
    annotation_type: "video_annotation"
    mode: "keyframe"
    labels:
      - name: "cut"
        color: "#EF4444"
        key_value: "c"
      - name: "dissolve"
        color: "#8B5CF6"
        key_value: "d"
      - name: "fade_in"
        color: "#22C55E"
        key_value: "i"
      - name: "fade_out"
        color: "#F97316"
        key_value: "o"
      - name: "wipe"
        color: "#3B82F6"
        key_value: "w"
      - name: "other_gradual"
        color: "#EC4899"
        key_value: "g"
    frame_stepping: true
    show_timecode: true
    video_fps: 30

allow_all_users: true
instances_per_annotator: 40
annotation_per_instance: 2

annotation_instructions: |
  ## Shot Boundary Detection Task

  Mark every transition between camera shots.

  ### Transition Types:
  - **Cut (c)**: Instantaneous change (most common)
  - **Dissolve (d)**: Two shots overlap/blend
  - **Fade In (i)**: From black to image
  - **Fade Out (o)**: From image to black
  - **Wipe (w)**: One shot pushes another off screen
  - **Other Gradual (g)**: Any other gradual transition

  ### Guidelines:
  - Mark at the FIRST frame of the new shot (for cuts)
  - For gradual transitions, mark the midpoint
  - Use frame stepping for accuracy

Sample Data

json
[
  {
    "id": "sbd_001",
    "video_url": "https://example.com/videos/news_broadcast.mp4",
    "source": "broadcast_news",
    "duration_seconds": 180
  },
  {
    "id": "sbd_002",
    "video_url": "https://example.com/videos/documentary_clip.mp4",
    "source": "documentary",
    "duration_seconds": 240
  }
]

Dataset & paper

Smeaton, Over & Doherty, Computer Vision and Image Understanding 2010

Citation (BibTeX)

bibtex
@article{smeaton2010video,
  title={Video shot boundary detection: Seven years of TRECVid activity},
  author={Smeaton, Alan F. and Over, Paul and Doherty, Aiden R.},
  journal={Computer Vision and Image Understanding},
  volume={114},
  number={4},
  pages={411--418},
  year={2010},
  publisher={Elsevier}
}

Details

Annotation Types

video_annotation

Domain

Computer VisionBroadcast Media

Use Cases

Shot DetectionVideo EditingContent Indexing

Tags

videoshotboundarytransitiontrecvidbroadcast

Found an issue or want to improve this design?

Open an Issue(opens in a new tab)