影音视频领域开源项目专区

简介


本专区收录影音视频领域最优秀的开源项目,持续更新中…


项目列表


FFmpeg相关


  1. FFmpeg
    • 业内最著名的音视频解决方案开源项目,提供各种格式编解码库,播放器,server等。很多著名的播放器以及转码工具都或多或少使用了FFmpeg的模块。
    • 官方网址:http://ffmpeg.org/

播放器相关


  1. ijkplayer

    • 知名的播放器开源项目,支持IOS和Android平台,提供客户端播放功能,基于FFmpeg框架,支持全格式视频播放,流媒体播放。
    • 项目网址:https://github.com/RockyQu/ijkplayer
  2. Exoplayer

  3. VLC Player

    • 开源播放器,支持windows,linux,mac,Android,IOS全平台。支持字幕输入,支持流媒体协议。
    • 项目地址:https://www.videolan.org/vlc/
  4. DPlayer

    1. 功能强大的开源HTML5播放器,支持HLS,DASH,等标准格式。
    2. 项目地址:http://dplayer.js.org/
  5. 5KPlayer

    1. 开源跨平台播放器
    2. 基于QT和VLC框架的开源播放器5KPlayer

即时通讯类


  1. WebRTC
    • 即时通讯开源项目框架,最流行的即时通讯开源项目。
    • 官方网址:https://webrtc.org/
  2. Jitsi工程
    • Jitsi是开源的视频会议系统,可以实现在线视频会议,文档共享和即时消息的分享。它支持网络视频会议,使用SFU模式实现视频路由器功能。开发语言是Java。它支持SIP帐号注册电话呼叫。不仅支持单机本地安装方式,还支持云平台安装。
    • 官网地址:https://jitsi.org/
  3. JsSIP工程
    • JsSIP是基于WebRTC的JavaScript SIP协议实现的库,可以在浏览器和Node.js中运行。它可以与 OverSIP、Kamailio、Asterisk、OfficeSIP等SIP Server一起运行。
    • Github地址:https://github.com/versatica/JsSIP
  4. Janus工程
  5. Callstats
    • 实时通信过程中的,延时、丢包、接通率、掉线率等质量问题,都影响用户体验。商用项目尤其需要关注。Callstats是一家通过对WebRTC呼叫进行专业监测,来帮助用户搜集通讯数据,提升通话质量的服务商。
    • Callstats也通过Github开放很多案例,可供使用Jitsi-videobridge,、turn-server、JsSIP的开发者参考。
    • 官方地址:https://www.callstats.io/
    • Github地址:https://github.com/callstats-io
  6. OpenH323项目 (★★★★★)
    • 上榜理由:最著名的H.323开源协议栈,视频会议开发必备协议栈,强烈推荐.
    • 最著名的H.323开源协议栈,包含了全部的H.323协议功能,并有大量视频会议实现的参考例子,如终端、MCU服务器、gk等H.323协议的核心组成部件,Openh323是H.323协议首选协议栈,同时也是我们视频会议开发最值得作为参考的开源项目之一。
    • 下载地址:http://www.h323plus.org/source/
  7. OpenMeetings项目 (★★★★☆)
    • 上榜理由:基于java的浏览器的视频会议开源项目,java开发视频会议的首选.
    • OpenMeetings主要是基于OpenLaszlo的流媒体格式和Red5服务器的开源视频会议项目,其包含的功能包括音视频、电子白板等,其项目是用java进行开发。项目的缺点是bug较多,效率不高,但可以作为flash视频会议的一个参考。
    • 下载地址:http://code.google.com/p/openmeetings/downloads/list
  8. OPAL项目 (★★★★☆)
    • 上榜理由:OpenH323的下一个版本,新包含了SIP协议栈,是实现SIP协议的首选
      OPAL是OpenH323的下一个版本,继承了Openh323协议,其新包含了SIP协议栈,是实现SIP协议的首选,缺点是参考例子较少。
    • 下载地址:http://sourceforge.net/projects/opalvoip/files/
  9. Speex项目 (★★★★☆)
    • 上榜理由: 音频领域最著名的开源项目,窄带和宽带都有很好的语音质量.
    • Speex是音频领域最著名的开源项目,窄带和宽带都有很好的语音质量,只需8kb就可以传输令人满意的语言,缺点是传输音乐的时候质量会下降。
    • 下载地址:http://www.speex.org/downloads/

传输协议类


  1. live555
    • live555是一个C++流媒体开源项目,其中不仅包括了传输协议(SIP、RTP)、音视频编码器(H.264、MPEG4)等,还包括流媒体服务器的例子,是流媒体项目的首选,里面的传输模块是非常值得视频会议开发作为参考的。
    • 官网地址:http://www.live555.com/
  2. JRTPLIB
    • JRTPLIB 是一个开源的 RTP协议实现库,支持Windows和unix平台。它支持多线程,处理性能较好。它还支持RFC3550、UDP IPV6,支持自定义扩展传输协议。但它不支持TCP传输,这需要开发者自己来实现。同时,它也不支持音视频的分包,代码要你自己来实现。
    • Github地址:https://github.com/j0r1/JRTPLIB
  3. OPAL工程

服务器集群类


  1. SRS
    • SRS是一个采用MIT协议授权的国产的简单的RTMP/HLS 直播服务器。最新版还支持FLV模式,同时具备了RTMP的实时性,以及HLS中属于HTTP协议对各种网络环境高度适应性,并且支持更多播放器。它的功能与nginx-rtmp-module类似, 可以实现RTMP/HLS的分发。
    • Github地址:https://github.com/ossrs/srs
  2. Kurento

编解码器类


  1. x264编解码库
    • H.264是目前应用最广的码流标准。x264则是能够产生符合H.264标准的码流的编码器,它可以将视频流编码为H.264、MPEG-4 AVC格式。它提供了命令行接口与API,前者被用于一些图形用户接口例如Straxrip、MeGUI,后者则被FFmpeg、Handbrake等调用。当然,既然有x264,就有对应HEVC/H.265的x265。
    • 官网地址:
    • x264: https://www.videolan.org/developers/x264.html
  2. x265编解码库
  3. AV1
  4. dav1d
  5. JSMpeg工程
    • JSMpeg是一个基于JavaScript的MPEG1视频的解码器。如果要做H5端的视频直播,可以考虑使用JSMpeg在移动端进行解码。在H5端做音视频直播,可以使用JSMpeg进行视频解码,这也是最近比较火的H5抓娃娃的主流策略。
    • Github地址:https://github.com/phoboslab/jsmpeg
  6. opus 音频解码器
    • Opus是用C语言开发的一个高灵活度的音频编码器,针对ARM、x86有特殊优化,fix-point实现。Opus在各方面都有着明显优势。它同时支持语音与音乐的编码,比特率为6k-510k。它融合了SILK编码方法和CELT编码方法。SILK原本被用于Skype中,基于语音信号的线性预测分析(LPC),对音乐支持并不好。而CELT尽管适用于全带宽音频,但对低比特率语音的编码效率不高,所以两者在Opus中形成了互补。
    • 官网地址:https://opus-codec.org/
  7. XVid 项目 (★★★☆☆)
    • 上榜理由:最著名的MPEG4编码器开源项目,但效率不及x264
    • 在没有H.264编码协议之前,XVid的MPEG4编码一直是视频会议的首选视频编码器,但随着x264、CoreAVC等效率更高的H.264编码器的出现,其应用效果受到较大的冲击,但其结合directshow的视频采集模块还是值得视频会议开发人员参考的。
    • 下载地址:http://www.xvid.org
  8. ffdshow
    • ffdshow is an advanced DirectShow filter and Video for Windows codec (VFW) codec that supports many audio and video formats. For example: H.264, MPEG-4, MPEG-2, H.263, VP3, VP6, Theora, MJPEG, SVQ3, MP3, AC3, DTS, E-AC3, AAC, and Vorbis.
    • 官网:https://sourceforge.net/projects/ffdshow-tryout/

音视频处理类


  1. 人脸检测 Seetaface工程
    • Seetaface是由中科院山世光老师开源的一套完整的人脸检测,人脸对齐和人脸验证方案。代码基于C++实现,开源协议为BSD-2,可供学术界和工业界免费使用。且不依赖于任何第三方的库函数,在使用对齐好的LFW图片上,检测对齐全部使用该开源软件的情况下可达到97.1%。
    • Github地址:https://github.com/seetaface/SeetaFaceEngine
  2. GPUImage工程
    • 现在在iOS端做美颜效果、加水印,基本都会采用GPUImage,它内置了125种渲染效果, 还支持脚本自定义。该项目实现了图片滤镜、摄像头实时滤镜。它优势在于处理效果是基于GPU实现,相对于CPU处理性能更高。
    • Github地址:https://github.com/BradLarson/GPUImage
  3. Open nsfw model工程
    • Open nsfw model是雅虎开源项目,全名是Open Not suitable for work model,专门鉴别不适合工作时间浏览的图片(言而言之就是小黄图)。它是基于Caffe框架训练的模型,用于音视频后处理。不过,它还不能鉴别恐怖、血腥图片。
    • Github地址:https://github.com/yahoo/open_nsfw
  4. Soundtouch工程
    • Soundtouch是一个开源的音频处理框架,主要功能对音频变速、变调,实现变声的效果。同时,它也能对媒体流实时处理。采用32位浮点或者16位定点,支持单声道或者双声道,采样率范围为8k - 48k。
    • 官网地址:http://www.surina.net/soundtouch/