The excerpt: Display text OR image OR video

I would encourage you to consider using post formats. You can see my answer to a similar question about altering the “Read More” text, but it would apply similarly to you. For the video portion, you might want to create a custom field to hold the video URL, but otherwise, I imagine this would be quite simple to setup.

Rather than filtering the excerpt, this would also give you the option to replace the_excerpt() with:

get_template_part( 'excerpt', get_post_format() );

Then you could use excerpt.php for the default/fallback snippet, excerpt-video.php for videos, and excerpt-image.php for images. Alternately, you’d use something like this in your filter to test the post format:

if( get_post_format() == 'video' ) { // etc...