Existe uma biblioteca bem implementada chamada MP4v2
, adequada para uso em C / C ++, que fornece funcionalidade suficiente para o propósito declarado. Em particular, pode-se adicionar uma faixa a um MP4 e definir todos os tipos de caixa dentro do arquivo para atender às suas necessidades. Da mesma forma, a biblioteca extrairá faixas para outro arquivo e excluirá uma trilha existente de um arquivo.
Para a parte MPEG2TS, eu não encontrei nenhuma biblioteca similar e decidi escrever um programa que manipula os arquivos .ts
diretamente fazendo muxing em novos pacotes sob um novo PID com o PTS sincronizado com os fluxos de áudio / vídeo. .
Nada disso irá usar o ffmpeg. Embora eu tenha gasto bastante tempo tentando entender essa ferramenta (abrangente e vasta), parece que eu teria que escrever um codec para meu novo tipo de fluxo e isso é um pouco trabalhoso.