Multicast is an efficient tool to transfer the same data from a publisher to multiple subscribers, and its performance relies critically on the resiliency. Compared with traditional networks, the centralized control and flexible programmability of the Software Defined Network (SDN) is more beneficial for solving the failure recovery problem. This paper presents a design of an OpenFlow controller which can recover and reconstruct a multicast tree rapidly, while reducing the Ternary Content Addressable Memory (TCAM) consumption simultaneously. We choose the protection mechanism, and calculate all the backup paths after the topology information is mastered by the controller. When a failure occurs, affected switches can enable the use of backup paths to continue forwarding multicast packets. As duplicate packets may exist after the failure recovery, the reconstruction of a tree is required by modifying only a small fraction of forwarding rules. The performance evaluations demonstrate that our proposed method recovers a multicast tree with a high speed and low cost. On one hand, the maximum failure recovery time of two protection-based methods including our proposed method is less than 11 ms, while that of two restoration-based methods is 44 ms and 30 ms, respectively. On the other hand, the amount of backup forwarding entries required by another protection-based method exceed our proposed method as long as 3 or more multicast groups exist in the network. Moreover, when our proposed method is adopted, the amount of backup forwarding entries per switch is less than 30, which can be ignored when compared with the capacity of SDN switches (a switch can support a few thousand forwarding rules).