Trying to add text to a video file and save it as an mpeg to be played in a slide show
Either After Effects or Premiere will do this for you no problem.  I'd probably use After Effects for simplicity since it is easier to understand the layers there.  Either use a text effect or use Illustrator to make the text a bit nicer and import it in as a layer in After Effects.  Position the video that it is playing over as the bottom layer then import the text layer and position it over the background as necessary.

For the rotating diamond, you would need a rotating diamond that has a transparent background to the layer.  This is easiest to do with 3d graphics software, though you could also do it by rotating an actual diamond and keying out the background from around it.  

On the other hand, the best looking approach (since a diamond refracts the surroundings) would be to bring it in to a professional 3d package and use the video as an environment map for the refraction to be correct and then export it as a series of images with alpha that can be composited back in as a source in After Effects.  Since the diamond will look like it is refracting the image it is over, it will be far more believable as a diamond in the scene.

I'm not sure if Blender (the most popular free 3d software) can support environment maps or not, but if it can, that would be your best bet for approaching that.  (Sadly, I use commercial 3D software so I've never learned Blender which is much more limited, someone else might be able to provide more insight on that though.)