input = {}; output = {}; recording = False; Column@{Manipulate[
Plot[Sin[a x], {x, 0, 6}], {a, 1, 5}, LocalizeVariables -> False],
Dynamic[If[recording, input = {input, a}]; a, UpdateInterval -> 1,
TrackedSymbols :> {}],
Row@{Button["Start", recording = True; input = {}],
Button["Stop",
output = Rasterize@Plot[Sin[# x], {x, 0, 6}] & /@ Flatten@input;
input = {}; recording = False]}, Dynamic@output}