热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

流媒体技术基础流媒体服务与框架

一、开源流媒体服务器38款流媒体服务器开源软件主流的开源流媒体服务器及框架如下:1.Live555[RTSP拉流]一个为流媒体提供解决方案的跨平台的C开源项目&#

一、开源流媒体服务器

38款 流媒体服务器开源软件

主流的开源流媒体服务器及框架如下:


1.Live555 [RTSP拉流]


  • 一个为流媒体提供解决方案的跨平台的C++开源项目,它实现了对标准流媒体传输协议如 RTP/RTCP、RTSP、SIP等的支持。

  • 实现了对多种音视频编码格式的音视频数据的流化、接收和处理等支持,包括MPEG、H.263+、DV、JPEG视频和多种音频编码。


2.EasyDarwin [RTSP拉流/推流]


  • 由国内开源流媒体团队开发和维护的一款开源流媒体平台框架,基于Golang开发维护;

  • 支持RTSP推流分发(推模式转发)

  • 支持RTSP拉流分发(拉模式转发)

  • 服务端录像检索与回放


3.Darwin Streaming Server


  • 实时流媒体播放服务器,使用开放标准,让你可以透过互联网实时传送实况或预先录制的内容。

4.Flash流媒体服务器 Red5 [过时]


  • 一个采用Java开发开源的Flash流媒体服务器。
  • 支持功能:
  • Streaming Video (FLV, F4V, MP4, 3GP)
  • Streaming Audio (MP3, F4A, M4A, AAC)
  • Recording Client Streams (FLV and AVC+AAC in FLV container)
  • Shared Objects
  • Live Stream Publishing
  • Remoting
  • Protocols: RTMP, RTMPT, RTMPS, and RTMPE

5.Open Streaming Server


  • 流媒体服务器 ,主要功能包括支持 mp4、3gp、WMF和qt文件格式;动态带宽适配;负载均衡、内容分发技术。

  • 基于 C++、Java 和 CORBA 技术开发。


6.FMS流媒体服务器


7.Wowza流媒体服务器


8.开源流媒体平台FreeCast


  • 一个P2P的流媒体开源平台,使用Java语言编写

9.LiveGBS GB28181流媒体服务[多种类型直播]


  • 支持设备或平台通过GB28181协议接入;

  • 提供 WebRTC、RTSP、RTMP、HTTP-FLV、Websocket-FLV、HLS 等多种协议流输出;

  • 提供实时流媒体处理,PS(TS)转ES;

  • 支持 H264、H265 等多种视频格式接入;

  • 支持语音对讲,级联语音对讲; 支持云台控制、预置位巡航;


10.Nginx-RTMP[RTMP直播]


  • 支持RTMP、HLS、MPEG-DASH

  • 支持RTMP、HLS点播

  • 可将直播视频分段存储

  • 支持 H.264 视频编解码、AAC 音频编解码

  • 支持 FFmpeg 命令内嵌

  • 支持回调 HTTP

  • 可使用 HTTP 对直播进行删除、录播等控制

  • 具有强大的缓冲功能,可确保在效率与码率间达到平衡


11.simple-rtmp-server[多种类型直播]


  • 一个简单高效的实时视频服务器,使用C++开发,支持RTMP/WebRTC/HLS/HTTP-FLV/SRT/GB28181。

  • SRS定位是运营级的互联网直播服务器集群,追求更好的概念完整性和最简单实现的代码。

  • SRS提供了丰富的接入方案将RTMP流接入SRS,包括推送RTMP到SRS、推送RTSP/UDP/FLV到SRS、拉取流到SRS。

  • SRS还支持将接入的RTMP流进行各种变换,譬如将RTMP流转码、流截图、转发给其他服务器、转封装成HTTP-FLV流、转封装成HLS、转封装成HDS、录制成FLV。


【学习地址】:FFmpeg/WebRTC/RTMP/NDK/Android音视频流媒体高级开发
【文章福利】:免费领取更多音视频学习资料包、大厂面试题、技术视频和学习路线图,资料包括(C/C++,Linux,FFmpeg webRTC rtmp hls rtsp ffplay srs 等等)有需要的可以点击1079654574加群领取哦~

  



二、音视频处理框架


1.OpenCV

OpenCV全称是Open Source Computer Vision Library,是一个跨平台的计算机视觉库,是由英特尔公司发起并参与开发,以BSD许可证授权发行,可以在商业和研究领域中免费使用。可用于开发实时的图像处理、计算机视觉以及模式识别程序。

OpenCV用C++语言编写,有大量的Python, Java and MATLAB(版本2.5)的接口。


2.Gstreamer

GStreamer 是一个基于管道的多媒体框架,基于GObject,以C语言写成。可以很容易地创建各种多媒体功能组件,包括简单的音频回放,音频和视频播放,录音,流媒体和音频编辑。

适用于所有主要操作系统,例如 Linux、Android、Windows、Max OS X、iOS,以及大多数 BSD、商业 Unix、Solaris 和 Symbian。

GStreamers 功能可以通过新插件进行扩展。


  • 容器格式:asf、avi、3gp/mp4/mov、flv、mpeg-ps/ts、mkv/webm、mxf、ogg

  • 流媒体:http、mms、rtsp

  • 编解码器:FFmpeg、各种编解码器库、第三方编解码器包

  • 元数据:原生容器格式,它们之间有一个公共映射

  • 视频:各种色彩空间,支持逐行和隔行视频

  • 音频:各种位深度和多通道配置的整数和浮点音频


3.FFmpeg

一套开源的音视频处理的框架,可以运行音频和视频多种格式的录影、转换、流功能,包含了libavcodec(用于多个项目中音频和视频的解码器库)以及libavformat(音频与视频格式转换库)


  • 核心组件

    • 命令行应用程序
      • ffmpeg:用于对视频文档或音频档案转换格式
      • ffplay:一个简单的播放器,基于SDL与FFmpeg库
      • ffprobe:用于显示媒体文件的信息,见MediaInfo
    • 函数库
      • libswresample
      • libavresample
      • libavcodec:包含全部FFmpeg音频/视频编解码库
      • libavformat:包含demuxers和muxer库
      • libavutil:包含一些工具库
      • libpostproc:对于视频做前处理的库
      • libswscale:对于影像作缩放的库
      • libavfilter
  • 支持的音频编解码器

    • ITU-T视频标准:H.261,H.262/MPEG-2 Part 2, H.263和[H.264/MPEG-4 AVC
    • ITU-T音频编解码器标准
    • ISO/IEC MPEG视频标准:MPEG-1 Part 2, H.262/MPEG-2 Part 2, MPEG-4 Part 2和H.264/MPEG-4 AVC
    • ISO/IEC MPEG音频标准:MP1, MP2, MP3, AAC, HE-AAC和MPEG-4 ALS
    • ISO/IEC/ITU-T JPEG图像标准:JPEG和JPEG-LS
    • SMPTE视频标准:VC-1(也称作WMV3), VC-3(也称作AVID DNxHD)和DPX图像
    • SMPTE音频标准:SMPTE 302M
    • DVD论坛的相关标准 / 杜比实验室的音频编解码器:MLP(也称TrueHD)和AC-3
    • 3GPP音频编码器标准:AMR-NB, AMR-WB
    • GSM相关的语音信号编解码器:Full Rate
    • Windows Media Player相关的视频编解码器:Microsoft RLE, Microsoft Video 1, Cinepak, Indeo 2, 3和 Motion JPEG, Microsoft MPEG-4, v1, v2和v3, WMV1, WMV2 and WMV3(也称VC-1)
    • Windows Media Player相关的音频编解码器:WMA1, WMA2和WMA Pro
    • Windows Media Player相关的语音信号编解码器:WMA Voice和MS-GSM
    • RealPlayer相关的视频编解码器:RealVideo 1, 2, 3和4
    • RealPlayer相关的音频编解码器:RealAudio 3, 6, 7, 8, 9和10
    • RealPlayer相关的语音信号编解码器:RealAudio1, 2 (G.728的派生), 4和5
    • QuickTime相关的视频编解码器:Cinepak, Motion JPEG和Sorenson 3 Codec
    • QuickTime相关的音频编解码器:QDesign音乐编解码器2和ALAC
    • Adobe Flash Player相关的视频编解码器:Sorenson 3 Codec, VP6和Flash Video (FLV)
    • Adobe Flash Player相关的音频编解码器:Adobe SWF ADPCM和Nellymoser Asao
    • Sony, ATRAC1和ATRAC3
    • NTT: TwinVQ
    • On2: Duck TrueMotion 1, Duck TrueMotion 2, VP3, VP5, VP6和[VP8
    • Truespeech
    • RenderWare: TXD
  • 协议

    • IETF标准:TCP, UDP, Gopher, HTTP, RTP, RTSP和SDP
    • 苹果公司的相关标准:HTTP Live Streaming
    • RealMedia的相关标准:RealMedia RTSP/RDT
    • Adobe的相关标准:RTMP, RTMPT(由librtmp实现),RTMPE(由librtmp实现),RTMPTE(由librtmp)和RTMPS(由librtmp实现)
    • 微软的相关标准:MMS在TCP上和MMS在HTTP上

4.Video4Linux

Video4LinuxV4L是一组设备驱动程序和一个API,用于支持Linux系统上的实时视频捕获。支持许多USB网络摄像头、电视调谐器和相关设备,标准化它们的输出,因此程序员可以轻松地将视频支持添加到他们的应用程序中。


  • 支持Video4Linux的软件
    • aMSN
    • DVswitch
    • Ekiga
    • FFmpeg
    • FreeJ
    • GStreamer
    • kdetv
    • Kopete
    • LiVES
    • MPlayer
    • MythTV
    • OpenCV
    • Pygame
    • Skype
    • Tvtime
    • VLC多媒体播放器
    • xawtv
    • ZoneMinder

5.其他


  • directshow:微软推出的流媒体处理的开发包

  • Stagefright:Android 流媒体框架

  • nuplayer: Android 流媒体框架

  • ExoPlayer: 一个构建于 Android 低版本 API 之上的开源应用项目

  • Halcon:德国 Mvtec 公司,一套完善的标准的机器视觉算法包,拥有应用广泛的机器视觉集成开发环境。

  • VisionPro:美国康耐视(Cogrex ),具有快速而强大的应用系统开发能力。

  • MIL:加拿大 Matrox Imaging Library(缩写为MIL)

  • vision editor:日本基恩士(keyence)

  • HexSight:加拿大Adept公司,采用最先进的轮廓检测技术来识别对象和模式。

  • Sherlock:加拿大Dalsa

  • NI Vision:美国国家仪器(NI)公司,基于LabVIEW

  • Microscan:美国欧姆龙迈思肯公司(Omron Microscan)


备注:halcon功能最强大,visionPro简单易用,opencv开源最省钱,mil便宜



推荐阅读
  • k8s+springboot+Eureka如何平滑上下线服务
    k8s+springboot+Eureka如何平滑上下线服务目录服务平滑上下线-k8s版本目录“上篇介绍了springboot+Euraka服务平滑上下线的方式,有部分小伙伴反馈k ... [详细]
  • http:my.oschina.netleejun2005blog136820刚看到群里又有同学在说HTTP协议下的Get请求参数长度是有大小限制的,最大不能超过XX ... [详细]
  • 本文介绍了RPC框架Thrift的安装环境变量配置与第一个实例,讲解了RPC的概念以及如何解决跨语言、c++客户端、web服务端、远程调用等需求。Thrift开发方便上手快,性能和稳定性也不错,适合初学者学习和使用。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • 解决nginx启动报错epoll_wait() reported that client prematurely closed connection的方法
    本文介绍了解决nginx启动报错epoll_wait() reported that client prematurely closed connection的方法,包括检查location配置是否正确、pass_proxy是否需要加“/”等。同时,还介绍了修改nginx的error.log日志级别为debug,以便查看详细日志信息。 ... [详细]
  • 31.项目部署
    目录1一些概念1.1项目部署1.2WSGI1.3uWSGI1.4Nginx2安装环境与迁移项目2.1项目内容2.2项目配置2.2.1DEBUG2.2.2STAT ... [详细]
  • LVS实现负载均衡的原理LVS负载均衡负载均衡集群是LoadBalance集群。是一种将网络上的访问流量分布于各个节点,以降低服务器压力,更好的向客户端 ... [详细]
  • 本文讨论了如何使用GStreamer来删除H264格式视频文件中的中间部分,而不需要进行重编码。作者提出了使用gst_element_seek(...)函数来实现这个目标的思路,并提到遇到了一个解决不了的BUG。文章还列举了8个解决方案,希望能够得到更好的思路。 ... [详细]
  • 负载均衡_Nginx反向代理动静分离负载均衡及rewrite隐藏路径详解(Nginx Apache MySQL Redis)–第二部分
    nginx反向代理、动静分离、负载均衡及rewrite隐藏路径详解 ... [详细]
  • 在单位的一台4cpu的服务器上部署了esxserver,挂载了6个虚拟机,目前运行正常。在安装部署过程中,得到了cnvz.net论坛精华区 ... [详细]
  • ZooKeeper 学习
    前言相信大家对ZooKeeper应该不算陌生。但是你真的了解ZooKeeper是个什么东西吗?如果别人面试官让你给他讲讲ZooKeeper是个什么东西, ... [详细]
  • 篇首语:本文由编程笔记#小编为大家整理,主要介绍了SpringCloudRibbon部分源码相关的知识,希望对你有一定的参考价值。1:ribbon是提供通过servi ... [详细]
  • 域名解析系统DNS
    文章目录前言一、域名系统概述二、因特网的域名结构三、域名服务器1.根域名服务器2.顶级域名服务器(TLD,top-leveldomain)3.权威(Authoritative)域名 ... [详细]
  • 本文介绍了在Linux下安装和配置Kafka的方法,包括安装JDK、下载和解压Kafka、配置Kafka的参数,以及配置Kafka的日志目录、服务器IP和日志存放路径等。同时还提供了单机配置部署的方法和zookeeper地址和端口的配置。通过实操成功的案例,帮助读者快速完成Kafka的安装和配置。 ... [详细]
  • 本文介绍了Windows操作系统的版本及其特点,包括Windows 7系统的6个版本:Starter、Home Basic、Home Premium、Professional、Enterprise、Ultimate。Windows操作系统是微软公司研发的一套操作系统,具有人机操作性优异、支持的应用软件较多、对硬件支持良好等优点。Windows 7 Starter是功能最少的版本,缺乏Aero特效功能,没有64位支持,最初设计不能同时运行三个以上应用程序。 ... [详细]
author-avatar
sasame
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有