支持RTSP協議,參照:www.lxweimin.com/p/69b26da21fa5
全部弄好后,發現延遲不滿意,于是自己動手豐衣足食:
主要也就是修改了:
ijkmedia>ijkplayer>ff_ffplay.c這個文件
static double vp_duration(VideoState *is, Frame *vp, Frame *nextvp) {
if(vp->serial == nextvp->serial) {
doubleduration = nextvp->pts - vp->pts;
if(isnan(duration) || duration <=0|| duration > is->max_frame_duration)
return vp->duration;
else
return duration;
}else{
return 0.0;
}
}
直接換成:
static double vp_duration(VideoState*is,Frame*vp,Frame*nextvp) {
return vp->duration;
}
2、接著改staticintffplay_video_thread這個方法:
static int ffplay_video_thread(void*arg){
FFPlayer*ffp = arg;
VideoState*is = ffp->is;
AVFrame*frame =av_frame_alloc();
doublepts;
doubleduration;
intret;
AVRationaltb = is->video_st->time_base;
//注釋掉
//AVRational frame_rate = av_guess_frame_rate(is->ic, is->video_st, NULL);
//......中間代碼太長,不貼上了
//注釋掉
//duration = (frame_rate.num && frame_rate.den ? av_q2d((AVRational) {frame_rate.den, frame_rate.num}) : 0);
//直接寫出
duration=0.01;
//........
}
改完后發現延遲非常滿意