基于ijkplayer在FFMpeg 中增加丢包数显示功能

基于ijkplayer在FFMpeg 中增加丢包数显示功能

目的: 在我们目前的应用场景中,使用ijkplayer 来进行RTSP 的拉流解码播放。但是我们设备端在传输层中并没有部署RTCP 的控制协议实现,所以无法对数据传输的丢包数进行反向收集,那就需要APP端对数据长度进行校验。
方案:

  1. 因为我们使用RTSP 数据传输协议,在ijkplayer 中,数据处理完全是交由FFMpeg来进行的,对上层和ijkplayer的SDK 层而言,收到数据包是不透明的,所以我们需要对FFMpeg的源码进行修改。
    2.在源码中,RTSP 协议传输对应的数据传输相关方法位于文件夹libavformat/rtsp.c中,在read_packet方法中,我们可以看到RTSP协议对应的传输类型判断(UDP or TCP)
#if CONFIG_RTSP_DEMUXER
    case RTSP_LOWER_TRANSPORT_TCP:
        len = ff_rtsp_tcp_read_packet(s, rtsp_st, rt->recvbuf, RECVBUF_SIZE);
        break;
#endif
    case RTSP_LOWER_TRANSPORT_UDP:
    case RTSP_LOWER_TRANSPORT_UDP_MULTICAST:
        len = udp_read_packet(s, rtsp_st, rt->recvbuf, RECVBUF_SIZE, wait_end);
        if (len > 0 &
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值