最近正在搞几个音视频相关的开源项目,后面会持续更新,简单介绍一下:

MediaSDK

https://github.com/JeffMony/MediaSDK

这是一个专注音视频边下边播的库,目前已经完全开源

主要的功能如下:


  • 实现HLS-M3U8视频的边下边播功能;
  • 实现其他非M3U8视频的边下边播功能
  • 实现视频缓LRU清理功能
  • 实现本地代理功能,有baseProxyServer和androidasync两种实现方式
  • 实现ijkplayer 和 exoplayer播放库


下面是架构图


如何在小视频源码里实现边下边播_ide



示意图如下:

如何在小视频源码里实现边下边播_github_02

如何在小视频源码里实现边下边播_视频下载_03

下面是接入方式:


allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}

dependencies {
implementation 'com.github.JeffMony:MediaSDK:2.0.0'
}

具体的接入方式见github

VideoDownloader

https://github.com/JeffMony/VideoDownloader

这是一个专注音视频下载的sdk,主要功能如下:


  • 下载整视频,如mp4/mkv/mov/3gp等视频
  • 下载HLS,即M3U8视频
  • M3U8 视频下载完成,会生成一个本地的local.m3u8文件
  • 视频下载完成,可以点击播放视频文件
  • 视频下载数据库记录视频下载信息
  • 增加视频下载队列


示意图如下:


如何在小视频源码里实现边下边播_视频下载_04

如何在小视频源码里实现边下边播_ide_05

如何在小视频源码里实现边下边播_ide_06

下面是接入方式:


allprojects {
repositories {
maven { url 'https://jitpack.io' }
}
}

dependencies {
implementation 'com.github.JeffMony:VideoDownloader:3.0.0'
}

具体的接入方式见github

PlayerSDK

https://github.com/JeffMony/PlayerSDK

这是一个专注音视频播放器的库,目前还在不断优化中,主要功能如下:


  • 支持ijkplayer 和 exoplayer 两种播放器
  • 支持进度条和seek功能
  • 支持二维码扫描网址功能
  • 支持循环播放的功能
  • 支持倍速的功能
  • 支持针对HLS Master视频的切换清晰度功能


示意图如下:


如何在小视频源码里实现边下边播_github_07

如何在小视频源码里实现边下边播_github_08

如何在小视频源码里实现边下边播_github_09

下面是接入方式:


repositories {
maven { url 'https://jitpack.io' }
}

implementation 'com.github.JeffMony:PlayerSDK:2.0.0'

具体的接入方式见github

小结

目前还在不断优化中