ffmpeg 中 rtsp相关源码解析(一) 本是古典 何须时尚 2021-05-16 20:36 861阅读 0赞 ffmpeg中与rtsp协议相关的代码位于libavformat中 ![watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTEzMzc2MDI_size_16_color_FFFFFF_t_70][] libavformat/avformat.h文件中声明 **void****av\_register\_all**(**void**); 函数定义位于libavformat/allformats.c中 **av\_register\_all**调用**register\_all**函数**,**从而对多种muxer和demuxer进行注册 static void register_all(void) { avcodec_register_all(); /* (de)muxers */ ... REGISTER_MUXDEMUX(RTP, rtp); REGISTER_MUXER (RTP_MPEGTS, rtp_mpegts); REGISTER_MUXDEMUX(RTSP, rtsp); ... } REGISTER\_MUXDEMUX定义如下: #define REGISTER_MUXER(X, x) \ { \ extern AVOutputFormat ff_##x##_muxer; \ if (CONFIG_##X##_MUXER) \ av_register_output_format(&ff_##x##_muxer); \ } #define REGISTER_DEMUXER(X, x) \ { \ extern AVInputFormat ff_##x##_demuxer; \ if (CONFIG_##X##_DEMUXER) \ av_register_input_format(&ff_##x##_demuxer); \ } #define REGISTER_MUXDEMUX(X, x) REGISTER_MUXER(X, x); REGISTER_DEMUXER(X, x) 代码中可以看到为ff\_rtsp\_muxer和ff\_rtsp\_demuxer进行了注册 ff\_rtsp\_muxer和ff\_rtsp\_demuxer的定义位于 libavformat/rtspenc.c、libavformat/rtspdec.c中, 定义如下: AVOutputFormat ff_rtsp_muxer = { .name = "rtsp", .long_name = NULL_IF_CONFIG_SMALL("RTSP output"), .priv_data_size = sizeof(RTSPState), .audio_codec = AV_CODEC_ID_AAC, .video_codec = AV_CODEC_ID_MPEG4, .write_header = rtsp_write_header, .write_packet = rtsp_write_packet, .write_trailer = rtsp_write_close, .flags = AVFMT_NOFILE | AVFMT_GLOBALHEADER, .priv_class = &rtsp_muxer_class, }; AVInputFormat ff_rtsp_demuxer = { .name = "rtsp", .long_name = NULL_IF_CONFIG_SMALL("RTSP input"), .priv_data_size = sizeof(RTSPState), .read_probe = rtsp_probe, .read_header = rtsp_read_header, .read_packet = rtsp_read_packet, .read_close = rtsp_read_close, .read_seek = rtsp_read_seek, .flags = AVFMT_NOFILE, .read_play = rtsp_read_play, .read_pause = rtsp_read_pause, .priv_class = &rtsp_demuxer_class, }; [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTEzMzc2MDI_size_16_color_FFFFFF_t_70]: /images/20210516/c0110c2344744f7bae4b61f020ffb04d.png
还没有评论,来说两句吧...