当前位置:   article > 正文

android音视频总结_android exoplayer rtsp格式

android exoplayer rtsp格式

1、流媒体相关

计算机网络知识

流媒体及流媒体传输协议

2、Android开源框架

2.1、开源音频、视频框架

开源播放器内核比较:ijkPlayer、VLC、ExoPlayer、MediaPlayer、SmartPlayer

视频播放(media palyer, video player):

  • ijkplayer(c语言):https://github.com/Bilibili/ijkplayer

  • Exoplayer:https://github.com/google/ (google开源)

  • GSYVideoPlayer:https://github.com/CarGuo/GSYVideoPlayer

  • Jiaozi(饺子、节操):https://github.com/lipangit/JiaoZiVideoPlayer (坑多)

  • Vitamio(强大):https://www.vitamio.org/

  • awesomeplayer:https://github.com/filipebezerra/AwesomePlayer (5.1已经弃用)

  • nuplayer:https://github.com/timsheu/NuPlayer-Android (没有star)

  • mpv(c语言):https://github.com/mpv-player/mpv (基于MPlayer/mplayer2)

  • VideoPlayerManager:https://github.com/danylovolokh/VideoPlayerManager

  • PLDroidPlayer(七牛):https://github.com/pili-engineering/PLDroidPlayer

  • SmarterStreaming(大牛):https://github.com/daniulive/SmarterStreaming (付费)

  • jjdxm_ijkplayer:https://github.com/jjdxmashl/jjdxm_ijkplayer

  • NiceVieoPlayer:https://github.com/xiaoyanger0825/NiceVieoPlayer

开源控件总结

视频缓存(边看边播)

https://github.com/danikula/AndroidVideoCache

视频编辑(video edit):

https://github.com/Zhaoss/WeiXinRecordedDemo
https://github.com/pili-engineering/PLDroidShortVideo
https://github.com/LanSoSdk/LanSoEditor_common
https://github.com/aiyaapp/AiyaEffectsAndroid
https://github.com/yangjie10930/EpMedia
https://github.com/rdsdk/rdVideoEditSDK-for-Android

音频:

  • UniversalMusicPlayer:https://github.com/googlesamples/android-UniversalMusicPlayer
  • JamsMusicPlayer:https://github.com/psaravan/JamsMusicPlayer
  • Timber: https://github.com/naman14/Timber
  • StylishMusicPlayer:https://github.com/ryanhoo/StylishMusicPlayer
  • JamsMusicPlayer:https://github.com/psaravan/JamsMusicPlayer
  • Music-Player:https://github.com/andremion/Music-Player
  • SmarterStreaming:https://github.com/daniulive/SmarterStreaming

视频编码器:

  • MediaCodec
  • FFmpeg

最简单的基于FFmpeg的移动端例子:

微信Android视频编码爬过的那些坑

2.2、视频播放器总结

1、原生VideoView

v2.6.4及以前(VideoPlayActivity.java)

  • 适合最简单的视频播放,存在兼容问题
  • 需要新打开Activity来播放

Android MediaPlayer的生命周期

2、JiaoZiVideoPlayer(饺子、节操)

JieCao 是作者最开始开发的,后面更新为Jiaozi 视频。

https://github.com/lipangit/JieCaoVideoPlayer

implementation('fm.jiecao:jiecaovideoplayer:5.5.4') 

<fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard
    android:id="@+id/jc_video"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"/>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

https://github.com/lipangit/JiaoZiVideoPlayer

compile 'cn.jzvd:jiaozivideoplayer:6.2.7'

<cn.jzvd.JZVideoPlayerStandard
    android:id="@+id/videoplayer"
    android:layout_width="match_parent"
    android:layout_height="200dp"/>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

https://github.com/Jzvd/JZVideo

  • 在Fragment中无法监听返回键和画面切换,所有需要特殊处理。

注意:

  • 一般不需要新开activity来播放视频。

  • activity关闭时注意回收播放器。

      @Override
      
      protected void onPause() {
          super.onPause();
          JZVideoPlayer.releaseAllVideos();
      }
    
      @Override
      public void onBackPressed() {
          if (JZVideoPlayer.backPress()) {
              return;
          }
          super.onBackPressed();
      }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
  • activity的配置问题(竖向、转动)-

JiaoZiVideoPlayer源码分析

https://segmentfault.com/a/1190000011959615

https://blog.csdn.net/zhjin8510/article/details/95460829

饺子播放器源码解析与评估

该播放器的核心实现类为以上几个。

  • JZVideoPlayer为继承自FrameLayout实现的一个组合自定义View来实现了视频播放器的View相关的内容。
  • JZVideoPlayerStandard则是继承自JZVideoPlayer实现了一些自身的功能。
  • JZMediaManager是用来对于MediaPlayer的管理,对于MediaPlayer的一些监听器方法的回调和TextrueView的相关回调处理。
  • JZVideoPlayerManager管理JZVideoPlayer

JZ提供两种播放引擎

  • JZMediaSystem(默认、基于MediaPlayer)
  • JZMediaIjkplayer(基于IjkMediaPlayer)

补充说明:JZMediaIjkplayer集成了ijkplayer(tv.danmaku.ijk.media.player.IMediaPlayer).

3、GSYVideoPlayer

https://github.com/CarGuo/GSYVideoPlayer

视频播放器(IJKplayer、ExoPlayer、MediaPlayer),HTTPS,支持弹幕,外挂字幕,支持滤镜、水印、gif截图,片头广告、中间广告,多个同时播放,支持基本的拖动,声音、亮度调节,支持边播边缓存,支持视频自带rotation的旋转(90,270之类),重力旋转与手动旋转的同步支持,支持列表播放 ,列表全屏动画,视频加载速度,列表小窗口支持拖动,动画效果,调整比例,多分辨率切换,支持切换播放器,进度条小窗口预览,列表切换详情页面无缝播放,rtsp、concat、mpeg。

4、NiceVieoPlayer

https://github.com/xiaoyanger0825/NiceVieoPlayer 未维护

整个功能有参考节操播放器,但是自己这样封装和节操播放器还是有很大差异:

  • 用IjkPlayer/MediaPlayer + TextureView封装,可切换IjkPlayer、MediaPlayer.
  • 支持本地和网络视频播放.
  • 完美切换小窗口、全屏,可在RecyclerView中无缝全屏.
  • 手势滑动调节播放进度、亮度、声音.
  • 支持清晰度切换.
  • 可自定义控制界面.

5、ijkplayer解析

Android ijkplayer的使用解析

常用类:IMediaPlayer,IjkMediaPlayer,IjkTimedText

6、对比

库名支持support的版本支持AndroidX的版本Start数
ExoPlayerv2.9.6v2.10.0 +18.1K
GSYVideoPlayerv6.0.3v7.0.0 +16.6K
JzVideov7.2.0v7.2.1 +10.4k =>1.8K
DKVideoPlayerv3.0.3v3.0.4+3.6K

2.3、短视频SDK

阿里趣拍云

七牛短视频SDK

百度智能云短视频 OneSDK

腾讯云短视频 SDK

涂图SDK

美摄SDK

又拍云SDK

3、直播

Android直播实现(Android端推流、播放)

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/852519
推荐阅读
相关标签
  

闽ICP备14008679号