为解决RTSP源在TVBox中播放时遇到的一些问题,定制了IPTV影视壳

家里IPTV运营商的点播节目及电视回看都是使用的rtsp源,但试用了几个TVBox改版(OK影视、takagen99、影视仓等),对rtsp源的播放都有些问题。rtsp源或者没法正常播放,或者不能快进快退操作。无论是使用内置的exoplayer还是ijkplayer,没办法只好自己动手了。因为exoplayer对rtsp的支持更差,所以选择了对内置ijkplayer做了些修改来更好地支持家中IPTV rtsp源的播放。基于开源的OK影视最新版(v2.4.4)重新编译定制了一个影视IPTV壳。加上定制的运营商IPTV源,就有了一个家中IPTV的软终端,IPTV电视直播、回看、点播都可以完美支持。

影视IPTV壳与原始的OK影视相比,主要是做了下面一些修改。

ijkplayer播放器rtsp udp传输支持

默认的ijkplayer在程序中对rtsp源的播放硬编码使用tcp传输方式,不支持udp传输方式。而家中IPTV的电视回看及点播节目的rtsp源都只支持udp传输方式,造成相应节目在ijkplayer中无法播放。修改为tcp优先方式,先尝试使用tcp传输方式,如果tcp传输方式不支持,则改用udp传输方式。修改之后,原来不能播放的IPTV电视回看和点播节目都可以正常播放了。

ijkplayer播放器rtsp视频的快进快退及进度条拖动支持

内置的ijkplayer播放器,在播放rtsp源的IPTV点播视频时,使用快进快退或者进度条拖动时就会出问题。主要原因是ijkplayer使用的ffmpeg版本对rtsp源播放时暂停状态处理的一个bug。修改后rtsp源的IPTV点播节目就可以正常快进快退或者拖动进度条了。

ijkplayer播放器电视回看源快进快退进度条拖动支持

前面的问题修正后,rtsp点播节目可以快进快退了,但电视回看中的快进快退或者进度条拖动还有问题,需要额外的修正。主要是因为电视回看节目一般只是回看一段时间,起始视频帧上会附带一个起始时间。在快进快退进度条拖动时,需要向后台请求新的播放起始位置。原有的实现对新起始位置的计算有问题,因而导致执行进快进退或者进度条拖动后视频会不能继续播放。修改之后,电视回看节目也就可以快进快退或者拖动进度条了。

修改应用ID,支持与原始OK影视同时安装

了修改的影视IPTV后,再安装原始的OK影视新版会有冲突,同一个应用ID不允许再安装。解决方法是修改一下应用的应用ID及相关信息,另外应用名字也换成影视IPTV方便区别。这样可以支持定制的影视IPTV和原始的OK影视一起安装使用了。

支持影视IPTV的在线升级

在多个设备安装后,有更新再一个个设备手工上传升级应用新版本也挺烦。影视的在线升级做的不错,在原有的框架下,自己定制的影视IPTV也很方便地实现了在线升级功能。

以上是自己在使用OK影视播放家中IPTV运营商rtsp源节目时遇到的问题及自己定制的影视IPTV说明。个人兴趣的作品,不能提供任何保证。有遇到同样问题的朋友可以私信交流。

原文链接:,转发请注明来源!