Shortcode not displaying video as expected

Had a bit of a brain wave and thought I would capture the output and return it in the function. Turns out it fixed the problem so the final code ended up looking like this:

function amazon_video($atts){
    extract(
        shortcode_atts(
            array(
                'file' => $file
            ), 
            $atts 
        ) 
    );
    $url = get_bloginfo('url');

    $return = "<embed
        src="".$url."/jwplayer/player.swf"
        name="player"
        width="640"
        height="480"
        bgcolor="#000000"
        allowscriptaccess="always"
        allowfullscreen='true'
        flashvars="file=".$file."
                    &streamer=rtmp://xxxxxxxxxxx.cloudfront.net/cfx/st
                    &provider=rtmp"
        autoplay='false'
    />";
    return $return;
}

add_shortcode('amazon_video','amazon_video');