ffmpeg
文章平均质量分 61
波波敲代码
这个作者很懒,什么都没留下…
展开
-
FFMPEG-rtsp-h264负载剥离
rtsp剥离负载,发送在连接建立以后,OPTION \DESCRIPT\SETUP\PLAY等方法已相继发送,udp(tcp) 数据传输通道、媒体信息已相应建立,ffmpeg通过注册回调函数read_packet开始读取发来的负载信息,并组装成AVPacket格式返回。AVInputFormat ff_rtsp_demuxer = { .name = "rtsp", .long_name = NULL_IF_CONFIG_SMALL("RTSP input原创 2021-01-29 15:26:06 · 541 阅读 · 0 评论 -
FFMPEG-FLV格式探测
ffmpeg在使用avformat_open_input接口打开流时,就已经对流的格式做了探测,如果是输入的RTMP地址,它又是如何探测流的呢。通过之前文档(FFMPEG-RTMP之抽取FLV),我们知道,ffmpeg在读取rtmp模块数据的时候,实际得到的是组装好的完整flv数据,首次读取flv头部数据的时间就发生在init_input函数中,它回调了一个io_open函数,此函数指针映射的正是rtmp模块的流打开函数,回调完成后,我们得到了flv的头部数据。接下来,ffmpeg通过调用av_pr原创 2021-01-29 15:17:34 · 545 阅读 · 0 评论 -
FFMPEG-RTMP之抽取FLV
ffmpeg-rtmp模块中维护了flv_data、flv_size、flv_off,共同对flv数据进行处理,flv_data: 数据首地址flv_size: 数据缓冲区数据量flv_off: 读取的数据它是一个动态缓冲区,可以看做某个网络flv文件的滑动窗口,它在rtmp open时写下文件头,并由rtmp每一次chunk的到来而扩展,而由每一次对flv_data的读取而向后滑动。FLV头生成rtmp中FLV头的建立发生在rtmp_open函数中static i..原创 2021-01-29 15:15:41 · 500 阅读 · 0 评论 -
FFMPEG-RTSP媒体数据解析
rtsp剥离负载,发送在连接建立以后,OPTION \DESCRIPT\SETUP\PLAY等方法已相继发送,udp(tcp) 数据传输通道、媒体信息已相应建立,ffmpeg通过注册回调函数read_packet开始读取发来的负载信息,并组装成AVPacket格式返回。AVInputFormat ff_rtsp_demuxer = { .name = "rtsp", .long_name = NULL_IF_CONFIG_SMALL("RTSP inp原创 2021-01-21 16:41:00 · 1747 阅读 · 1 评论