网页无插件视频流媒体播放器EasyPlayerPro-IOS版如何解决有声音无画面的问题?
近期我TSINGSEE青犀视频接到两个不同的用户反馈,称将EasyPlayerPro集成进iOS播放器里,出现了声音存在,但没有画面显示的现象。对于此我也比较纳闷,因此我逐个排查了一下原因。
原因一:视频编码静态库未配置
在我排查的过程中,发现这个流的视频编码是MPEG4的格式,而在编译ijkplayer静态库的时候没有加入相关配置。
1、在ijkplayer-master的config文件夹下打开module-pro.sh, 在# ./configure --list-decoders下添加如下代码:
1 2 | export COMMON_FF_CFG_FLAGS= "$COMMON_FF_CFG_FLAGS --enable-decoder=mpegvideo" export COMMON_FF_CFG_FLAGS= "$COMMON_FF_CFG_FLAGS --enable-decoder=mpeg4" |
2、添加后重新编译一下你的FFmpeg
1 2 | ./compile-ffmpeg.sh clean ./compile-ffmpeg.sh all |
3、然后打开IJKMediaPlayer.xcodeproj项目,编译IJKMediaFramework.framework库。
原因二:SDL渲染画面未处理数据
还有一种情况,是由于SDL渲染画面后,没有及时的清理数据,导致画面接收失败,而音频正常播放。
1、在IJKSDLGLView.m文件中,- (BOOL)setupEAGLContext:(EAGLContext *)context 方法中添加代码: [CATransaction flush];
2、在- (void)displayInternal: (SDL_VoutOverlay *) overlay 方法中也添加代码:
[CATransaction flush];
分类:
EasyPlayer
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 提示词工程——AI应用必不可少的技术
· 地球OL攻略 —— 某应届生求职总结
· 字符编码:从基础到乱码解决
· SpringCloud带你走进微服务的世界