Вы можете написать h264 и mp3, используя libavcodec, но чтобы записать их в файл mp4, вам понадобится libavformat.Это не простой процесс, и библиотеки FFmpeg / Libav общеизвестно не интуитивны.В их исходном дереве есть пара примеров , которые довольно хорошо иллюстрируют процесс.Ищите video_encode_example () и audio_encode_example () в decoding_encoding.c.Существует также muxing.c.
Для начинающих, я рекомендую вам заглянуть в ffmpegsource, который является оболочкой для библиотек FFmpeg / Libav.
Я написал большую часть кода здесь для плагина, который работает с фреймворком под названием Tuttle.Это также должно служить примером.Но не используйте это как окончательное.Прочитайте документацию, которая поставляется с libavcodec и libavformat.