Use gdal_polygonize.py, ogr2ogr and ogrinfo in a loop. On linux (not tested):
final=merged.shp
for f in *.tif;
do
name=$(basename $f .tif)
shp=${name}.shp
gdal_polygonize.py $f -f "ESRI Shapefile" $shp
ogrinfo $shp -sql "ALTER TABLE $name ADD COLUMN name character(30)"
ogrinfo $shp -sql "UPDATE $name SET name='$name'"
if [ -f $final ];
then
ogr2ogr -f "ESRI Shapefile" -update -append $final $shp -nln merge
else
ogr2ogr -f "ESRI Shapefile" $final $shp
fi
done
The two calls to ogrinfo create and then populate a field called "name" on each new shapefile. When the ogr2ogr calls merge the files, each geometry will have a field indicating what the name of the original image was. Of course, you can extract the date from the name and save that, if you like.
The if statement checks if the merged file exists. If not, it creates it from the first shapefile. Otherwise it appends the shapefile.