I agree with Rahul that, since you've got a single, one dimensional equation indexed by a single parameter, a bifurcation diagram is a natural way to visualize this situation. If you want an animation or dynamic image, you might highlight one particular phase line as a function of $a$. You could also display the slope field of the system right along side of the phase diagram. The result looks something like so.

Note that I prefer to draw the solution through a simple slope field, rather than through the groovy StreamPlot
because I think that's a simpler concept - particularly, for undergraduate students who I interact with a lot. I've also oriented the vertical $x$ axis in both plots in the same direction and used graphics primitives there to grab a little more control over the image.
Here's code for an interactive version of this that also includes a locator on the slope field allowing you to specify the initial condition.
Needs["DifferentialEquations`InterpolatingFunctionAnatomy`"];
Clear[slopeField, slopeFieldWithSol];
slopeField[a_?(# < 0 &)] := VectorPlot[
{1, -x^4 + 5 a x^2 - 4 a^2}, {t, -4, 4}, {x, -4, 4},
VectorScale -> {0.03, Automatic, None},
VectorStyle -> {Gray, Arrowheads[0]}];
slopeField[a_?(# >= 0 &)] := Show[{
VectorPlot[
{1, -x^4 + 5 a x^2 - 4 a^2}, {t, -4, 4}, {x, -4, 4},
VectorScale -> {0.03, Automatic, None},
VectorStyle -> {Gray, Arrowheads[0]}],
Plot[{-2 Sqrt[a], -Sqrt[a], Sqrt[a], 2 Sqrt[a]}, {t, -4, 4},
PlotStyle -> Directive[Black, Dashed]]
}];
slopeFieldWithSol[a_, p_] :=
Module[{t, x, t0, x0, eq, ic, eqs, sol, xf, ifd, tRange, plot},
{t0, x0} = p;
eq = x'[t] == -x[t]^4 + 5 a*x[t]^2 - 4 a^2;
ic = x[t0] == x0;
eqs = {eq, ic};
Quiet[sol = First[NDSolve[eqs, x, {t, -4, 4}]], NDSolve::ndsz];
xf = x /. sol;
ifd = InterpolatingFunctionDomain[xf];
tRange = {t, ifd[[1, 1]], ifd[[1, 2]]};
plot = Plot[xf[t], Evaluate[tRange],
PlotStyle -> {Thick, Black}, PlotRange -> {{-4, 4}, {-4, 4}}];
Show[{slopeField[a], plot}, PlotRange -> {{-4, 4}, {-4, 4}}]
];
Clear[phaseLine, phaseDiagram, phaseDiagramWithLine];
phaseLine[a_?(# < 0 &), ___] := {ColorData[1, 2],
Arrow[{{a, 4}, {a, -4}}]};
phaseLine[0, eps_] = phaseLine[0.0, eps_] = {ColorData[1, 2],
Arrow[{{0, 4}, {0, eps}}], Arrow[{{0, -eps}, {0, -4}}]
};
phaseLine[a_?(# > 0 &), eps_] := {
Arrowheads[Medium],
ColorData[1, 2], Arrow[{{a, 4}, {a, 2 Sqrt[a] + eps}}],
ColorData[1, 1],
Arrow[{{a, Sqrt[a] + eps}, {a, 2 Sqrt[a] - eps}}],
ColorData[1, 2], Arrow[{{a, Sqrt[a] - eps}, {a, -Sqrt[a] + eps}}],
ColorData[1, 1],
Arrow[{{a, -2 Sqrt[a] + eps}, {a, -Sqrt[a] - eps}}],
ColorData[1, 2], Arrow[{{a, -2 Sqrt[a] - eps}, {a, -4}}]
};
phaseDiagram = ParametricPlot[{{x^2/4, x}, {x^2, x}}, {x, -4, 4},
PlotRange -> {{-1, 4}, {-4, 4}},
PlotStyle -> Directive[Thickness[0.007], Black],
Epilog -> {Opacity[0.4],
Table[phaseLine[a, 0.1], {a, -0.7, 4, 0.2}]}];
phaseDiagramWithLine[a_] := Show[{phaseDiagram,
Graphics[{Thick, phaseLine[a, 0.1], If[a >= 0, {PointSize[Large],
Point[{a, #} & /@ {2 Sqrt[a],
Sqrt[a], -Sqrt[a], -2 Sqrt[a]}]}, {}]}]}];
Manipulate[Grid[{{
Show[slopeFieldWithSol[a, p], ImageSize -> 300],
Show[phaseDiagramWithLine[a],
ImageSize -> {Automatic, 300}]
}}, Spacings -> 3],
{{a, 0}, -1, 4}, {{p, {0, 1}}, {-4, -4}, {4, 4}, Locator}]
The animated gif was generated in a manner almost identical to the Manipulate
. I just specified a particular p
value $(-1.2,1.2)$, changed Manipulate
to Table
(which required me to change the a
specification slightly), and Export
ed the result to a GIF.
pics = Table[Grid[{{
Show[slopeFieldWithSol[a, {-1.2, 1.2}], ImageSize -> 300],
Show[phaseDiagramWithLine[a],
ImageSize -> {Automatic, 300}]
}}, Spacings -> 3],
{a, -1, 4, 0.1}];
Export["temp.gif", pics]