Create a video slideshow from images

Turn a collection of images into an animated video with Ken Burns effects, text overlays, logos, and background music — using a fully declarative Pixeltable pipeline.

Video · Notebook · Updated

Colab runs it in your browser. If it calls a model provider, it asks for that provider's API key in a cell.

How it works

The key insight: store per-clip metadata (caption text, pan direction, logo) as table columns. One chained computed column expression handles the entire pipeline, and Pixeltable evaluates it per row.

What it covers

  • Convert still images into animated video clips with pan effects
  • Control pan direction per image from table data (no Python loops)
  • Add per-image captions and a logo overlay
  • Concatenate all clips and add background music

What it uses

Install
terminal
pip install pixeltable
Pixeltable calls
video.concat_videos_agg()video.with_audio()pxt.create_table()insert()add_computed_column()group_by()

A look at the code

video-image-slideshow.ipynb
MUSIC_URL = 'https://raw.githubusercontent.com/pixeltable/pixeltable/main/docs/resources/sample-background-music.m4a'
final = pxt.create_table(
'slideshow_demo/final', {'video': pxt.Video, 'music': pxt.Audio}
)
final.insert([{'video': video_path, 'music': MUSIC_URL}])
final.add_computed_column(out=with_audio(final.video, final.music))
final.select(final.out).collect()

One cell of the notebook, copied as it is. Open it in Colab for the rest.

Browse all 103