I found the reason why I could not generate the file from two separate capture devices in JMF, and it relates to the ordering of startup commands. In particular, things like Processors will use the data source or merge the data source, assign and synchronize the time base and start / stop the sources for you, so the extra work that I tried to do, starting the source resources manually, is redundant, and throws to work a wrench.
It was a lot of painful trial and error, and I suggest you read each line of code, understand the sequence and understand what was included and what was excluded, and why before trying to implement it yourself. JMF is quite a bear if you are not careful.
Oh, and don't forget to catch the exceptions. I had to omit this code due to length restrictions.
Here is my final solution:
public void doRecordingDemo() {
Splinterreality
source share