天天看點

ffmepg學習

為了統一管理muxer的友善,每個的muxer都封裝進一個資料結構AVOutputFormat。

即用AVOutputFormat這個結構體來管理muxer,到時候把這一系列的結構體放入一個連結清單,要找一個muxer就友善了。

在源代碼中搜AVOutputFormat,即可找到mp4相關的編碼器源檔案。movenc.c/h

AVOutputFormat ff_mp4_muxer = {

    .name              = "mp4",

    .long_name         = NULL_IF_CONFIG_SMALL("MP4 (MPEG-4 Part 14)"),

    .mime_type         = "application/mp4",

    .extensions        = "mp4",

    .priv_data_size    = sizeof(MOVMuxContext),

    .audio_codec       = AV_CODEC_ID_AAC,

    .video_codec       = CONFIG_LIBX264_ENCODER ?

                         AV_CODEC_ID_H264 : AV_CODEC_ID_MPEG4,

    .write_header      = mov_write_header,

    .write_packet      = mov_write_packet,

    .write_trailer     = mov_write_trailer,

    .flags             = AVFMT_GLOBALHEADER | AVFMT_ALLOW_FLUSH,

    .codec_tag         = (const AVCodecTag* const []){ ff_mp4_obj_type, 0 },

    .priv_class        = &mp4_muxer_class,

};

以上轉自http://blog.csdn.net/ctroll/article/details/8169396

這裡邊的video_codec是我想說的,如果配置了x264庫,那麼視訊編碼器為h264,否則為mprg-4

繼續閱讀