Geralmente, os contêineres de multimídia são restritos a determinados codecs que podem ser incorporados. Alguns mais que outros. Por exemplo, o contêiner Matroska pode incluir virtualmente qualquer codec de vídeo, áudio ou legenda. Por outro lado, contêineres como o MPEG-4 Parte 14 (.mp4) são bastante limitados. Contêineres como os Fluxos de Transporte MPEG-2 são muito flexíveis, pois permitem definir "fluxos privados" nos quais codecs não padronizados podem ser transmitidos.
Você encontrará uma visão abrangente da Wikipédia .
É claro que, em princípio, você poderia incorporar dados aleatórios que se disfarçassem em vídeo ou áudio em um contêiner. O contêiner está lá apenas para agrupar a carga útil. Mas eu não vejo nenhum uso prático para isso, já que você não pode decodificar os dados sem um analisador que entenda a carga útil.
Você também pode estar interessado em: O que é um codec (por exemplo, DivX?) e como ele difere de um formato de arquivo (por exemplo, MPG)?
Em relação à sua pergunta específica, você descobrirá que os contêineres Ogg podem conter os seguintes codecs :
- Vídeo: Theora, Dirac, OggUVS, MNG
- Áudio: Vorbis, FLAC, Speex, Opus, OggPCM
E, mais especificamente, o ffmpeg não pode colocar dados arbitrários em um contêiner. Ele informará quando um determinado codec não for válido para um formato.