HarmonyOS ijkplayer使用rtsp播放直播流的延时问题

使用ijkplayer播放rtsp视频的时候,有些设备的延时会越来越高,请问有什么设置可以修改吗?下面是现在使用的设置。

if (!!this.mContext) {
  mIjkMediaPlayer.setContext(this.mContext,'xcomponentId1');
}
if (CONTROL_PlayStatus == PlayStatus.INIT) {
  mIjkMediaPlayer.reset();
}
CONTROL_PlayStatus = PlayStatus.PLAY;
//设置debug模式
mIjkMediaPlayer.setDebug(true);
//初始化配置
mIjkMediaPlayer.native_setup();
//设置视频源
mIjkMediaPlayer.setDataSource(url);

// 如果是rtsp协议,可以优先用tcp(默认是用udp)
if(this.camera?.rtsp===2){
  mIjkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_FORMAT, "rtsp_transport", "udp");
}else{
  mIjkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_FORMAT, "rtsp_transport", "tcp");
}
mIjkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "mediacodec", "1");
mIjkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "mediacodec-auto-rotate", "1");
mIjkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "mediacodec-handle-resolution-change", "1");
mIjkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "mediacodec-hevc", "1");
mIjkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "framedrop", "60");
mIjkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "start-on-prepared","0");
mIjkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "opensles", "0");
mIjkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "mediacodec", "0");
mIjkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "start-on-prepared", "1");
mIjkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "packet-buffering", "0");
mIjkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "min-frames", "2");
mIjkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "max_cached_duration", "3");
mIjkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "infbuf", "1");
mIjkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "reconnect", "5");
mIjkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_FORMAT, "http-detect-range-support", "0");
mIjkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_FORMAT, "analyzeduration", "1");
mIjkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_FORMAT, "rtsp_flags", "prefer_tcp");
mIjkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_FORMAT, "buffer_size", "1024");
mIjkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_FORMAT, "max-fps", "30");
mIjkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_FORMAT, "analyzemaxduration", "50");
mIjkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_FORMAT, "dns_cache_clear", "1");
mIjkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_FORMAT, "flush_packets", "1");
mIjkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_FORMAT, "max-buffer-size", "0");
mIjkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_FORMAT, "fflags", "nobuffer");
mIjkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_FORMAT, "probesize", "200");
mIjkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_FORMAT, "http-detect-range-support", "0");
mIjkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_CODEC, "skip_loop_filter", "48");
mIjkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_CODEC, "skip_frame", "0");
// 屏幕常亮
mIjkMediaPlayer.setScreenOnWhilePlaying(true);
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47.
  • 48.
  • 49.
  • 50.
HarmonyOS
2024-12-25 18:06:54
787浏览
收藏 0
回答 1
回答 1
按赞同
/
按时间
put_get

尝试设置一下option参数如下:

mIjkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_FORMAT, "rtsp_transport", "tcp");
mIjkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER,"infbuf","1");
mIjkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER,"packet-buffering","0");
mIjkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_FORMAT,"fflags","nobuffer");
mIjkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_FORMAT, "analyzeduration", "2000000");
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.

文档链接:https://gitee.com/wugitrep/ohos_ijkplayer

分享
微博
QQ
微信
回复
2024-12-25 19:36:37


相关问题
HarmonyOS ijkplayer播放rtsp延时过高
702浏览 • 1回复 待解决
HarmonyOS 直播无法播放
802浏览 • 1回复 待解决
HarmonyOS是否支持RTSP直播
1011浏览 • 1回复 待解决
HarmonyOS 直播与观看直播功能
1039浏览 • 1回复 待解决
HarmonyOS 直播需求、rtmp推
1071浏览 • 1回复 待解决
HarmonyOS ijkPlayer怎么视频后台播放
643浏览 • 1回复 待解决
如何实现RTSP视频流播放
1874浏览 • 1回复 待解决
HarmonyOS 任务延时问题
518浏览 • 1回复 待解决
视频和直播播放HarmonyOS最佳实践
2203浏览 • 1回复 待解决
编解码播放大数据量问题
4154浏览 • 0回复 待解决
HarmonyOS 如何播放rtmp协议音频
603浏览 • 1回复 待解决
HarmonyOS 文件问题
699浏览 • 1回复 待解决