We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
问题描述: 首先,我把IP摄像头映射到2个公网地址,如下: 第一个视频:rtsp://公网地址:7000/h265/ch1/main/av_stream 第二个视频:rtsp://公网地址:6999/h265/ch1/main/av_stream 然后使用了多种方式来尝试播放(SimpleListVideo、MultiSampleVideo),都会出现如果先播放了其中一个视频,再播放另一个视频,那么两个视频都会变成首先被播放的视频。 例如使用MultiSampleVideo进行同时播放,首先播放的是rtsp://公网地址:7000/h265/ch1/main/av_stream,再同时播放rtsp://公网地址:6999/h265/ch1/main/av_stream,会发现两个视频内容一样,都是rtsp://公网地址:7000/h265/ch1/main/av_stream的内容。反过来,如果先播放第二个地址、再播放第一个地址,那么两个视频都会播放第二个地址。 然后我用内网地址来测试这两个视频,又完全正常,会播放分别各自的内容,内网地址如下: rtsp://192.168.1.29/h265/ch1/main/av_stream rtsp://192.168.0.88/h265/ch1/main/av_stream 公网地址仅仅是内网地址做了路由器映射 请问这种情况如何解决?是不是我设置少了什么东西?
设置的播放模式如下: PlayerFactory.setPlayManager(IjkPlayerManager::class.java)//ijk模式
val list = ArrayList() var videoOptionModel = VideoOptionModel(IjkMediaPlayer.OPT_CATEGORY_FORMAT, "rtsp_transport", "tcp") list.add(videoOptionModel) videoOptionModel = VideoOptionModel(IjkMediaPlayer.OPT_CATEGORY_FORMAT, "rtsp_flags", "prefer_tcp") list.add(videoOptionModel) videoOptionModel = VideoOptionModel(IjkMediaPlayer.OPT_CATEGORY_FORMAT, "allowed_media_types", "video") //根据媒体类型来配置 list.add(videoOptionModel) videoOptionModel = VideoOptionModel(IjkMediaPlayer.OPT_CATEGORY_FORMAT, "timeout", 20000) list.add(videoOptionModel) videoOptionModel = VideoOptionModel(IjkMediaPlayer.OPT_CATEGORY_FORMAT, "buffer_size", 1316) list.add(videoOptionModel) videoOptionModel = VideoOptionModel(IjkMediaPlayer.OPT_CATEGORY_FORMAT, "infbuf", 1) // 无限读 list.add(videoOptionModel) videoOptionModel = VideoOptionModel(IjkMediaPlayer.OPT_CATEGORY_FORMAT, "analyzemaxduration", 100) list.add(videoOptionModel) videoOptionModel = VideoOptionModel(IjkMediaPlayer.OPT_CATEGORY_FORMAT, "probesize", 10240) list.add(videoOptionModel) videoOptionModel = VideoOptionModel(IjkMediaPlayer.OPT_CATEGORY_FORMAT, "flush_packets", 1) list.add(videoOptionModel) // 关闭播放器缓冲,这个必须关闭,否则会出现播放一段时间后,一直卡主,控制台打印 FFP_MSG_BUFFERING_START videoOptionModel = VideoOptionModel(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "packet-buffering", 0) list.add(videoOptionModel)
videoOptionModel = VideoOptionModel(IjkMediaPlayer.OPT_CATEGORY_FORMAT, "dns_cache_clear", 1) list.add(videoOptionModel) GSYVideoManager.instance().setOptionModelList(list)
补充: 我又测试了一下,即使是用域名也会出现这样的问题。但是如果第一个视频用公网IP地址,第二个视频用域名(指向相同的IP),则也正常播放没有问题。
Android 6.0 API 23 模拟器
implementation 'com.shuyu:gsyVideoPlayer-java:6.0.3' implementation 'com.shuyu:gsyVideoPlayer-ex_so:6.0.3'
The text was updated successfully, but these errors were encountered:
目前对于同域下的不同端口播放确实不支持
Sorry, something went wrong.
有没有解决方案
@honganxue #2112
No branches or pull requests
问题描述:
首先,我把IP摄像头映射到2个公网地址,如下:
第一个视频:rtsp://公网地址:7000/h265/ch1/main/av_stream
第二个视频:rtsp://公网地址:6999/h265/ch1/main/av_stream
然后使用了多种方式来尝试播放(SimpleListVideo、MultiSampleVideo),都会出现如果先播放了其中一个视频,再播放另一个视频,那么两个视频都会变成首先被播放的视频。
例如使用MultiSampleVideo进行同时播放,首先播放的是rtsp://公网地址:7000/h265/ch1/main/av_stream,再同时播放rtsp://公网地址:6999/h265/ch1/main/av_stream,会发现两个视频内容一样,都是rtsp://公网地址:7000/h265/ch1/main/av_stream的内容。反过来,如果先播放第二个地址、再播放第一个地址,那么两个视频都会播放第二个地址。
然后我用内网地址来测试这两个视频,又完全正常,会播放分别各自的内容,内网地址如下:
rtsp://192.168.1.29/h265/ch1/main/av_stream
rtsp://192.168.0.88/h265/ch1/main/av_stream
公网地址仅仅是内网地址做了路由器映射
请问这种情况如何解决?是不是我设置少了什么东西?
设置的播放模式如下:
PlayerFactory.setPlayManager(IjkPlayerManager::class.java)//ijk模式
val list = ArrayList()
var videoOptionModel = VideoOptionModel(IjkMediaPlayer.OPT_CATEGORY_FORMAT, "rtsp_transport", "tcp")
list.add(videoOptionModel)
videoOptionModel = VideoOptionModel(IjkMediaPlayer.OPT_CATEGORY_FORMAT, "rtsp_flags", "prefer_tcp")
list.add(videoOptionModel)
videoOptionModel =
VideoOptionModel(IjkMediaPlayer.OPT_CATEGORY_FORMAT, "allowed_media_types", "video") //根据媒体类型来配置
list.add(videoOptionModel)
videoOptionModel = VideoOptionModel(IjkMediaPlayer.OPT_CATEGORY_FORMAT, "timeout", 20000)
list.add(videoOptionModel)
videoOptionModel = VideoOptionModel(IjkMediaPlayer.OPT_CATEGORY_FORMAT, "buffer_size", 1316)
list.add(videoOptionModel)
videoOptionModel = VideoOptionModel(IjkMediaPlayer.OPT_CATEGORY_FORMAT, "infbuf", 1) // 无限读
list.add(videoOptionModel)
videoOptionModel = VideoOptionModel(IjkMediaPlayer.OPT_CATEGORY_FORMAT, "analyzemaxduration", 100)
list.add(videoOptionModel)
videoOptionModel = VideoOptionModel(IjkMediaPlayer.OPT_CATEGORY_FORMAT, "probesize", 10240)
list.add(videoOptionModel)
videoOptionModel = VideoOptionModel(IjkMediaPlayer.OPT_CATEGORY_FORMAT, "flush_packets", 1)
list.add(videoOptionModel)
// 关闭播放器缓冲,这个必须关闭,否则会出现播放一段时间后,一直卡主,控制台打印 FFP_MSG_BUFFERING_START
videoOptionModel = VideoOptionModel(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "packet-buffering", 0)
list.add(videoOptionModel)
videoOptionModel = VideoOptionModel(IjkMediaPlayer.OPT_CATEGORY_FORMAT, "dns_cache_clear", 1)
list.add(videoOptionModel)
GSYVideoManager.instance().setOptionModelList(list)
补充:
我又测试了一下,即使是用域名也会出现这样的问题。但是如果第一个视频用公网IP地址,第二个视频用域名(指向相同的IP),则也正常播放没有问题。
问题机型/系统:
Android 6.0 API 23 模拟器
GSY依赖版本
The text was updated successfully, but these errors were encountered: