Got rid of an assert, added an explanation

Turns out you may not encode the last Opus packet on the last frame if
the frame rate used to specify the movie's duration isn't divisible by
the frame rate used to encode the movie. You could have just a little
more time, and thus a few more audio samples. Any more time means you
pop up another frame, but if you only have a few audio samples, they may
have been encoded in the penultimate frame's packet, so no need for an
Opus packet on the last frame.

I spent a few hours trying to figure this out.