Skip to content
New issue

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

MP4 播放卡顿和加载慢的请看 #2413

Open
CarGuo opened this issue Nov 19, 2019 · 16 comments
Open

MP4 播放卡顿和加载慢的请看 #2413

CarGuo opened this issue Nov 19, 2019 · 16 comments

Comments

@CarGuo
Copy link
Owner

CarGuo commented Nov 19, 2019

一般 ijk 默认内核,如果存在卡顿或者不同步,一般是因为软解码处理不过来,可以尝试问题集锦的丢帧处理,或者切到都 exoplayer 内核。

同时有的MP4写的不合理。
近似位置的audio video pts相差比较大。
导致不断的请求206 partial content来回seek读取流内容。曾经遇到过1个100多M的视频,播放消耗掉移动流量几个G的情况。查了很久才发现是媒体文件有缺陷。本地播放不会有这个问题。

bilibili/ijkplayer#4808 (comment)

@CarGuo CarGuo changed the title MP4 播放卡顿和加载慢 MP4 播放卡顿和加载慢的请看 Nov 20, 2019
@zijin2014
Copy link

首次播放Mp4视频画面和声音会卡顿,退出播放页面,重新进来播放同样视频,就很流畅了,请问这是什么原因呢?

@CarGuo
Copy link
Owner Author

CarGuo commented Jan 10, 2020

是不是缓存到本地了?

@zijin2014
Copy link

zijin2014 commented Jan 10, 2020

是不是缓存到本地了?
是的,有缓存。我断开网络能缓存播放。第一次播放能设置提前缓冲吗
第一次播放总感觉很卡

@zijin2014
Copy link

    VideoOptionModel videoOptionModel10 = new VideoOptionModel(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "packet-buffering", 1024);

我开启了缓冲应该好了

@CarGuo
Copy link
Owner Author

CarGuo commented Jan 10, 2020

这个不是一回事,你可以先看看 https://mp.weixin.qq.com/s/HjSdmAsHuvixCH_EWdvk3Q

缓冲和缓存不一样。

感觉如果本地没问题,网络有问题,可能就是流媒体的问题。

@zijin2014
Copy link

那种第一次播放一卡一卡的问题,可能怎样才能解决呢?实时流量显示的也是1M多播放的

@CarGuo
Copy link
Owner Author

CarGuo commented Jan 10, 2020

你可以看到文章说的,IBP帧解析的原理,有可能是帧率或者帧排布的原因。

你可以试试切换playermanager 到 exo

@zijin2014
Copy link

你可以看到文章说的,IBP帧解析的原理,有可能是帧率或者帧排布的原因。

你可以试试切换playermanager 到 exo
试过,切到 exo 我的音频没有声音,但是确实不卡。ijk 我加入了adpcm

@ZengHongHua
Copy link

请问下,怎么播放本地视频,没找到播放本地视频的方法呢

@CarGuo
Copy link
Owner Author

CarGuo commented Apr 25, 2020

@ZengHongHua file:// 或者用 content://,看demo 的 detailplayer

@huangxiaoyu
Copy link

播放本地下载的1个多小时mp4的时候 ,文件大概300-400M那样,总是先有声音,黑屏2-3s之后画面才出来 能不能画面和声音同时出来? 播放在线m3u8正常

@CarGuo
Copy link
Owner Author

CarGuo commented Jun 23, 2020

@huangxiaoyu 默认内核是 cpu 软解吗的,你的码率和帧率太高会这样,比如你可以切换到 exo 内核模式试试。https://mp.weixin.qq.com/s/HjSdmAsHuvixCH_EWdvk3Q

@CarGuo CarGuo closed this as completed Jul 29, 2020
@CarGuo CarGuo reopened this Jul 29, 2020
@Jayxiang
Copy link

Jayxiang commented Dec 9, 2020

最近遇到了这个问题,咨询几个问题:

  1. 如何检测这种情况呢
  2. 能否通过修改 ijk 相关代码解决呢?

@zhouwenton
Copy link

播放本地mp4,声音和视频不同步,已经关闭了硬解码,也切换到EXO内核模式,也降低了倍数,但是依旧不同步

@cyclonevox
Copy link

你好 我遇到一个类似的问题 与本项目无关 但是希望大佬能解答一下,大概也是踩了类似的坑吧。上传到云盘上以后,当浏览器加载mp4视频时,遇到你上面说的,会不断的去做206的请求,这是加载别的mp4没有遇到的,而且视频也会很卡顿。想排查是否是视频出现你说的问题。我通过使用ffprobe 获取了视频 audio 和vidio的 每帧的信息,但是我对这个 “pts相差比较大” 没有概念。望解答

顺便附上 ffprobe 获取的每帧的pts等信息
https://share.weiyun.com/cEyHQBJh
https://share.weiyun.com/m5dCAjEB

@mlp1995
Copy link

mlp1995 commented May 24, 2024

大佬能不能详细讲讲 pts相差比较大 是什么概念啊

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

8 participants