博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
EasyPlayer RTSP Android安卓播放器修复播放画面卡在第一帧bug
阅读量:4557 次
发布时间:2019-06-08

本文共 1088 字,大约阅读时间需要 3 分钟。

本文转自EasyDarwin团队成员John的博客:http://blog.csdn.net/jyt0551/article/details/75717097

最近发现某些手机在运行EasyPlayer播放视频时,会停留在第一帧画面,虽然有码率预示着接收端没有问题,但是画面却卡着不动.

这里写图片描述

一般来讲,这个现象有三种原因导致:

  • 没有接收到视频帧;
  • 解码器出错,只解出了第一帧图像;
  • 时间戳计算有误,导致长时间sleep;

那逐一排查下.首先在媒体帧回调的地方下个断点,发现的确有视频帧接收到,并且视频帧最终正常地push到解码的队列当中了,说明第一个假设不成立.

其次,我们看看解码器,似乎也正常工作,没有打印任何异常信息.解码线程也并未退出.那也第二个原因也初步排除.

第三步,重新播放下,跟进到解码线程里面.发现最终sleep时间大的惊人.解码线程解完首帧后就一直在睡眠状态了.再跟踪一次,发现是硬解码初始化失败了,自动切换到软解码,而在软解码完成首帧解码后,未把该帧的时间戳赋值给时间戳,这样实际上首帧时间戳为0了,后续视频帧的时间戳与首帧时间戳相隔太大.sleep时间也随之变得很大. 

这个bug较难出现,只有某些手机在硬解码出错后,自动切换到软解码的情况下才会出现,但是大多数手机硬解码都能正常工作.

找到问题后,解决了这个问题,就可以顺利播放了.

EasyPlayer项目地址

EasyPlayer是由EasyDarwin开源团队开发和维护的一个流媒体播放器项目,目前有RTSP版和Pro版两个版本,RTSP支持Windows(支持多窗口、包含ActiveXnpAPI Web插件)、Android平台,iOS平台,视频支持H.264H.265MPEG4MJPEG,音频支持G711AG711UG726AAC,支持RTSP over TCP/UDP,支持硬解码,是一套极佳的RTSP流播放组件;

EasyPlayer Pro版支持RTSP、RTMP、HTTP、HLS等各种流媒体协议播放,稳定、高效、可靠,支持Windows、Android、iOS!

Android EasyPlayerPro全功能版本下载: 

Android EasyPlayer RTSP专用版下载: 
iOS EasyPlayer下载: 
EasyPlayer Github地址:

获取更多信息

邮件:

WEB:

Copyright © EasyDarwin.org 2012-2017

EasyDarwin

转载于:https://www.cnblogs.com/babosa/p/9217801.html

你可能感兴趣的文章
dojo从asp.net中获取json数据
查看>>
jQuery之animate()用法
查看>>
支付宝接口文档说明
查看>>
WCF Rest post请求
查看>>
线程的分离状态与结合状态
查看>>
Css中类、id应用hover动作详解
查看>>
unity3d之进度条跟着游戏对象移动
查看>>
016序列
查看>>
Angularjs+Bootstrap实现分页指令
查看>>
国内yum源的安装(163,阿里云,epel)
查看>>
Python【读取文件,第一行与最后一行】
查看>>
.NET 应用程序界面开发经验总结 设计良好的程序的表现之一就是细节做的还可以...
查看>>
反汇编简介
查看>>
Android 获取系统短信内容
查看>>
不看好运维竖井产品模式,优云打造融合化运维PaaS平台
查看>>
java基础--extension package guava(2) cache
查看>>
SQL Server中的Merge关键字
查看>>
安装nginx
查看>>
Google Hack的一些整理
查看>>
[贪心] JZOJ P3757 随机生成器
查看>>