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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章