IJKPlayer问题集锦之不定时更新
2017-12-05 16:59
316 查看
文章转自:https://juejin.im/post/58475f5da22b9d007aaad45c
大家吼,不知名程序猿小郭同学又冒泡啦,今天是主角是:业界知名,天朝最大异(tong)性交友平台,BILIBILI开源的视频播放器项目,基于FFMPEG的IJKPlayer<( ̄ˇ ̄)/···的问题集锦!好吧,相信刚刚脱离周末,工作两天进入状态的大家,没有什么心情扯蛋,因为···扯多了真的好痛Σ( ° °|||)︴,我们还是开始吧。
1、IJKPlayer 不像系统播放器会给你旋转视频角度,所以你需要通过
2、 IJKPlayer 出现黑色有声音没图像,看看你的视频编码是不是H264,pixel format是否存在,音频编码是不是AAC?默认IJKPlayer是不支持3pg(支持它干啥(・-・*)?),不支持mepg4(比如这个库RecordVideoDemo ),不支持AMR。所以如果你真的想要支持,那么参考这个#1961,打开mpeg4支持,重新编ffmpeg,然后通过硬解码播放mpeg4;或者通过系统的录制VideoRecord;或者选另外的JAVACV录制封装FFmpegRecorder。
3、 快进和慢放接口,只支持API23以上,23以下的支持,是需要自己配置ffmpeg支持
[/code]
4、暂停的时候,退到后台再回到前台,画面黑了?这时候个人处理方式是,可以在暂停的时候,通过
5、一些视频返回码
6、某些视频在SeekTo的时候,会跳回到拖动前的位置,这是因为视频的关键帧的问题,通俗一点就是FFMPEG不兼容,视频压缩过于厉害,seek只支持关键帧,出现这个情况就是原始的视频文件中i 帧比较少,播放器会在拖动的位置找最近的关键帧,目前么,IJKPlayer无解。
7、下载速度可以通过IjkMediaPlayer的
8、高分辨率开启硬解码,不支持的话会自动切换到软解,就算开启mediacodec,如果设备不支持,显示的解码器也是avcodec软解。
9、ijkMediaPlayer.setOption可配置的对应头文件参考:ff_ffplay_options。
10、缓冲进度条不到100,官方表示我就不保证都100,所以一般我都是:
11、上面1、2、6的问题,在IJK封装的EXOPlayer和MediaPlayer都不会有问题,兼容上确实强过IJKPlayer,但是它们在细节上,却没有IJK处理的好,如EXOPlayer:退到后再回到前台、切换渲染控件的黑屏一段时间问题,除了用seekto之外目前没发现其他办法,这样的体验让我最后还是选择IJKPlayer。
总的来说,兼容上还是谷歌的强,但是细节上还是IJKPlayer处理的好,一个是播放器兼容视频,一个是视频兼容播放器,看个人喜好吧︿( ̄︶ ̄)︿!
大家吼,不知名程序猿小郭同学又冒泡啦,今天是主角是:业界知名,天朝最大异(tong)性交友平台,BILIBILI开源的视频播放器项目,基于FFMPEG的IJKPlayer<( ̄ˇ ̄)/···的问题集锦!好吧,相信刚刚脱离周末,工作两天进入状态的大家,没有什么心情扯蛋,因为···扯多了真的好痛Σ( ° °|||)︴,我们还是开始吧。
1、IJKPlayer 不像系统播放器会给你旋转视频角度,所以你需要通过
onInfo的
what == IMediaPlayer.MEDIA_INFO_VIDEO_ROTATION_CHANGED去获取角度,自己旋转画面;或者开启硬解硬解码,不过硬解码容易造成黑屏无声,诸位慎重啊O__O "…。
mediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "mediacodec", 1); mediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "mediacodec-auto-rotate", 1); mediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "mediacodec-handle-resolution-change", 1);
2、 IJKPlayer 出现黑色有声音没图像,看看你的视频编码是不是H264,pixel format是否存在,音频编码是不是AAC?默认IJKPlayer是不支持3pg(支持它干啥(・-・*)?),不支持mepg4(比如这个库RecordVideoDemo ),不支持AMR。所以如果你真的想要支持,那么参考这个#1961,打开mpeg4支持,重新编ffmpeg,然后通过硬解码播放mpeg4;或者通过系统的录制VideoRecord;或者选另外的JAVACV录制封装FFmpegRecorder。
ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "mediacodec", 1); ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "mediacodec_mpeg4", 1);
3、 快进和慢放接口,只支持API23以上,23以下的支持,是需要自己配置ffmpeg支持
avfilter,不过可能会出现声音颤抖等问题,官方说不稳定,参考#1690。
Tryavfilter but the audio sounds shaking = =For avfilter, only support software decoder.
[/code]
4、暂停的时候,退到后台再回到前台,画面黑了?这时候个人处理方式是,可以在暂停的时候,通过
TextureView.getBitmap(point.x, point.y);获取到暂停的画面,用ImageView显示它,在
onSurfaceTextureUpdated的时候隐藏ImageView,来实现画面的衔接。
5、一些视频返回码
int MEDIA_INFO_VIDEO_RENDERING_START = 3;//视频准备渲染 int MEDIA_INFO_BUFFERING_START = 701;//开始缓冲 int MEDIA_INFO_BUFFERING_END = 702;//缓冲结束 int MEDIA_INFO_VIDEO_ROTATION_CHANGED = 10001;//视频选择信息 int MEDIA_ERROR_SERVER_DIED = 100;//视频中断,一般是视频源异常或者不支持的视频类型。 int MEDIA_ERROR_IJK_PLAYER = -10000,//一般是视频源有问题或者数据格式不支持,比如音频不是AAC之类的 int MEDIA_ERROR_NOT_VALID_FOR_PROGRESSIVE_PLAYBACK = 200;//数据错误没有有效的回收
6、某些视频在SeekTo的时候,会跳回到拖动前的位置,这是因为视频的关键帧的问题,通俗一点就是FFMPEG不兼容,视频压缩过于厉害,seek只支持关键帧,出现这个情况就是原始的视频文件中i 帧比较少,播放器会在拖动的位置找最近的关键帧,目前么,IJKPlayer无解。
7、下载速度可以通过IjkMediaPlayer的
getTcpSpeed获取。
8、高分辨率开启硬解码,不支持的话会自动切换到软解,就算开启mediacodec,如果设备不支持,显示的解码器也是avcodec软解。
9、ijkMediaPlayer.setOption可配置的对应头文件参考:ff_ffplay_options。
10、缓冲进度条不到100,官方表示我就不保证都100,所以一般我都是:
//95这个数值可能不准确,有些时候可能还需要低一些 if (secProgress > 95) secProgress = 100;
11、上面1、2、6的问题,在IJK封装的EXOPlayer和MediaPlayer都不会有问题,兼容上确实强过IJKPlayer,但是它们在细节上,却没有IJK处理的好,如EXOPlayer:退到后再回到前台、切换渲染控件的黑屏一段时间问题,除了用seekto之外目前没发现其他办法,这样的体验让我最后还是选择IJKPlayer。
总的来说,兼容上还是谷歌的强,但是细节上还是IJKPlayer处理的好,一个是播放器兼容视频,一个是视频兼容播放器,看个人喜好吧︿( ̄︶ ̄)︿!
相关文章推荐
- 【ECSHOP二次开发】:常见问题集锦(不定时更新)
- 安卓对话框问题集锦-不定时更新
- Vivado_MicroBlaze_问题及解决方法_汇总(不定时更新)
- Matlab常见问题集锦(不断更新)
- 关于mybaties中的一些小问题(不定时更新)
- MySql关于修改字段名/长度相关问题(不定时更新)
- Android学习中遇到的问题集锦(不定期更新)
- MyEclipse8.5中属性设置集锦(不定时更新)
- 嵌入式软件工程师面试必须知道的问题(不定时更新)
- 关于mybaties中的一些小问题(不定时更新)
- SELinux 问题集锦(不断更新中)
- javascript-集锦(定时更新)
- VC如何问题集锦(不断更新中...)
- 问题集锦[更新ing]
- W5500问题集锦(持续更新中)
- 关于mybaties中的一些小问题(不定时更新)
- 网友问我的一些关于ISA的问题(不定时更新中)
- 窗口布局问题集锦(一直都会更新...)
- QT学习过程中遇到的问题集锦(不断更新)
- Quartus/Nios II常见问题集锦-不断更新中