AudioFormatManager and Quicktime .mov files

Hi there

I would very much appreciate some advice/help please. :slight_smile:

The CameraDevice on iOS and macOS writes .mov files with the startRecordingToFile method.

Subsequently I’d like to be able to load in this file. More specifically I’d like to access and process the audio within it (I don’t need to be able to write it back to the mov file though).

@Xenakios kindly tried to help me out. He believed that in the past AudioFormatManager may have allowed us to read mov files, which would be great. Unfortunately neither of us are able to get this to work at this time. Has this functionality changed or been broken somehow?

Many thanks in advance!

Best wishes

Jeff

Worth noting with that is that the AudioFormatManager still lists .mov as an allowed file extension (getWildcardForAllFormats) on OS-X but the AudioFormatReader instance actually can’t be created. Interestingly, other kinds of video files like .mp4 can be opened and the audio can be read from the file.

CoreAudioFormat generates the list of allowed file extension at runtime (see https://github.com/WeAreROLI/JUCE/blob/master/modules/juce_audio_formats/codecs/juce_CoreAudioFormat.cpp#L39), so there might be some discrepancy between what that function returns and what the CoreAudioFormat can actually do.

Thanks for chiming in @McMartin. Out of interest were you ever able to access the audio from a Quicktime .mov that was just written via JUCE’s CameraDevice?

1 Like

Has anybody managed by now to read the audio stream of a .mov video with AudioFormatReader?
I am facing the same problem: mp4 works without any problem but mov doesn’t.

Would be awesome if there is an easy way to achieve it!

1 Like

Bump. Are there been any updates to this? Should I just drop the mov extension?

Hey there @od1
I still haven’t had any joy with this issue unfortunately. Anybody out there had any success?

The juce_CoreAudioFormat should be able to read .mov files. The juce_AudioFormatManager has it registered as basic format.
If it tries to be smart and doesn’t find the .mov a valid extension just try to call the CoreAudioFormat ::createReaderFor manually with your inputstream. It should load the .mov fine.
You can try this without writing any code by just renaming your .mov to .mp4 and see if that works.