Based on your comments, the problem was that you had IGMP snooping enabled on one of the switches. Disabling IGMP snooping solved the problem, but that really is not ideal. It really boils down to the fact that you did not have a multicast querier or mrouter connected to the switches.
Is there not a programatic way to say, "don't snoop or delay this
  packet"?
No, this is a network configuration that is completely dependent on the switch models and how they are configured.
By disabling IGMP snooping on the switches, you are actually having all hosts receive the multicasts, and that may not be (probably is not) desirable. Multicast protocols, unlike unicast protocols, are designed to prevent multicast from going where it has not been requested. By snooping on IGMP, a switch will see the join messages from a host, and it will send multicast frames for the group requested to the switch interface where that host is connected, but not any interfaces where it has not been requested. This saves wasted bandwidth on the interfaces and links where the multicast is not wanted.
You would not have the problem you did if both switches had IGMP snooping enabled, and you had a multicast querier or mrouter attached. It may be possible to configure one of your switches as a multicast querier to solve the problem.
This is an excerpt from an answer on Network Engineering:
Cisco's explanation of the problem:
Understand the Problem and Its Solutions
By default, the Catalyst switches have IGMP snooping enabled. With
  IGMP snooping, the switch snoops (or listens) for IGMP messages on all
  the ports. The switch builds an IGMP snooping table that basically
  maps a multicast group to all the switch ports that have requested it.
Assume that, without any prior configuration, Receiver 1 and Receiver
  2 have signaled their intentions to receive a multicast stream for
  239.239.239.239 that maps to the L2 multicast MAC address of 01.00.5e.6f.ef.ef. Both Switch 1 and Switch 2 create an entry in their snooping tables for these receivers in response to the IGMP reports
  that the receivers generate. Switch 1 enters port Gigabit Ethernet
  2/48 in its table, and Switch 2 enters port Fast Ethernet 1/0/47 in
  its table.
Note: At this point, the multicast source has not started its traffic, and none of the switches knows about the switch mrouter port.
When the source on Switch 1 starts to stream multicast traffic, Switch
  1 has "seen" the IGMP report from Receiver 1. As a result, Switch 1
  delivers the multicast out port Gigabit Ethernet 2/48. But, since
  Switch 2 "absorbed" the IGMP report from Receiver 2 as part of the
  IGMP snooping process, Switch 1 does not see an IGMP report (multicast
  request) on port Gigabit Ethernet 2/46. As a result, Switch 1 does not
  send any multicast traffic out to Switch 2. Therefore, Receiver 2
  never gets any multicast traffic, even though Receiver 2 is in the
  same VLAN but merely on a different switch than the multicast source.
The reason for this issue is that IGMP snooping is not really
  supported on any Catalyst platform without an mrouter. The mechanism
  "breaks down" in the absence of an mrouter port. If you want a fix for
  this solution, you must have the switches somehow learn or know of an
  mrouter port. The Solutions section of this document explains the
  procedure. But how does the presence of an mrouter port on the
  switches remedy the situation?
Basically, when the switches learn or statically know about an mrouter
  port, two critical things occur:
- The switch "relays" the IGMP reports from the receivers to the mrouter port, which means that the IGMP reports go toward the
  multicast router. The switch does not relay all the IGMP reports.
  Instead, the switch sends only a few of the reports to the mrouter.
  For the purpose of this discussion, the number of reports is not
  important. The multicast router only needs to know if there is at
  least one receiver that is still interested in the multicast
  downstream. In order to make the determination, the multicast router
  receives the periodic IGMP reports in response to its IGMP queries.
- In a source-only multicast scenario, in which no receivers have yet "joined" in, the switch only sends the multicast stream out its
  mrouter port.
When the switches know their mrouter port, Switch 2 relays out the
  IGMP report that the switch received from Receiver 2 to its mrouter
  port. This port is Fast Ethernet 1/0/33. Switch 1 gets this IGMP
  report on the switch port Gigabit Ethernet 2/46. From the perspective
  of Switch 1, the switch has received merely another IGMP report. The
  switch adds that port into its IGMP snooping table and begins to send
  out the multicast traffic on that port as well. At this point, both
  the receivers receive the requested multicast traffic, and the
  application works as expected.
But how do the switches identify their mrouter port so that IGMP
  snooping works as it is expected to work in a simple environment like
  this? The Solutions section provides some answers.
HP's explanation of the problem:
When the switch receives an IGMP Join, it accepts the host request and
  begins forwarding the IGMP traffic. This means ports that have not
  joined the group and are not connected to routers or the IGMP Querier
  will not receive the group's multicast traffic.
It appears that you could set the switches up as IGMP Queriers:
Using the Switch as Querier
Querier Operation
The function of the IGMP Querier is to poll other IGMP-enabled devices
  in an IGMP-enabled VLAN to elicit group membership information. The
  switch performs this function if there is no other device in the VLAN,
  such as a multicast router, to act as Querier. Although the switch
  automatically ceases Querier operation in an IGMP-enabled VLAN if it
  detects another Querier on the VLAN, you can also use the Command
  Prompt to disable the Querier capability for that VLAN.
Note A Querier is required for proper IGMP operation. For this reason, if you disable the Querier function on a switch, ensure that
  there is an IGMP Querier (and, preferably, a backup Querier) available
  on the same VLAN.
If the switch becomes the Querier for a particular VLAN (for example,
  the DEFAULT_VLAN), then subsequently detects queries transmitted from
  another device on the same VLAN, the switch ceases to operate as the
  Querier for that VLAN. If this occurs, the switch Event Log lists a
  pair of messages similar to these:
I 01/15/01 09:01:13 igmp: DEFAULT_VLAN: Other Querier detected
I 01/15/01 09:01:13 igmp: DEFAULT_VLAN: This switch is no longer Querier
In the above scenario, if the other device ceases to operate as a
  Querier on the default VLAN, then the switch detects this change and
  can become the Querier as long as it is not pre-empted by some other
  IGMP Querier on the VLAN. In this case, the switch Event Log lists
  messages similar to the following to indicate that the switch has
  become the Querier on the VLAN:
I 01/15/01 09:21:55 igmp: DEFAULT_VLAN: Querier Election in process
I 01/15/01 09:22:00 igmp: DEFAULT_VLAN: This switch has been elected as Querier