I would recommend the Image Boundary plugin in QGIS. The documentation states that this has been replaced by the new Image Footprint plugin, however, I prefer to use the deprecated original. You will need to do the following to download the Image Boundary plugin:
Plugins > Manage and Install Plugins... > Settings > check "Show all deprecated plugins"
In this example, I used the plugin on 4 NAIP images. You can see from the screenshots that the plugin allows you to set either an extent boundary or valid pixels boundary. The resulting shapefile has very handy information in the attributes such as the raster name, path, proj4 string, spatial resolution, etc...