This notebook is a step towards creating a Slack bot that posts valuable engineering practices from top tech talks daily. Stay Tuned!
Introduction
In this tutorial, we’ll explore an advanced yet accessible technique for retrieving visual information from video content based on what the speaker was discussing. Specifically, we’ll focus on finding information on slides in a video recording of a speech. As video content continues to grow in volume and importance, being able to quickly find specific information within videos becomes crucial. Imagine being able to locate a particular statistic mentioned in an hour-long presentation without watching the entire video. That’s the power of multimodal video search! This approach combines structured transcript queries with visual understanding to create a robust, multimodal search pipeline. Don’t worry if these terms sound complex - we’ll break everything down step by step!Setup
Installing packages
API Keys
Before proceeding, ensure access to VideoDB. If not, sign up for API access on the respective platforms. Get your API key from VideoDB Console (Free for first 50 uploads, No credit card required).Step 1: Connect to VideoDB
Gear up by establishing a connection to VideoDB.Step 2: Upload the Video
Next, let’s upload our sample video:Step 3: Understand Spoken Content and Slides
Build the multimodal workflow in two clear stages:- Create a queryable transcript from spoken content.
- Compare slide configurations and prompts before analyzing the full video.
Understand Spoken Content
Find the Right Configuration for Slide Understanding
Build the slide workflow in two stages:- Compare slide configurations and prompts on extracted scenes.
- Analyze the full video with the selected configuration.
- Compare Slide Segmentation Configurations
Test the Slide Prompt on Sample Scenes
Test the prompt on a few scenes before analyzing the entire video. This keeps the experiment focused while you check that the analyzer describes slide content and returnsNone when a scene does not show a slide.
Analyze the Video With the Finalized Configuration
The final slide run uses the selected configuration:- Segment the video into shots with threshold 10.
- Sample one representative frame of each shot.
- Return a structured slide description for every timed segment.
Step 4: Search Pipeline Implementation
The heart of this approach is the search pipeline, which combines a structured transcript query with slide-understanding artifact records. This pipeline does the following:- Runs a structured transcript query with a text filter
- Extracts time ranges from the returned transcript records
- Filters slide-understanding artifact records by their overlap with those ranges
- Returns the matching slide descriptions and their time ranges
Step 5: Viewing the Search Results
Finally, let’s use our search pipeline:The content written on the slide is
Here are some other query outputs using the same search pipeline:
Search for “stripe api review”
API REVIEW CHECKLIST
Search for “Friction Log”
Internal Terminal Dogfooding Instructions
Conclusion
This document has outlined a sophisticated approach to multimodal video search, combining structured transcript queries with visual understanding. The pipeline finds specific visual content, such as slide information, based on what was discussed. This technique has broad applications beyond just searching for slides in speeches. It could be adapted for various use cases where visual information needs to be retrieved based on audio content, such as:- Finding product demonstrations in long-form video content
- Identifying key moments in educational videos
- Searching for specific visual elements in recorded meetings or presentations
Further Resources
To learn more about understanding artifacts and analyzer outputs, explore the following guides:Understanding Artifacts
Create reusable timed artifacts from video understanding runs.
Analyzer Outputs
Inspect the timestamped records produced by each analyzer.
Get Support
If you have any questions or feedback, feel free to reach out to us:Discord Community
Connect with the VideoDB community for support and discussions
GitHub
Explore our open source projects and contribute
VideoDB
Visit our main website for more information