FFmpeg has no trouble putting all sorts of weird video codecs into QuickTime/MOV containers, including utvideo
, hap
, snow
, ffv1
, and cinepak
. This makes sense, as it is my understanding that the MOV format should be extendable to any type of video stream.
However, when I ask FFmpeg to put a vp9 video stream into a MOV container, FFmpeg refuses.
$ ffmpeg -i file-with-vp9-video-and-opus-audio.webm -vcodec copy -acodec pcm_s16be test.mov
[...]
[mov @ 0x7fbb1b822400] vp9 only supported in MP4.
Could not write header for output file #0 (incorrect codec parameters ?): Invalid argument
Due to stupid and buggy software which is out of my control, I need a way to get VP9 streams into MOV containers. I cannot use a different container format, including mp4 or mkv. (I might be able to use WebM, but that does not support PCM audio.)
Is there another way to do this? It doesn't need to be with ffmpeg, but it does need to be with a UNIX program which I can automate in a shell script.
Edit: Quick note, I'm not opposed to doing something super weird, like muxing into an mp4 and then hex editing the header (just as an example, I don't know if the formats are close enough for that).
Which is to say, it can be a total hack. The software I'm working with will absolutely refuse to open anything that isn't a MOV, even though I have given it the capability to decode vp9.