Ubuntu安装ZLMediaKit

方式一

1、安装vcpkg

在Ubuntu上安装vcpkg的步骤如下:

  1. 安装必要的依赖:

    • 首先,你可能需要安装cmakeninja-build。你可以使用apt包管理器来安装它们:

      bash复制代码sudo apt install cmake ninja-build
      
  2. 下载vcpkg源码:

    • 使用git克隆vcpkg的源代码仓库到你的本地目录。例如,你可以将其克隆到你的主目录下:

      bash复制代码git clone https://github.com/Microsoft/vcpkg.git(访问不到换git clone https://gitee.com/jackboosy/vcpkg)
      

      这将把vcpkg的源代码下载到名为vcpkg的目录中。

  3. 进入源码目录:

    • 使用cd命令进入你刚刚克隆的vcpkg目录:

      bash复制代码cd vcpkg
      
  4. 运行bootstrap脚本:

    • 在vcpkg目录中,运行bootstrap脚本来构建vcpkg:

      bash复制代码./bootstrap-vcpkg.sh
      

      这个脚本将下载并构建vcpkg所需的工具链和依赖。

  5. (可选)修改默认构建类型:

    • 如果你不希望vcpkg默认构建库的debug版本,你可以修改triplets目录下的x64-linux.cmake文件。在该文件的末尾添加:

      cmake复制代码set(VCPKG_BUILD_TYPE release)
      

      这将使vcpkg默认构建库的release版本。

  6. 使用vcpkg:

    • 现在你可以使用vcpkg来安装和管理C++库了。例如,要安装一个库(比如zlib),你可以运行:

      bash复制代码./vcpkg install zlib
      
  7. (可选)添加环境变量:

    • 如果你想在系统的任何地方都能使用vcpkg,你可以将其添加到你的环境变量中。这通常是通过修改你的shell配置文件(如~/.bashrc~/.bash_profile)来实现的。添加类似于以下内容的行:

      bash复制代码export PATH="$HOME/vcpkg/scripts/buildsystems:$PATH"
      

      这假设你已经将vcpkg克隆到了你的主目录下的vcpkg文件夹中。然后,运行source ~/.bashrc(或你的shell配置文件)来使更改生效。

现在你应该已经成功在Ubuntu上安装了vcpkg,并可以使用它来安装和管理C++库了。

Vcpkg是由Microsoft开发的开源包管理器,用于在不同平台上安装和管理C和C++库。它极大地简化了Windows、Linux和macOS上第三方库的购置与安装过程。Vcpkg维护着一系列常用的C和C++库,这些库可以使用Vcpkg获取和编译。一旦安装了Vcpkg,您可以使用它来搜索库、安装库并管理它们的版本,所有这些操作都可以通过命令行界面执行。此外,Vcpkg支持多个平台,包括Windows、macOS和Linux,可在不同操作系统上一致地管理库。

Vcpkg拥有大量开放源代码库和企业就绪功能,旨在通过支持任何构建和项目系统来促进开发过程。它是一个核心的C++工具,使用CMake中的脚本以C++语言编写,从头开始设计,以解决C/C++开发人员体验的独特难点。Vcpkg是开源的,目前有很多的贡献者,通过vcpkg团队及贡献者共同的努力,vcpkg得以快速发展。

2、安装ZLMediaKit

https://github.com/ZLMediaKit/ZLMediaKit/wiki/vcpkg%E6%96%B9%E5%BC%8F%E5%AE%89%E8%A3%85zlmediakit

方式二

1、获取代码

git clone https://gitee.com/xia-chu/ZLMediaKit

cd ZLMediaKit

2、下载第三方库

git submodule update --init
  • 安装gcc、gcc-c++
sudo apt install build-essentialsudo apt install gcc(版本大于等于4.8)sudo apt  install gcc-c++
  • 安装cmake,要求版本在3.1.7以上

方法1:使用apt命令安装

这是最简单直接的方法,但需要注意的是,通过这种方式安装的CMake版本可能不是最新的。

  1. 打开终端。

  2. 更新你的包列表,确保你安装的是可用的最新版本:

    bash复制代码sudo apt update
    
  3. 安装CMake:

    bash复制代码sudo apt install cmake
    

方法2:从CMake官网下载预编译的二进制文件安装

如果你需要安装的CMake版本比APT源中提供的版本新,你可以从CMake官网下载预编译的二进制文件进行安装。

  1. 访问CMake官网,下载适合你的系统版本的二进制文件(.sh文件或.tar.gz文件)。
  2. 如果是.sh文件,你可以直接运行它来安装。
  3. 如果是.tar.gz文件,解压该文件到一个目录,然后将其bin目录添加到你的PATH环境变量中,并更新环境变量。

方法3:源码编译安装

如果你需要安装最新版本的CMake,或者想要自定义编译选项,可以选择源码编译安装。

  1. 从CMake官方网站下载源码包,例如cmake-3.xx.x.tar.gz

  2. 解压源码包:

    bash复制代码tar -zxvf cmake-3.xx.x.tar.gz
    
  3. 进入解压后的文件夹,并执行bootstrap脚本进行检查:

    cd cmake-3.xx.x  
    ./bootstrap
    

    如果出现错误,可能需要先安装

    g++
    

    等依赖:

    bash复制代码sudo apt-get install g++
    

    然后重新运行

    ./bootstrap
    
  4. 执行

    make
    

    命令进行编译,可以使用

    -j
    

    选项指定并行编译的线程数,如

    -j4
    

    表示使用4个核心进行编译:

    bash复制代码make -j4
    
  5. 安装编译好的CMake:

    bash复制代码sudo make install
    

完成以上步骤后,你就可以在Ubuntu上使用CMake了。你可以通过运行cmake --version来检查CMake的版本。

  • 安装依赖
sudo apt install openssl-develsudo apt install SDL2-devel
  • 安装ffmpeg,要求版本4.2以上

方法1:使用apt安装FFmpeg

  1. 更新软件包列表
    首先,你需要确保你的软件包列表是最新的。打开终端并输入以下命令:

    bash复制代码sudo apt update
    
  2. 安装FFmpeg
    接下来,你可以使用apt来安装FFmpeg。在大多数情况下,你只需要安装ffmpeg包,但如果你也需要其他工具或库(如ffprobe,一个多媒体流分析器),你可能还需要安装libav-tools包。

    sudo apt install ffmpeg  
    # 或者,如果你还需要ffprobe和其他工具  
    sudo apt install ffmpeg libav-tools
    
  3. 验证安装
    安装完成后,你可以通过运行以下命令来验证FFmpeg是否已成功安装并检查其版本:

    bash复制代码ffmpeg -version
    

方法2:从源代码编译FFmpeg(可选)

如果你需要FFmpeg的特定版本或定制编译选项,你可以从源代码编译它。但请注意,这通常比使用apt包管理器更复杂。以下是从源代码编译FFmpeg的基本步骤:

  1. 获取源代码
    首先,你需要从FFmpeg官方网站或Git存储库获取源代码。
  2. 解压源代码
    如果你下载了压缩的源代码包(如tar.gz),你需要解压它。
  3. 配置编译选项
    使用./configure脚本配置编译选项。你可以通过传递不同的参数来定制你的安装。
  4. 编译
    运行make命令来编译源代码。
  5. 安装
    运行sudo make install来安装FFmpeg。
  • 安装ZLMediaKit
cd ZLMediaKit
mkdir build
cd build
cmake ..
make -j4
make install
  • 启动
cd ZLMediaKit/release/linux/Debug
#通过-h可以了解启动参数
./MediaServer -h
#以守护进程模式启动
./MediaServer -d &
#以自定义配置文件启动
./MediaServer -c 配置文件具体地址
(nohup ./MediaServer -c 配置文件具体地址 &)

参考文档:https://blog.csdn.net/jinhuding/article/details/132189291

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

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

相关文章

后端开发面经系列 -- 阿里C++二面面经

阿里C二面面经 公众号:阿Q技术站 来源:https://www.nowcoder.com/feed/main/detail/fc4a48403b534aafa6a6bce14b542c4e?sourceSSRsearch 1、智能指针? std::shared_ptr: 原理:std::shared_ptr是基于引用计数的智能指…

Stable Diffusion入门使用技巧及个人实例分享--大模型及lora篇

大家好,近期使用Stable Diffusion比较多,积累整理了一些内容,得空分享给大家。如果你近期正好在关注AI绘画领域,可以看看哦。 本文比较适合已经解决了安装问题,(没有安装的在文末领取) 在寻找合…

【RAG】Linux系统下ppt转pptx,读取解析pptx文本数据

前情提要 检索增强生成(RAG)技术,作为 AI 领域的尖端技术,能够提供可靠且最新的外部知识,极大地便利了各种任务。在 AI 内容生成的浪潮中,RAG 通过其强大的检索能力为生成式 AI 提供了额外的知识&#xff…

vue3 动态加载页面

首先&#xff0c;通过下面代码告诉编译器要编译哪些页面 static modules import.meta.glob(./views/**/*.vue);然后动态加载函数这样写&#xff1a; static asyncLoadView (path: string) > {return defineAsyncComponent({loader: <any>Global.modules[./views/${…

Redis的跳表:高效实现有序集合

在 Redis 中&#xff0c;跳表&#xff08;Skip List&#xff09;是一种常用的数据结构&#xff0c;用于实现有序集合&#xff08;Sorted Set&#xff09;。跳表是一种基于链表的数据结构&#xff0c;具有快速的查找、插入和删除操作&#xff0c;适用于有序集合的实现。 本文将…

分布式搜索——ElasticSeach简介

一般都用数据库存储数据&#xff0c;然后对数据库进行查询获取数据&#xff0c;但是当数据量很大时&#xff0c;查询效率就会很慢&#xff08;具体下面会讲到&#xff09;&#xff0c;所以这种情况下就会使用到ElasticSeach ElasticSeach的基本介绍 ElasticSeach是一 款非常强…

2024重庆高等教育博览会|2024重庆高教展|全国高等教育博览会

2024重庆高等教育博览会|2024重庆高教展|全国高等教育博览会 第62届全国高等教育博览会&#xff08;2024.秋季重庆&#xff09; 时间&#xff1a;2024年11月15-17日 地点&#xff1a;重庆国际博览中心 组织机构 主办单位&#xff1a;中国高等教育学会 承办单位&#xff1a;国药…

杰发科技AC7801——ADC之Bandgap和内部温度计算

0. 参考 电流模架构Bandgap设计与仿真 bandgap的理解&#xff08;内部带隙电压基准&#xff09; ​ ​ 虽然看不懂这些公式&#xff0c;但是比较重要的一句应该是这个&#xff1a;因为传统带隙基准的输出值为1.2V ​ 1. 使用 参考示例代码。 40002000是falsh控制器寄…

NXP RT1176(一)——二级BootLoader开发(安全引导加载程序SBL)

目录 1. 开发环境 2. 二级BOOT的功能 3. 步骤 3.1 配置源码 3.2 构建项目 3.2.1 MDK 3.2.2 IAR&#xff08;IAR也编译一下工程看看&#xff0c;这样两个平台都可以支持了&#xff09; 单核M7的开发&#xff01;&#xff01; 1. 开发环境 本文Windows下开发&#xff1a;…

【无标题】vo dto

在Java中&#xff0c;VO、PO、DTO都是常用的数据对象模型。 VO&#xff08;Value Object&#xff09;是值对象&#xff0c;通常用于表示一个业务实体或者页面展示的内容。VO通常包含了多个属性&#xff0c;并且这些属性的类型和名称与业务相关。VO并不一定与数据库中的表结构相…

MHD、MQA、GQA注意力机制详解

MHD、MQA、GQA注意力机制详解 注意力机制详解及代码前言&#xff1a;MHAMQAGQA 注意力机制详解及代码 前言&#xff1a; 自回归解码器推理是 Transformer 模型的 一个严重瓶颈&#xff0c;因为在每个解码步骤中加 载解码器权重以及所有注意键和值会产生 内存带宽开销 下图为三…

巩固学习8

在 Pandas 中&#xff0c;sep参数用于指定数据中字段之间的分隔符。常见的参数包括&#xff1a; 逗号&#xff1a;,&#xff0c;常用于CSV文件。 制表符&#xff1a;\t&#xff0c;常用于TSV文件。 空格&#xff1a;’ &#xff0c;用于空格分隔的数据。 分号&#xff1a;;&…

【合成孔径雷达】合成孔径雷达的多视角理解和时/频成像算法的统一解释

文章目录 一、什么是雷达成像&#xff08;1&#xff09;主要的遥感探测手段&#xff1a;光学、红外和雷达&#xff08;2&#xff09;从数学的角度&#xff1a;雷达成像主要研究什么&#xff1f;数据采集&#xff1a; y T x n yTxn yTxn信息提取&#xff1a; y − > x ? y…

编译错误:stray ‘\357’ in program的解决方法

目录 把报错文件更换编码格式&#xff0c;我试的utf-8 bom编码就可以了&#xff0c;可以多换几种试试。 网友的另一种案例&#xff1a; 编译错误&#xff1a;stray ‘\357’ in program的解决方法 把报错文件更换编码格式&#xff0c;我试的utf-8 bom编码就可以了&#xff0c…

LabVIEW做仪器测试不知道是否适用

LabVIEW&#xff08;Laboratory Virtual Instrument Engineering Workbench&#xff09;是一个用于系统工程和测量系统的图形编程平台&#xff0c;由National Instruments开发。它非常适用于仪器控制、数据采集、信号处理以及自动化测试与测量系统的开发。如果您的工作涉及到这…

如何同步管理1000个设备的VLAN数据?

什么是VLAN&#xff1f; VLAN&#xff0c;也就是虚拟局域网&#xff0c;是通过为子网提供数据链路连接来抽象出局域网的概念。在企业网中&#xff0c;一个企业级交换机一般是24口或者是48口&#xff0c;连接这些接口的终端在物理上形成一个广播域。广播域过大&#xff0c;就会导…

【AI智能体】零代码构建AI应用,全网都在喊话歌手谁能应战,一键AI制作歌手信息查询应用

欢迎来到《小5讲堂》 这是《文心智能体平台》系列文章&#xff0c;每篇文章将以博主理解的角度展开讲解。 温馨提示&#xff1a;博主能力有限&#xff0c;理解水平有限&#xff0c;若有不对之处望指正&#xff01; 目录 文心智能体大赛背景创建应用平台地址快速构建【基础配置】…

前端无样式id或者class等来定位标签

目录&#xff1a; 1、使用背景2、代码处理 1、使用背景 客户使用我们产品组件&#xff0c;发现替换文件&#xff0c;每次替换都会新增如下的样式&#xff0c;造就样式错乱&#xff0c;是组件的文件&#xff0c;目前临时处理的话就是替换文件时删除新增的样式&#xff0c;但是发…

8评分卡建模整体流程梳理

评分卡建模整体流程梳理 学习目标 掌握评分卡建模流程使用Toad库构建评分卡1 加载数据 import pandas as pd from sklearn.metrics import roc_auc_score,roc_curve,auc from sklearn.model_selection import train_test_split from sklearn.linear_model import Logis…

云服务器上Redis数据库被攻击实录+总结

情景重现 Redis日志记录&#xff08;异常部分&#xff09;&#xff1a; 36346:M 14 May 2024 15:46:12.505 # Possible SECURITY ATTACK detected. It looks like somebody is sending POST or Host: commands to Redis. This is likely due to an attacker attempting to us…