前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >音视频领域火爆的开源项目

音视频领域火爆的开源项目

作者头像
马上就说
发布2020-12-11 15:23:45
2K0
发布2020-12-11 15:23:45
举报
文章被收录于专栏:码上就说码上就说

1.ffmpeg

https://github.com/FFmpeg/FFmpeg

ffmpeg应该是音视频入门必须要掌握的开源项目,涉及到音视频从生产到消费的完整过程,ffmpeg是一个综合性项目,涉及到非常多的知识点;

ffmpeg 从模块上划分可以分为下面几个模块:

  • libavutil:ffmpeg中通用的工具库,其他模块的通用功能会调用到这儿;
  • libavformat:音视频封装格式处理模块,可以用于解封和封装;
  • libavcodec:音视频编码解码的库,是ffmpeg的核心库;
  • libavfilter:滤镜特效处理的库;
  • libavresample:这个库已经废弃,可以忽略;
  • libpostproc:音视频后期加工的库;
  • libswresample:音频采样数据格式转化;
  • libswscale:视频像素数据格式转换;
  • libavdevice:控制各种设备的输入输出,如果需要外接设备的话,一般情况下用不到;

2.grafika

https://github.com/google/grafika

grafika是google推出的Android 平台的图形图像处理的库;

  • 给出camera处理的例子;
  • opengl es处理的例子;
  • 视频转码的例子;

3.ijkplayer

https://github.com/bilibili/ijkplayer

ijkplayer 是哔哩哔哩公司基于ffplay开发的一个音视频播放库,目前应用的比较广泛;

  • 可以支持所有的音频、视频格式,封装格式;
  • 全编译出来的库约9.2M;
  • 实现软解码和硬解码之间的切换;
  • 实现ffmpeg很多定制的option选项;

ijkplayer支持的软解码让播放画面更加优秀;还可以解决直播流过程中切换码流导致的花屏和黑屏问题。

4.android-gpuimage

https://github.com/cats-oss/android-gpuimage

gpuimage是基于opengl es 2.0的开源的图像处理库,可以用来给图像、实时camera、视频、电影等添加滤镜;

目前gpuimage支持很多滤镜,具体的可以参考一下github的上面显示的filter。

5.vlc-android

https://github.com/videolan/vlc-android

vlc-android是videolan 研究机构推出的一个播放框架;这个播放框架的思路和ijkplayer是完全不一样的,ijkplayer是基于ffplay,整体架构比较简单,因为核心的功能都由ffmpeg的ffplay模块帮忙实现了,但是vlc整体是pipeline实现的,编码解码以及解封的模块都是videolan自己实现的,和ffmpeg是两种演进思路;

  • vlc 整体效率感觉更好一些;
  • vlc-android编译出来的包过大,约20M,这是工程开发无法忍受的;
  • vlc的更新节奏非常快,不像ijkplayer,目前基本上没有太多bilibili公司的人维护了;

6.mp4parser

https://github.com/sannies/mp4parser

mp4parser是读、写mp4 封装格式的库,只是操作封装格式,不是操作编码、解码格式,这个有很大的不同,想要熟悉mp4封装格式的同学,可以读一下mp4parser的源码;

7.SopCastComponent

https://github.com/LaiFeng-Android/SopCastComponent

这是优酷的“来疯”团队推出的一个完全Java层实现的直播sdk;

  • 可以实现camera本地推流操作;
  • 可以实现线上camera rtmp推流;
  • 实现camera 滤镜 推流;

8.ExoPlayer

https://github.com/google/ExoPlayer

ExoPlayer是google开源的一个播放器库,是基于MediaPlayer的一个扩展,核心原理是分离音频和视频流,然后基于MediaCodec硬解码解析数据,目前的稳定性比较好,而且效率较高;如果你的视频源本身比较简单或者播放过程中不涉及码流的切换等等,建议还是选择ExoPlayer,播放效果更佳;

9.MediaSDK

https://github.com/JeffMony/MediaSDK

这是本人开发的一个视频边下边播的工具;

  • 封装了ijkplayer、exoplayer、mediaplayer 三种播放器;
  • 实现了视频下载队列化处理,m3u8和非m3u8视频下载;
  • 实现m3u8、非m3u8视频边下边播功能;
  • 本地代理实现边下边播功能;

10.AndroidVideoCache

https://github.com/danikula/AndroidVideoCache

这是github上非常火的一个mp4边下边播的库,也是基于本地代理的,可以参考起来使用;

11.LiTr

https://github.com/linkedin/LiTr

这是LinkedIn公司推出的一个轻量级的基于硬件加速的视频、音频编码解码的工具软件,封装的非常好,很值得学习;

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-03-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 音视频平凡之路 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云直播
云直播(Cloud Streaming Services,CSS)为您提供极速、稳定、专业的云端直播处理服务,根据业务的不同直播场景需求,云直播提供了标准直播、快直播、云导播台三种服务,分别针对大规模实时观看、超低延时直播、便捷云端导播的场景,配合腾讯云视立方·直播 SDK,为您提供一站式的音视频直播解决方案。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档