bilibili / ijkplayer

Android/iOS video player based on FFmpeg n3.4, with MediaCodec, VideoToolbox support.
GNU General Public License v2.0
32.41k stars 8.11k forks source link

iOS 同时拉两路RTSP流,会导致卡顿,但是单独拉任何一路是不卡的,延迟200ms左右 #5590

Open chenanghui opened 4 months ago

chenanghui commented 4 months ago

iOS,RSTP协议流,H265格式,1080P,硬解,拉流都正常,不卡顿,延迟也只有200ms,但是如果再创建一个player开一路,就会导致卡顿,延迟也不高,有人知道为什么吗?

chenanghui commented 4 months ago

有没有搞过同时开2路流的或者知不知道ijkplayer到底支不支持同时开两路,或者硬解能不能支持同时解两路h265 1080的流,谢谢

chenanghui commented 4 months ago

已经搞定了,问题出在ffmpeg库上,默认拉下来的版本是ff3.4--ijk0.8.7--20180103--001 修改到最新的版本ff4.0--ijk0.8.8--20210426--001,这样就可以同时开两路实时流不卡顿了 目前我是两路1080P的RTSP实时流,H265,延迟在200ms,暂时可以用,后续看还能不能降低下延迟到200以内,在这里记录下,后续如果有人遇到这个问题可以尝试下

shesio commented 3 months ago

已经搞定了,问题出在ffmpeg库上,默认拉下来的版本是ff3.4--ijk0.8.7--20180103--001 修改到最新的版本ff4.0--ijk0.8.8--20210426--001,这样就可以同时开两路实时流不卡顿了 目前我是两路1080P的RTSP实时流,H265,延迟在200ms,暂时可以用,后续看还能不能降低下延迟到200以内,在这里记录下,后续如果有人遇到这个问题可以尝试下

大神,如何修改的最新版本的ffmpeg呢,给指明下方向吧

chenanghui commented 3 months ago

已经搞定了,问题出在ffmpeg库上,默认拉下来的版本是ff3.4--ijk0.8.7--20180103--001修改到最新的版本ff4.0--ijk0.8.8--20210426--001 ,这样就可以同时开两路实时流不卡顿了,目前我是两路1080P的RTSP实时流,H265,延迟在200ms,暂时用,后续看还能不能降低下延迟到200以内可以,这里记录一下下,后续如果有人遇到这个问题可以尝试下

大神,如何修改最新版本的ffmpeg呢,给指明下方向吧

init-ios.sh文件中修改 IJK_FFMPEG_COMMIT=ff4.0--ijk0.8.8--20210426--001

lifution commented 3 months ago

已经搞定了,问题出在ffmpeg库上,默认拉下来的版本是ff3.4--ijk0.8.7--20180103--001 修改到最新的版本ff4.0--ijk0.8.8--20210426--001,这样就可以同时开两路实时流不卡顿了 目前我是两路1080P的RTSP实时流,H265,延迟在200ms,暂时可以用,后续看还能不能降低下延迟到200以内,在这里记录下,后续如果有人遇到这个问题可以尝试下

你好,你能编译通过吗?我也想着重新编译为 FFmpeg4.0 并需要支持 RTSP 协议,但是编译一直报错(下图)。 我是 M1,macOS 14.5,Xcode 15.4,如果有解决方法还望能分享一下,如果方便的话分享一下已编译好的 IJKMediaFramework 文件就更好了,感谢 🙏

chenanghui commented 3 months ago

已经搞定了,问题出在ffmpeg库上,默认拉下来的版本是ff3.4--ijk0.8.7--20180103--001 修改到最新的版本ff4.0--ijk0.8.8--20210426--001,这样就可以同时开两路实时流不卡顿了 目前我是两路1080P的RTSP实时流,H265,延迟在200ms,暂时可以用,后续看还能不能降低下延迟到200以内,在这里记录下,后续如果有人遇到这个问题可以尝试下

你好,你能编译通过吗?我也想着重新编译为 FFmpeg4.0 并需要支持 RTSP 协议,但是编译一直报错(下图)。 我是 M1,macOS 14.5,Xcode 15.4,如果有解决方法还望能分享一下,如果方便的话分享一下已编译好的 IJKMediaFramework 文件就更好了,感谢 🙏

你不改版本编译也报错吗

lifution commented 3 months ago

已经搞定了,问题出在ffmpeg库上,默认拉下来的版本是ff3.4--ijk0.8.7--20180103--001 修改到最新的版本ff4.0--ijk0.8.8--20210426--001,这样就可以同时开两路实时流不卡顿了 目前我是两路1080P的RTSP实时流,H265,延迟在200ms,暂时可以用,后续看还能不能降低下延迟到200以内,在这里记录下,后续如果有人遇到这个问题可以尝试下

你好,你能编译通过吗?我也想着重新编译为 FFmpeg4.0 并需要支持 RTSP 协议,但是编译一直报错(下图)。 我是 M1,macOS 14.5,Xcode 15.4,如果有解决方法还望能分享一下,如果方便的话分享一下已编译好的 IJKMediaFramework 文件就更好了,感谢 🙏

你不改版本编译也报错吗

是的,旧版本也是同样的错误。查了好久都没找到解决方法,网上找的已编译好的 IJKMediaFramework 又不支持 RTSP 协议。现在就很苦恼 😭

chenanghui commented 3 months ago

已经搞定了,问题出在ffmpeg库上,默认拉下来的版本是ff3.4--ijk0.8.7--20180103--001 修改到最新的版本ff4.0--ijk0.8.8--20210426--001,这样就可以同时开两路实时流不卡顿了 目前我是两路1080P的RTSP实时流,H265,延迟在200ms,暂时可以用,后续看还能不能降低下延迟到200以内,在这里记录下,后续如果有人遇到这个问题可以尝试下

你好,你能编译通过吗?我也想着重新编译为 FFmpeg4.0 并需要支持 RTSP 协议,但是编译一直报错(下图)。 我是 M1,macOS 14.5,Xcode 15.4,如果有解决方法还望能分享一下,如果方便的话分享一下已编译好的 IJKMediaFramework 文件就更好了,感谢 🙏

你不改版本编译也报错吗

是的,旧版本也是同样的错误。查了好久都没找到解决方法,网上找的已编译好的 IJKMediaFramework 又不支持 RTSP 协议。现在就很苦恼 😭

不至于吧,按照网上的帖子编译,是不会有什么问题的

chenanghui commented 3 months ago

已经搞定了,问题出在ffmpeg库上,默认拉下来的版本是ff3.4--ijk0.8.7--20180103--001 修改到最新的版本ff4.0--ijk0.8.8--20210426--001,这样就可以同时开两路实时流不卡顿了 目前我是两路1080P的RTSP实时流,H265,延迟在200ms,暂时可以用,后续看还能不能降低下延迟到200以内,在这里记录下,后续如果有人遇到这个问题可以尝试下

你好,你能编译通过吗?我也想着重新编译为 FFmpeg4.0 并需要支持 RTSP 协议,但是编译一直报错(下图)。 我是 M1,macOS 14.5,Xcode 15.4,如果有解决方法还望能分享一下,如果方便的话分享一下已编译好的 IJKMediaFramework 文件就更好了,感谢 🙏

你不改版本编译也报错吗

是的,旧版本也是同样的错误。查了好久都没找到解决方法,网上找的已编译好的 IJKMediaFramework 又不支持 RTSP 协议。现在就很苦恼 😭

不至于吧,按照网上的帖子编译,是不会有什么问题的

https://www.jianshu.com/p/49fa608b448f 你按照这个,然后生成生成新的 module.sh的时候不用module-lite.sh,直接用module-default.sh来生成module.sh,里面的内容不需要改动

image

也就是 执行rm module.sh 删除 然后ln -s module-default.sh module.sh 这样就支持rtsp了,其他的都按照文档上的就可以了

lifution commented 3 months ago

已经搞定了,问题出在ffmpeg库上,默认拉下来的版本是ff3.4--ijk0.8.7--20180103--001 修改到最新的版本ff4.0--ijk0.8.8--20210426--001,这样就可以同时开两路实时流不卡顿了 目前我是两路1080P的RTSP实时流,H265,延迟在200ms,暂时可以用,后续看还能不能降低下延迟到200以内,在这里记录下,后续如果有人遇到这个问题可以尝试下

你好,你能编译通过吗?我也想着重新编译为 FFmpeg4.0 并需要支持 RTSP 协议,但是编译一直报错(下图)。 我是 M1,macOS 14.5,Xcode 15.4,如果有解决方法还望能分享一下,如果方便的话分享一下已编译好的 IJKMediaFramework 文件就更好了,感谢 🙏

你不改版本编译也报错吗

是的,旧版本也是同样的错误。查了好久都没找到解决方法,网上找的已编译好的 IJKMediaFramework 又不支持 RTSP 协议。现在就很苦恼 😭

不至于吧,按照网上的帖子编译,是不会有什么问题的

https://www.jianshu.com/p/49fa608b448f 你按照这个,然后生成生成新的 module.sh的时候不用module-lite.sh,直接用module-default.sh来生成module.sh,里面的内容不需要改动 image 也就是 执行rm module.sh 删除 然后ln -s module-default.sh module.sh 这样就支持rtsp了,其他的都按照文档上的就可以了

好的,我试试,感谢

chenanghui commented 3 months ago

这里是我编译好的支持rtsp硬解码的文件,ffmpeg4.0 链接: https://pan.baidu.com/s/1FCxYxMrmd3soUp0AGDFhkg?pwd=sjiv 提取码: sjiv

chenanghui commented 3 months ago

已经搞定了,问题出在ffmpeg库上,默认拉下来的版本是ff3.4--ijk0.8.7--20180103--001 修改到最新的版本ff4.0--ijk0.8.8--20210426--001,这样就可以同时开两路实时流不卡顿了 目前我是两路1080P的RTSP实时流,H265,延迟在200ms,暂时可以用,后续看还能不能降低下延迟到200以内,在这里记录下,后续如果有人遇到这个问题可以尝试下

你好,你能编译通过吗?我也想着重新编译为 FFmpeg4.0 并需要支持 RTSP 协议,但是编译一直报错(下图)。 我是 M1,macOS 14.5,Xcode 15.4,如果有解决方法还望能分享一下,如果方便的话分享一下已编译好的 IJKMediaFramework 文件就更好了,感谢 🙏

你不改版本编译也报错吗

是的,旧版本也是同样的错误。查了好久都没找到解决方法,网上找的已编译好的 IJKMediaFramework 又不支持 RTSP 协议。现在就很苦恼 😭

不至于吧,按照网上的帖子编译,是不会有什么问题的

https://www.jianshu.com/p/49fa608b448f 你按照这个,然后生成生成新的 module.sh的时候不用module-lite.sh,直接用module-default.sh来生成module.sh,里面的内容不需要改动 image 也就是 执行rm module.sh 删除 然后ln -s module-default.sh module.sh 这样就支持rtsp了,其他的都按照文档上的就可以了

好的,我试试,感谢

我在下面贴了我编译好的文件,如果你还搞不定用我那个试试看,不知道行不行

lifution commented 3 months ago

这里是我编译好的支持rtsp硬解码的文件,ffmpeg4.0 链接: https://pan.baidu.com/s/10TMg3d_54B-xCe_o3Vd6ag?pwd=rer5 提取码: rer5 复制这段内容后打开百度网盘手机App,操作更方便哦

非常感谢 🙏

lifution commented 3 months ago

这里是我编译好的支持rtsp硬解码的文件,ffmpeg4.0 链接: https://pan.baidu.com/s/10TMg3d_54B-xCe_o3Vd6ag?pwd=rer5 提取码: rer5 复制这段内容后打开百度网盘手机App,操作更方便哦

你这个好像是安卓使用的,我这边是 iOS 的。我是在最后一步编译打包为 iOS 所用的 framework 文件时才报错的,可能和安卓有点不一样,所以你那边才没遇到上面这个错误。不过还是感谢你的指导 🙏 如果实在不行我就换成 VLC 好了 😂

lifution commented 3 months ago

这里是我编译好的支持rtsp硬解码的文件,ffmpeg4.0 链接: https://pan.baidu.com/s/10TMg3d_54B-xCe_o3Vd6ag?pwd=rer5 提取码: rer5 复制这段内容后打开百度网盘手机App,操作更方便哦

非常感谢 🙏

这里的包,是没有做网络优化的,因为我自己用是直连,所以延迟上不需要加网络优化,目前我自己的延迟是200ms,如果需要网络优化,可以自己处理一下https://blog.csdn.net/u011686167/article/details/85256101

好的,感谢

chenanghui commented 3 months ago

这里是我编译好的支持rtsp硬解码的文件,ffmpeg4.0 链接: https://pan.baidu.com/s/10TMg3d_54B-xCe_o3Vd6ag?pwd=rer5 提取码: rer5 复制这段内容后打开百度网盘手机App,操作更方便哦

你这个好像是安卓使用的,我这边是 iOS 的。我是在最后一步编译打包为 iOS 所用的 framework 文件时才报错的,可能和安卓有点不一样,所以你那边才没遇到上面这个错误。不过还是感谢你的指导 🙏 如果实在不行我就换成 VLC 好了 😂

我这是iOS的包啊。。。我自己也是用的这个包,也是iOS项目

chenanghui commented 3 months ago

这里是我编译好的支持rtsp硬解码的文件,ffmpeg4.0 链接: https://pan.baidu.com/s/1FCxYxMrmd3soUp0AGDFhkg?pwd=sjiv 提取码: sjiv

你这个好像是安卓使用的,我这边是 iOS 的。我是在最后一步编译打包为 iOS 所用的 framework 文件时才报错的,可能和安卓有点不一样,所以你那边才没遇到上面这个错误。不过还是感谢你的指导 🙏 如果实在不行我就换成 VLC 好了 😂

我这是iOS的包啊。。。我自己也是用的这个包,也是iOS项目

image

这不就是iOS的包么

lifution commented 3 months ago

这里是我编译好的支持rtsp硬解码的文件,ffmpeg4.0 链接: https://pan.baidu.com/s/10TMg3d_54B-xCe_o3Vd6ag?pwd=rer5 提取码: rer5 复制这段内容后打开百度网盘手机App,操作更方便哦

你这个好像是安卓使用的,我这边是 iOS 的。我是在最后一步编译打包为 iOS 所用的 framework 文件时才报错的,可能和安卓有点不一样,所以你那边才没遇到上面这个错误。不过还是感谢你的指导 🙏 如果实在不行我就换成 VLC 好了 😂

我这是iOS的包啊。。。我自己也是用的这个包,也是iOS项目

可能上传错了,我下载解压后是三个 so 文件,这好像是安卓那边使用的链接库。

lifution commented 3 months ago

这里是我编译好的支持rtsp硬解码的文件,ffmpeg4.0 链接: https://pan.baidu.com/s/10TMg3d_54B-xCe_o3Vd6ag?pwd=rer5 提取码: rer5 复制这段内容后打开百度网盘手机App,操作更方便哦

你这个好像是安卓使用的,我这边是 iOS 的。我是在最后一步编译打包为 iOS 所用的 framework 文件时才报错的,可能和安卓有点不一样,所以你那边才没遇到上面这个错误。不过还是感谢你的指导 🙏 如果实在不行我就换成 VLC 好了 😂

我这是iOS的包啊。。。我自己也是用的这个包,也是iOS项目

image 这不就是iOS的包么

你好,可以分享一下编译后的 IJKMediaFramework.framework 文件么。我按照上面的方法用 module-default.sh 再重新编译,一样是报同样的错误,真不知是问题出在哪了,折腾了两天了 😭

chenanghui commented 3 months ago

处理好的支持rtsp及h.265的包,网络优化未做太多,如果自己想做网络优化,可以在网上找下别的贴子自己编译处理 链接: https://pan.baidu.com/s/1FCxYxMrmd3soUp0AGDFhkg?pwd=sjiv 提取码: sjiv

chenanghui commented 3 months ago

这里是我编译好的支持rtsp硬解码的文件,ffmpeg4.0 链接: https://pan.baidu.com/s/10TMg3d_54B-xCe_o3Vd6ag?pwd=rer5 提取码: rer5 复制这段内容后打开百度网盘手机App,操作更方便哦

你这个好像是安卓使用的,我这边是 iOS 的。我是在最后一步编译打包为 iOS 所用的 framework 文件时才报错的,可能和安卓有点不一样,所以你那边才没遇到上面这个错误。不过还是感谢你的指导 🙏 如果实在不行我就换成 VLC 好了 😂

我这是iOS的包啊。。。我自己也是用的这个包,也是iOS项目

可能上传错了,我下载解压后是三个 so 文件,这好像是安卓那边使用的链接库。

可能是发错了连接,新发了连接可以看看行不行

lifution commented 3 months ago

这里是我编译好的支持rtsp硬解码的文件,ffmpeg4.0 链接: https://pan.baidu.com/s/10TMg3d_54B-xCe_o3Vd6ag?pwd=rer5 提取码: rer5 复制这段内容后打开百度网盘手机App,操作更方便哦

你这个好像是安卓使用的,我这边是 iOS 的。我是在最后一步编译打包为 iOS 所用的 framework 文件时才报错的,可能和安卓有点不一样,所以你那边才没遇到上面这个错误。不过还是感谢你的指导 🙏 如果实在不行我就换成 VLC 好了 😂

我这是iOS的包啊。。。我自己也是用的这个包,也是iOS项目

可能上传错了,我下载解压后是三个 so 文件,这好像是安卓那边使用的链接库。

可能是发错了连接,新发了连接可以看看行不行

收到,感谢 🙏