前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >常用音视频开源框架

常用音视频开源框架

作者头像
视界音你而不同
发布2020-04-09 15:48:41
2.4K0
发布2020-04-09 15:48:41
举报

作为一名音视频从业者,不可避免的会使用到开源实现的多媒体框架,涉及音频、视频,也包含不同的封装格式,还会有后处理,滤镜等等。日常的开发工作中,我们经常会用到各种开源的框架和结构,这样可以省去重复造轮子的精力,也有助于解放我们的精力,进而提供更好的产品,更好的服务不同的场景。本篇就简单罗列下我们常见和常用的一些开源框架:

编解码

说到编解码,这些年,H.264算是最大的赢家了。基于其的开源实现主要有libx264, openh264。

libx264采用c语言实现,可以支持跨平台,但原生对类Linux系统支持更好,对于H.264的编码部分也做了大量的优化!在264时代中,可谓编码中的王者。

libx264官方网站:https://www.videolan.org/developers/x264.html

libx264源码下载:

代码语言:javascript
复制
git clone https://code.videolan.org/videolan/x264.git

除了libx264,还有openh264也是不错的开源实现框架,感兴趣可以去学习了解下。

openh264官方网站:http://www.openh264.org/

openh264源码下载:

代码语言:javascript
复制
git clone https://github.com/cisco/openh264.git

说完264的实现,就该265登场了。随着视频分辨率的不断提升,视频文件在网络传输的带宽成为瓶颈。新一代的编码器HEVC(大家也习惯称之为H.265)走进了历史舞台,当前正在广泛的使用。当然,开源的实现框架也是跟得上节奏,主要是x265。

x265官方网站:http://www.x265.org/

x265源码下载:

代码语言:javascript
复制
hg clone http://hg.videolan.org/x265

注意,x265的源码管理工具非git,非svn,而是hg,下载源码会略费周折些(需要在不同的平台上安装工具,而且常常受网络情况影响)。

播放器

说完编解码,再说说播放器。开源实现的播放器也不少,主要的几个有vlc,mplayer,FFmpeg中的ffplay(FFmpeg我们一会说)。

VLC对于音视频开发者而言,不会陌生。是一个支持跨平台的播放器,还可以播放网络流,如rtsp,rtmp,本身也可以串流。不光开放源代码,而且可以有各大平台的播放器可以使用。

VLC官方网站:https://www.videolan.org/

VLC源代码下载:http://download.videolan.org/pub/videolan/vlc/

除了vlc,mplayer也是一个不错的开源播放器。mplayer对linux系统支持更好,而对windows平台不是很友好。而且其代码编译的方式也不是特别主流,需要注意,多研究一下。

mplayer官方网站:http://www.mplayerhq.hu/design7/news.html

mplayer源代码下载:

代码语言:javascript
复制
svn checkout svn://svn.mplayerhq.hu/mplayer/trunk mplayer

注意:mplayer源码使用svn管理。

流媒体服务器

接下来,再说说流媒体服务器。比较常见的流媒体服务器框架基本上就是live555和librtmp了,live555主要针对rtsp实现流媒体服务器的功能;近几年来,直播越来越火,rtmp也比较广泛的应用,于是librtmp也越来越流行,librtmp主要针对rtmp协议实现流媒体服务器的功能。

live555官网:http://www.live555.com/

live555源代码下载:http://www.live555.com/liveMedia/public/

librtmp官网:http://rtmpdump.mplayerhq.hu/

librtmp源代码下载:

代码语言:javascript
复制
git clone git://git.ffmpeg.org/rtmpdump

抓屏

再说一个抓屏的开源框架openbroadcast,openbroadcast简称obs,是针对屏幕抓取做的不错的一个开源的框架。有抓屏需求的小伙伴,不妨一试哦!

官方网站:https://obsproject.com/

源代码下载:

代码语言:javascript
复制
https://github.com/obsproject/obs-studio.git

注意:broadcast的编译需要CMake的支持。

意外的发现

在学习nvidia对FFmpeg提供硬件编解码支持的时候,看到了HandBrake。了解了一下,看上去不错,该开源框架是一个可视化的可以对部分视频文件进行编码层面编辑的软件,感兴趣的童鞋可以研究一下。放个软件的截图大家感受一下。

官方网站:https://handbrake.fr/

源代码下载地址:

代码语言:javascript
复制
git clone https://github.com/HandBrake/HandBrake.git

最后的王炸

最后再说一下王炸级别的选手FFmpeg。这几个字眼相信大家并不陌生,估计现在连好多的人力小姐姐和猎头小哥哥们也对这个有几分眼熟,因为搞音视频实在避不开。它能干啥就不详细说了,前面说的所有的功能,它都可以实现,而且它也支持跨平台。妥妥滴,没毛病。

FFmpeg官方网站:http://ffmpeg.org/

FFmpeg源代码下载:

代码语言:javascript
复制
git clone https://git.ffmpeg.org/ffmpeg.git ffmpeg

大概就梳理这些吧,由于实际工作中的场景不同,可能还有其他一些有些的开源框架没有提到。不过,相信能了解这么多,也完全够用了。对于开源的框架,我们要记住一点,开源不等于免费。我们要懂得站在巨人的肩膀上,做出更优秀更有意义的事情。开源的框架有无数的开发者在迭代,所以,有余力的情况下多看看开源的实现,对我们而言是一个很好的提升的机会。博采众长,取其精华去其糟粕,相信我们会变得越来越强。

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

本文分享自 视界音你而不同 微信公众号,前往查看

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

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

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