FFmpeg ~ 安装(附MetaRTC整合)

news2024/11/24 12:52:00

前言


    本文会讲述FFmpeg下载/配置/编译/安装的完整流程,该流程并不复杂,因此本文的重点在于如何整合MetaRTC。MetaRTC的作用是令FFmpeg支持WebRTC推/拉流及回声消除功能(常规版本的FFmpeg是不支持该功能的),使得WebRTC音视频编程门槛将被大大降低。事实上,关于FFmpeg整合MetaRTC的流程并不会太过复杂,但是由于官方文档的“简略性”,还是会令很多初学者难以成功安装/整合,因此本文会完整详细的介绍整个流程。

    需要注意的是:目前MetaRTC对MAC的支持性并不好…即如果你是MAC,那能否整合成功整合全看玄学…

    FFmpeg整合MetaRTC有两种方式:一是直接下载安装整合了MetaRTC的FFmpeg;二是在已安装的FFmpeg上整合。无论是哪一种,都需要重新配置/编译FFmpeg,因此两者的本质其实是一致的,故而本文会直接介绍前者的详细流程。

常规版本下载/配置/编译/安装


    地址(版本自选):http://ffmpeg.org/download.html?aemtn=tg-on

在这里插入图片描述

  • 配置:./configure --prefix=/usr/local/ffmpeg
  • 编译:make
  • 安装:make install
  • 查看版本(判断是否安装成功):./ffmpeg -version

MetaRTC整合版本下载/配置/编译/安装


 下载

    版本(版本固定):https://gitee.com/metartc/ffmpeg-metartc

在这里插入图片描述

    成功下载后,将压缩包移动至/usr/local文件夹(路径可自定义)下并执行[unzip ffmpeg-metartc-main]指令进行解压,随后执行[cd /usr/local/ffmpeg-metartc-main/FFmpeg-n4.3.3]进入FFmpeg-n4.3.3文件下,准备下一步配置。

在这里插入图片描述

 整合准备

    在正式对FFmpeg进行配置之前,需要先对MetaRTC及三个第三方软件进行配置/编译/安装,以获取五个用于整合MetaRTC的资源文件。MetaRTC及第三方软件都已在整合版本的FFmpeg压缩包中携带,因此无需额外下载。

    在FFmpeg-n4.3.3文件夹中执行[cd metartc5]指令进入metartc5文件夹,可以看到libsrtp-2-fit.tar.gz、openssl-1.1-fit.tar.gz及speexdsp-SpeexDSP-1.2.0.tar.gz三个软件压缩包,具体如下图。

在这里插入图片描述

    这些第三方软件压缩包我们会在稍后配置/编译/安装,但现在我们先继续执行[cd metartc5/libmetartccore5]指令进入libmetartccore5文件夹,以完成对MetaRTC的构建。

在这里插入图片描述

    执行[./cmake_x64.sh]或[./cmake_android.sh]指令,对MetaRTC进行构建。如果能够构建成功,那很好,你的安装/整合基本成功70%了;而对于非MAC但失败的开发者,则还有成功希望;而如果你是MAC且失败的开发者…那基本是凉凉了(大概率是某某底层文件不存在的系统类型/版本问题)…下面的流程也可以不用看了。

在这里插入图片描述

    执行[./cmake_x64.sh]指令构建成功后,继续执行[cd build]指令进入刚刚构建生成的build文件夹,在这里我们将找到首个整合资源文件libmetartccore5.a,执行[cp -r libmetartccore5.a /usr/local/ffmpeg-metartc-main/FFmpeg-n4.3.3/metartc5/libmetartccore5.a]指令将整合资源文件复制移动至目标文件夹中备用。目标文件夹实际上可以自定义,但推荐使用指令中的路径,并且最好要达成统一,以方便下文编译整合FFmpeg时快速指定。

    执行[cd /usr/local/ffmpeg-metartc-main/FFmpeg-n4.3.3/metartc5]指令来到第三方软件压缩包所在文件夹(也是本文的目标文件夹),并依次对第三方软件进行解压/配置/编译/安装,具体指令流程如下:

libsrtp-2-fit.tar.gz

    执行[tar -xzvf libsrtp-2-fit.tar.gz]指令解压文件夹;
    执行[cd libsrtp-2-fit]指令进入libsrtp-2-fit文件夹;
    执行[./configure]指令进行配置;
    执行[make]指令进行编译;
    行[make install]指令进行安装。

    安装完成后,在libsrtp-2-fit文件夹下可以找到第二个整合资源文件libsrtp2.a,执行[cp -r libsrtp2.a /usr/local/ffmpeg-metartc-main/FFmpeg-n4.3.3/metartc5/libsrtp2.a]指令将整合资源文件复制移动至目标文件夹中备用。

在这里插入图片描述

openssl-1.1-fit.tar.gz

    执行[tar -xzvf openssl-1.1-fit.tar.gz]指令解压文件夹;
    执行[cd openssl-1.1-fit]指令进入openssl-1.1-fit文件夹;
    执行[./config]指令进行配置;
    执行[make]指令进行编译;
    执行[make install]指令进行安装。

    安装完成后,在openssl-1.1-fit文件夹下,找到第三/四个整合资源文件libssl.a和libcrypto.a。执行[cp -r libssl.a /usr/local/ffmpeg-metartc-main/FFmpeg-n4.3.3/metartc5/libssl.a]和[cp -r libcrypto.a /usr/local/ffmpeg-metartc-main/FFmpeg-n4.3.3/metartc5/libcrypto.a]指令将整合资源文件复制移动至目标文件夹中备用。

在这里插入图片描述

speexdsp-SpeexDSP-1.2.0.tar.gz

    执行[tar -xzvf speexdsp-SpeexDSP-1.2.0.tar.gz]指令解压文件夹;
    执行[cd speexdsp-SpeexDSP-1.2.0]指令进入openssl-1.1-fit文件夹;
    执行[./autogen.sh]指令生成配置/编译/安装的可执行文件,否则无法执行后续指令;
    执行[./configure]指令进行配置;
    执行[make]指令进行编译;
    执行[make install]指令进行安装。

    安装完成后,在speexdsp-SpeexDSP-1.2.0文件夹下,执行[cd ./libspeexdsp/.libs]指令进入.libs文件夹,找到最后一个整合资源文件libspeexdsp.a。执行[cp -r libspeexdsp.a /usr/local/ffmpeg-metartc-main/FFmpeg-n4.3.3/metartc5/libspeexdsp.a]指令将整合资源文件复制移动至目标文件夹中备用。

在这里插入图片描述

    至此,所有的配置准备工作完成。

 配置

    执行[cd /usr/local/ffmpeg-metartc-main/FFmpeg-n4.3.3]指令进入FFmpeg-n4.3.3文件夹,执行[./configure --enable-libx264 --enable-gpl --extra-libs=‘-L/usr/local/ffmpeg-metartc-main/FFmpeg-n4.3.3/metartc5 -lmetartccore5 -lpthread -lspeexdsp -lsrtp2 -lssl -lcrypto -ldl’]指令对FFmpeg进行配置。注意:如果自定义了目标文件夹则要将指令中的整合资源文件路径修改为自定义目标文件夹的位置。

在这里插入图片描述

 编译/安装

    执行[make]指令进行编译,编译时间较长,请耐心等待。
在这里插入图片描述

    执行[make install]指令进行安装。

在这里插入图片描述

 推/拉流

// 推流指令
ffmpeg … -f webrtc webrtc://192.168.0.1:1985/live/livestream
ffmpeg … -f webrtc webrtc://192.168.0.1/live/livestream

// 拉流指令
ffplay webrtc://192.168.0.1:1985/live/livestream
ffplay webrtc://192.168.0.1/live/livestream

检查


    在FFmpeg-n4.3.3文件夹下执行[./ffmpeg -version]指令检查是否安装成功。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/703096.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【万字长文】AMD Instinct MI300详细解析:超微半导体的光辉时刻

美国时间6月13日,AMD在美国加利福尼亚州旧金山举行了一场名为“数据中心与AI技术首演”的活动,并在主题演讲中介绍了数据中心的解决方案。 其中,宣布推出“AMD Instinct MI300系列加速器”(以下简称Instinct MI300系列&#xff0…

MidJourney v5.2 、Stable Diffusion XL 0.9 出图对比

最近两个最流行的AI图像生成器,Midjourney和Stable Diffusion,都发布了重大更新。Midjourney v5.2引入了许多新功能,包括“缩小”功能、“/缩短”命令、改进的图像质量等。 Stable Diffusion XL (SDXL) 0.9则专注于改善图像质量和构图。新模…

经典文献阅读之--R-PCC(基于距离图像的点云压缩方法)

0. 简介 对于激光雷达数据而言,虽然与2D图像相比,可以提供精确的物体深度信息,但也存在数据量大的问题,不便于数据存储或传输。在拿到离线数据分析的时候会发现我们很难拿到较长一段时间的激光数据,这就给我们问题的重…

抖音最新版本抓包

1.下载fiddler抓包工具 2.配置https抓包环境 3.抓包工具配置好了之后,我们确保手机和电脑在同一个局域网中 4.打电脑CMD 输入 ipconfig 查看电脑的ip地址 5.打开我们的手机设置代理 6.打开浏览器 输入:你的电脑ip:8888 下载证书 7.打开Re文件管理器(ps…

原来,绩效管理还能这么玩

早上好,我是老原。 最近,有个粉丝朋友来找我请教:他最近加入另外一家大型互联网公司,主要是负责领导力相关这块。他们现在也在做OKR实践,但是碰到了很多问题。 对此我并不觉得意外,因为这样的案例太多了。…

ModaHub魔搭社区:GPTCache的工作原理和为什么选择 GPTCache?

什么是 GPTCache? GPTCache 是一个开源工具,旨在通过实现缓存来提高基于 GPT 的应用程序的效率和速度,以存储语言模型生成的响应。GPTCache 允许用户根据其需求自定义缓存,包括嵌入函数、相似度评估函数、存储位置和驱逐等选项。…

《Opencv3编程入门》学习笔记—第十一章

《Opencv3编程入门》学习笔记 记录一下在学习《Opencv3编程入门》这本书时遇到的问题或重要的知识点。 第十一章 特征检测与匹配 一、SURF特征点检测 太复杂了!全是公式! (一)SURF算法概览 SURF,SpeededUp Rebus…

基于matlab使用点要素匹配在杂乱场景中检测对象(附源码)

一、前言 此示例演示如何在给定对象的参考图像的情况下检测杂乱场景中的特定对象。 此示例提供了一种基于查找参考和目标图像之间的点对应关系来检测特定对象的算法。它可以检测物体,尽管刻度变化或面内旋转。它对少量的面外旋转和遮挡也很鲁棒。这种对象检测方法…

Ansible练习

部署ansible练习 开始之前先使用student用户登录 登录命令:ssh studentworkstation 在workstation上运行lab deploy-review start命令,此脚本将确保受管主机在网络上访问。 然后开始验证控制节点上是否安装了ansible软件包,在运行anisble -…

Shell脚本编程教程

Shell脚本编程 1.Shell脚本语言的基本结构 1.1 Shell脚本的用途: 自动化常用命令执行系统管理和故障排除创建简单的应用程序处理文本或文件 1.2 Shell脚本基本结构: ​ Shell脚本编程:是基于过程式,解释执行的语言 编程语言…

【C#】简单聊下Framework框架下的事务

框架用的多了,之前版本的事务都忘记了。本次简单聊下.net framework 4.8框架下本身的事务 目录 1、SqlClient2、TransactionScope3、引用 1、SqlClient 在 C# 中,使用 using 块可以方便地实现对资源的自动释放,但它不适用于实现事务处理。为…

Redis实践篇(二)优惠卷秒杀 一人一单、分布锁

目录 全局ID生成器​编辑 实现优惠卷下单 优惠卷超卖问题 乐观锁 一人一单 分布式锁 分布锁的实现 基于Redis的分布锁 Redis的Lua脚本 再次改进Redis的分布锁 基于Redis的分布锁优化 Redisson分布式框架 引入依赖 Redisson可重入锁原理 Redisson分布锁原理​编辑 全局I…

基于Hadoop的疫情信息分析与可视化研究——包含大屏可视化及预测算法

需要本项目的全套环境、代码、文档、资源、数据和部署调试的私信博主!!! 本研究基于中国新冠疫情2020-01-11至2022-12-20的全国整体数据进行疫情大数据分析,通过对历史的数据进行大数据分析,可以有效的掌握过去疫情数据…

4、JAVA 嵌套for循环 while do-while

1 嵌套for循环 1.1 概述 存在至少2层for循环,根据外层的条件,判断里层能否执行 如果能执行,就把里层代码都循环完毕后,再继续判断是否执行外层循环的下一次循环 1.2 嵌套for形式 1.3 练习:嵌套for循环入门案例 创建包: cn.tedu…

Jupyter notebook安装运行(详解)

目录 Jupyter notebook 概念 官方文档 特点 使用Anaconda安装 使用pip安装 运行Jupyter Notebook 指定端口启动 Jupyter notebook修改主目录 Jupyter notebook 概念 Jupyter Notebook是基于网页的用于交互计算的应用程序。其可被应用于全过程计算:开发…

Dlib —— 对图片进行人脸检测(附源码)

效果 代码 Vs2017下使用Dlib检测人脸&#xff0c;并通过OpenCv将结果绘制出来。&#xff08;由于Dlib库已编译好&#xff0c;Vs工程环境自行搭建&#xff0c;OPenCv环境参考本人之前的专栏文章&#xff09; #include <iostream>#include <dlib/image_processing/fron…

生产环境使用HBase,你必须知道的最佳实践

需要关注的一些最佳实践经验。 **Schema设计七大原则 ** 1&#xff09;每个region的大小应该控制在10G到50G之间&#xff1b; 2&#xff09;一个表最好保持在 50到100个 region的规模&#xff1b; 3&#xff09;每个cell最大不应该超过10MB&#xff0c;如果超过&#xff0c;…

一次性供应商是否可以创建采购信息记录?

近期有读者提出这个问题。我的第一反应就是&#xff0c;为什么自己不试一下呢&#xff1f;如果不能&#xff0c;系统应该会有提示。不过反正我也好久没写了&#xff0c;找篇素材测试下&#xff0c;写写也好。 自行测试一下&#xff0c;在事务ME11中创建信息记录&#xff0c;选择…

基于java的助农在线商城的设计与实现(源码+展示视频+文档+报告)

电商助农受到了广泛的关注&#xff0c;已成为新时期农产品销售的主要发展路径。推进“互联网农业”的深入发展&#xff0c;是促进农业现代化发展的关键。助农在线商城基于Springboot框架Mysql数据库实现&#xff0c;以Jdk1.8Tomcat8为开发环境&#xff0c;实现一个基于Java开发…

【离群点检测算法】离群点|异常值 检测算法——局部离群因子LOF算法

every blog every motto: You can do more than you think. https://blog.csdn.net/weixin_39190382?typeblog 0. 前言 离群点检测&#xff0c;理解起来也比较容易。 同学都考70分&#xff0c;你也考70分&#xff0c;可以。 同学都考90分&#xff0c;你考70分&#xff0c;不…