FFmpeg开发条记(五十一)适合学习研究的几个音视频开源框架 ...

打印 上一主题 下一主题

主题 566|帖子 566|积分 1702

​许多程序员想学习音视频的编程开发,却不知从何学习,因为音视频技能的体系庞大、知识杂糅,一眼望去就令人生怯。那么学习音视频发起站在前人的肩膀上,从良好的音视频开源框架开始研讨,先熟悉这些开源工具的具体用法,再深入了解这些开源框架的实现代码。 有鉴于此,博主整理了几个流行的音视频开源框架,分别对它们概要说明如下:
一、计算机视觉库OpenCV

OpenCV全称Open Source Computer Vision Library,它是一个跨平台计算机视觉和呆板学习软件库,可运行于Linux、Windows、Android和MacOS等操作系统。
OpenCV的官网地址为https://opencv.org/,它在Github上的源码托管入口页面为https://github.com/opencv/opencv。截止2024年8月4日的Github统计,OpenCV项目的星标数为7.73万,副本数为5.57万。
OpenCV在编程实践中的用法主要有下列三种:
1、通过Python脚本利用OpenCV

先执行下面命令安装OpenCV的Python支持库。
pip install opencv-python
然后在Python代码的开头通过下面语句导入OpenCV库:
import cv2
接着即可在Python代码中调用OpenCV的各种处理函数了。
2、通过Qt在桌面程序中集成OpenCV

先把OpenCV的C++支持库下载到本地目录,再打开Qt的C++工程的CMakeLists.txt,在文件内容的qt_add_executable之前添加下面几行设置,表示指定OpenCV库的头文件目录和库文件目录。
# 添加头文件的所在目录
include_directories(opencv/include)
# 指定lib文件的链接目录
link_directories(opencv/lib)
接着把下面这行设置:
target_link_libraries(test_opencv PRIVATE Qt${QT_VERSION_MAJOR}::Widgets)
改成下面几行设置,目的是引入链接新增的OpenCV库文件:
# 设置名叫opencv-libs的库集合,指定它包括哪些so库文件
set(opencv-libs opencv_world480)
target_link_libraries(test_opencv PRIVATE Qt${QT_VERSION_MAJOR}::Widgets ${opencv-libs})
接着即可在C++代码中导入OpenCV的头文件,并调用OpenCV的各种处理函数了。
3、通过Android Studio在移动App中集成OpenCV

起首下载OpenCV的源码包,解压后找到OpenCV-android-sdk目录,该目录下有两个子目录,分别是和samples和sdk。其中sdk为库工程,App利用OpenCV前都要引用该库工程;samples是样例工程,下面有若干范例模块。
接着把上面的sdk目录集成到Android Studio的App工程中,具体的集成步调参见《Android App开发进阶与项目实战》一书第12章的“12.2.2  OpenCV简介及其集成”,这里不再赘述。
二、计算机图形库学习教程LearnOpenGL

LearnOpenGL是一个开源的OpenGL教程,可供初学者学习如何利用OpenGL来创建3D图形和动画。LearnOpenGL既提供了实体的英文书籍,也提供了免费的英文电子版PDF,官网的电子版PDF下载链接为https://learnopengl.com/book/book_pdf.pdf。
LearnOpenGL的官网地址为https://learnopengl.com/,它在Github上的源码托管入口页面为https://github.com/JoeyDeVries/LearnOpenGL。截止2024年8月4日的Github统计,LearnOpenGL项目的星标数为1.07万,副本数为0.27万。
三、多媒体处理框架FFmpeg

FFmpeg全称Fast Forward MPEG,意思是快速把握MPEG,它是一个开源的跨平台多媒体处理框架,可运行于Linux、Windows、Android和MacOS等操作系统。FFmpeg不仅可以或许处理音频、视频文件,还能处理图像、字幕等文件,可谓功能强悍。
FFmpeg的官网地址为https://ffmpeg.org/,它在Github上的源码托管入口页面为https://github.com/FFmpeg/FFmpeg。截止2024年8月4日的Github统计,FFmpeg项目的星标数为4.41万,副本数为1.19万。
FFmpeg在编程实践中的用法主要有下列三种:
1、在命令行中运行FFmpeg

按照之前文章《在欧拉系统上编译安装FFmpeg》的说明,在Linux系统上编译与安装FFmpeg,即可生成三个可执行程序,分别是ffmpeg、ffplay、ffprobe。接着按照之前文章《FFmpeg的可执行程序先容》的说明,即可在命令行中执行相干的音视频处理操作。
2、通过Qt在桌面程序中集成FFmpeg

先按照《FFmpeg开发实战:从零底子到短视频上线》一书第8章“8.1  Windows环境编译FFmpeg”的先容,在Windows系统上编译出FFmpeg的dll动态库。再按照《FFmpeg开发实战:从零底子到短视频上线》一书第11章“11.2.1  给Qt集成FFmpeg”的先容,给Qt的C++工程集成前面编译好的dll动态库及其头文件。接着即可在C++代码中调用FFmpeg提供的各种API。
3、通过Android Studio在移动App中集成FFmpeg

先按照《FFmpeg开发实战:从零底子到短视频上线》一书第12章“12.1.2  交织编译Android必要的so库”的先容,在Windows系统上交织编译出FFmpeg用于Android平台的so动态库。再按照《FFmpeg开发实战:从零底子到短视频上线》一书第12章“12.1.3  App工程调用FFmpeg的so库”的先容,给Android Studio的App工程集成前面编译好的so动态库及其头文件。接着即可在App代码中调用FFmpeg提供的各种API。
四、视频录制直播工具OBS Studio

OBS Studio全称Open Broadcaster Software Studio,它是一个开源的跨平台实时流媒体和屏幕录制工具,可运行于Linux、Windows和MacOS等操作系统。
OBS Studio的官网地址为https://obsproject.com/,它在Github上的源码托管入口页面为https://github.com/obsproject/obs-studio。截止2024年8月4日的Github统计,OBS Studio项目的星标数为5.8万,副本数为0.78万。
有关OBS Studio的安装和利用说明参见之前的文章《利用OBS Studio开启RTMP直播推流》和《联合OBS与MediaMTX实现SRT直播推流》,这里不再赘述。
五、音视频播放器VLC media player

VLC media player是一款开源的跨平台多媒体播放器及框架,可以播放几乎全部多媒体文件,以及 DVD、音频 CD、VCD 及各类流媒体协议的直播地址。
VLC media player的官网地址为https://www.videolan.org/,它在Github上的源码托管入口页面为https://github.com/videolan/vlc。截止2024年8月4日的Github统计,VLC media player项目的星标数为1.35万,副本数为0.5万。
除了供用户播放媒体文件之外,VLC media player还常常被开发者用来调试音视频文件格式是否准确,以及网络上的流媒体数据是否准确传输。因为凡是VLC media player无法打开的音视频文件,几乎肯定是文件内部编码或封装出了题目;凡是VLC media player无法播放的流媒体地址,几乎肯定是流媒体数据出现缺失,或是网络状态不佳。
有关VLC media player的安装和利用说明参见《FFmpeg开发实战:从零底子到短视频上线》一书第3章的“3.4.1  通用视频播放器VLC”,这里不再赘述。
更多具体的FFmpeg开发知识参见《FFmpeg开发实战:从零底子到短视频上线》一书。
 

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

东湖之滨

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表