In a communication network with a source node, a multicast tree is defined as a tree rooted at the source node and all its leaves being recipients of the multicast originating at the source. The tree or bandwidth cost is normally measured by its utilization of tree links along with the quality of service (QoS) measures such as delay constraint and end-to-end delay. However, if nodes are allowed to join or leave the multicast group at any time during the lifetime of the multicast connection, then the problem is known as dynamic multicast routing problem. In this article, we combine a greedy approach with static multicast routing using Tabu Search to find a low-cost dynamic multicast tree with desirable QoS parameters. The proposed algorithm is then compared with several static multicast routing algorithms. The simulation results show that, on a large number of events, i.e., where nodes are leaving or joining, the proposed algorithm is able to find multicast trees of lower cost and more desirable QoS properties.