做网站有免费的吗/各类资源关键词

做网站有免费的吗,各类资源关键词,北京商城网站建设报价单,优设我的音视频/流媒体开源项目(github) 一、基础环境搭建 1.1 MSYS2\MinGW 参考:1. 基于MSYS2的Mingw-w64 GCC搭建Windows下C开发环境_msys2使用mingw64编译 在Widndows系统上,使用gcc工具链(g)进行C程序开发?可以的&a…

我的音视频/流媒体开源项目(github)

一、基础环境搭建

1.1 MSYS2\MinGW

参考:1. 基于MSYS2的Mingw-w64 GCC搭建Windows下C++开发环境_msys2使用mingw64编译

        在Widndows系统上,使用gcc工具链(g++)进行C++程序开发?可以的!本文将就如何搭建这样一个环境,展开介绍。

  • Windows下C/C++程序开发的差劲开发体验:

        1、首先需要安装≈20 GB的Visual Studio(大型团队项目,还是需要VS的);
        2、然后,很多第三方库,需要自己去GitHub或者相应的官网上下载源码,然后进行编译,而编译过程会遇到各种版本不兼容、缺少依赖、代码错误、需修改makefile文件等问题……至此库尚未编译成功,开发人员早已经被这差劲的体验劝退……

  • MSYS2有三个优点:

        1、仿Linux的终端交互环境,可以使用Linux下的终端命令和快捷方式;

        2、自带pacman软件管理包,让您将精力放到C++代码的编写上,而不是复杂的依赖环境的搭建和编译。如:GDAL、OpenCV等第三方C/C++库,无须再去踩各种坑、艰难地编译而是直接一个命令就安装到了本地;

        3、复用自己在Linux下的开发经验。使用g++进行库的链接、源码编译等操作,可更进一步了解C++代码的编译过程。

        下载MSYS2

        https://www.msys2.org/,进入MSYS2的官网,然后找到如下图下载链接,点击即可进行下载。

        安装MSYS2

        如下图,MSYS2的整个安装过程无须特别的设置,一路默认下一步即可,安装位置建议不要用C盘,因为后续使用pacman安装软件很占用空间,我是用了D盘。

        配置pacman镜像源

  • pacman是随MSYS2一起安装的软件包管理工具
  • 安装完成MSYS2后,则可以在如下路径找到镜像配置文件:D:\msys64\etc\pacman.d,格式为mirrorlist.*,然后进行配置,配置前后的结果如下面两幅图所示。这里说的配置,其实就是将配置文件内的两个国内的镜像源“tsinghua(清华)”和“ustc(中科大)”,移动(剪切粘贴)到主镜像(## Primary标识的msys2)的前面。

        更新pacman基本软件仓库

        配置完镜像源后,需要更新pacman的基本软件仓库,这分两个步骤:

        第一步,执行如下命令,检查更新并下载,过程中,MSYS2可能会因为安装更新而自动关闭,此时,可再次在开始菜单中打开,然后再次执行“pacman -Syu”命令。

pacman -Syu

        第二步,确定“pacman -Syu”命令的更新完毕,如下图,则说明更新完毕,然后执行如下命令,以更新因执行上已更新操作,而未更新的剩余程序。

pacman -Su

        安装Mingw-w64 GCC编译工具链
        Mingw-w64是Windows编译C/C++源代码的程序集,为了安装该软件,须执行如下命令,即可安装编译C/C++程序所需的编译工具如:gcc、g++、make等。此步骤安装的软件包较多,因此可能需要一定时间,取决于网络和电脑配置,约需3-5分钟。

pacman -S --needed base-devel mingw-w64-x86_64-toolchain

        把D:\msys64\mingw64\bin(替换成实际路径)加入到环境变量中,就可以在任何位置使用gcc、g++、gdb以及mingw32-make等工具了,在cmd中和VSCode终端都可以,个人觉得使用msys2生成的MinGW64程序反而不方便。添加完环境变量之后在cmd下,输出gcc --version 和mingw32-make --version验证。如果不添加环境变量,就只能调用D:\msys64\mingw64.exe使用gcc/g++等工具,很不方便,我基本都是在VSCode中写代码并编译。

        自此就可以使用VSCode,甚至记事本写C/C++程序,并使用gcc/g++编译了。注意编译出来的程序就是.exe结尾的(动态库是.dll和.dll.a结尾的,.lib是给MSVC编译器用的,也就是Visual Studio。MinGW使用的是.dll.a+.dll;MSVC是.lib+.dll,两者是不一样的),这里的MinGW只是模拟在Linux下的编译过程,但是生成程序或者动态库等还是Windows风格的。

        注意:尽量不要再VSCode终端里面执行程序,因为CMD和VSCode的程序运行起来表现不一样,尤其是在多线程环境下,编译在CMD和VSCode终端下都是可以的。

        当然,MinGW也可以不通过msys2安装,直接在电脑上安装MinGW也是可以的,但是因为在开发过程中,肯定还会用到其他的库和软件,如果每个都单独安装很麻烦,通过msys2就可以像Linux那样,直接在线使用命令安装,然后再加入Windows的环境变量中就可以了。此外如果涉及到要源码编译开源库,使用msys2也很方便,msys2简化了windows的软件安装和开源库源码编译过程,不用msys2也是可以的,只不过不方便。

二、cmake

        再安装一个cmake,就可以实现大型项目的构建了,而且跨平台(cmake不用msys2安装,单独安装即可,同样要加入到环境变量,在任何位置都可以使用)。

        参考:Windows下CMake的下载与安装详解_cmake下载-CSDN博客

        CMake的下载与安装

        CMake下载链接:https://cmake.org/download/。
        下载最新稳定版即可(Latest Release):

        下载完成后,单击“Next”按钮,在下图中勾选“I accept the terms in the License Agreement”复选框接受许可协议:

        选中“Add CMake to the system PATH for all users”单选按钮添加系统路径变量。也可以同时勾选“CreateCMakeDesktopIcon”复选框,以便在安装完成后在桌面上创建CMake的快捷方式图标。

        点击Install进行安装,在CMD下使用cmake --version进行验证。

        自此就可以使用cmake和MinGW构建项目了,构建过程和Linux略有区别,不过cmake和gcc/g++语法都是一样的,步骤如下:

mkdir build
cd build
cmake -G "MinGW Makefiles" ..
mingw32-make

        至此,就在Windows上搭建好了代码编译环境,我使用的是VSCode + MinGW + Cmake,如下图所示。

三、编译FFmpeg

        在Windwos使用ffmpeg有两种方式:

        1、在ffmpeg官网下载Windows上编译好的库,MinGW和MSCV都可以使用,因为.lib和.dll.a都有(为什么我不说.dll,因为无论是MinGW还是MSCV都需要.dll,.dll是exe程序运行必须有的,除非是静态链接。)

        2、源码编译,因为ffmpeg官方编译好的库很多功能都没有用,比如,没有fdk-aac,如果要用fdk-aac就只能自己源码编译,此外有的软件,例如opencv只提供了.lib和.dll,没有.dll.a,要想在MinGW中使用,就必须源码编译(opencv编译坑很多,我是直接从网上下载编译好的,这一点和Linux不同,Linux上一台机器上编译出来的库很难在另外一台Linux上使用,除非环境及版本高度相似)。在msys2上和Linux上编译ffmpeg很相似。

        依赖安装:

        需求,在ffmpeg中添加libx264、libx265、libfdk-aac

        首先用msys2搜索一下x264,使用命令:

 pacman -Ss x264

        我是mingw64,所以安装mingw-w64-x86_64-libx264,命令为:

 pacman -S mingw-w64-x86_64-libx264

        使用命令查看libx264的安装位置,命令为:

pacman -Ql mingw-w64-x86_64-libx264

        在msys的安装路径下就可以找到这些库,知道库和头文件的位置,后面就可以用了。

        用同样的方式安装libx265和fdk-aac,命令为:

pacman -S mingw-w64-x86_64-x265 #mingw-w64-x86_64-x265包含了x265可执行程序,之前安装的mingw-w64-x86_64-libx264不包含x264可执行程序,如果安装libx264的时候想包含x264.exe也可以安装mingw-w64-x86_64-x264,我们只用x264和x265的库,有没有exe都可以,我们不用
pacman -S mingw-w64-x86_64-fdk-aac

       安装汇编库

pacman -S mingw-w64-x86_64-yasm mingw-w64-x86_64-nasm

        ffmpeg源码下载:

        下载地址:https://ffmpeg.org/releases/

        我下载的是4.4.5

        此时我们打开minw64,用来编译ffmpeg源码。

        查看当前所在目录

        当前所在目录为/home/sunkx1,在Windows上的实际路径就为D:\msys64\home\sunkx1,把下载的ffmpeg源码放到D:\msys64\home\sunkx1下面,ls看一下,就可以看到ffmpeg源码了。

        解压:

tar -zxvf ffmpeg-4.4.5.tar.gz

        进入到源码目录:

cd ffmpeg-4.4.5/

        配置:

./configure --prefix=/home/sunkx1/ff-build --enable-libx264 --enable-libx265 --enable-gpl --disable-x86asm --enable-nonfree --enable-libfdk-aac  --enable-shared  --extra-cflags=-I/mingw64/include --extra-ldflags=-L/mingw64/lib

        --prefix指定安装目录。

        --enable-gpl:允许使用 GPL 许可证 的组件,比如 libx264 和 libx265,如果没有这个选项,FFmpeg 会拒绝编译 libx264。
        --enable-nonfree:启用一些 非自由组件,不启用,libfdk-aac 就无法使用。

        --disable-x86asm:禁用 x86 汇编优化(主要影响 H.264/HEVC 编码性能)。

        --enable-shared:启用共享库(动态库 .dll 或 .so)。

        --extra-cflags和--extra-ldflags指定libx264、libx265、libfdk-aac的安装路径。

        编译安装:

make -j
make install

        把如下路径添加到环境变量

D:\msys64\mingw64\bin
D:\msys64\home\sunkx1\ff-build\bin

        第一个是x264、x265、fdk-aac的库所在位置(.dll)

        第二个是ffmpeg库所在位置(.dll和exe)

        配置好之后就可以在cmd中使用ffmpeg了,

        在cmake中配置,就可以使用ffmpeg了

        1、头文件位置

D:\msys64\mingw64\include
D:\msys64\home\sunkx1\ff-build\include

        2、链接库位置

D:\msys64\mingw64\lib
D:\msys64\home\sunkx1\ff-build\lib

        上面编译出来的ffmpeg不包含ffplay,因为ffplay依赖sdl,所以需要安装sdl才可以,同样使用pacman安装即可。

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

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

相关文章

TikTok美国战略升级:聚焦美食旅行,本地化服务如何重塑市场格局

平台深耕本土内容生态,餐饮旅游创作者迎流量红利,算法推荐机制激发地域经济新活力 过去一年,TikTok在美国市场的动作频频引发行业关注。从早期以娱乐、舞蹈为主的全球化内容,到如今将资源向美食、旅行两大垂类倾斜,这…

Unity Dots环境配置

文章目录 前言环境配置1.新建Unity 工程2.安装Entities包2.安装EntitiesGraphics包3.安装URP渲染管线 Dots窗口 前言 DOTS(Data-Oriented Technology Stack)是Unity推出的一种用于开发高性能游戏和应用的数据导向技术栈,包含三大核心组件&am…

manus对比ChatGPT-Deep reaserch进行研究类学术相关数据分析!谁更胜一筹?

没有账号,只能挑选一个案例 一夜之间被这个用全英文介绍全华班出品的新爆款国产AI产品的小胖刷频。白天还没有切换语言的选项,晚上就加上了。简单看了看团队够成,使用很长实践的Monica创始人也在其中。逐渐可以理解,重心放在海外产…

Kubernetes中的 iptables 规则介绍

#作者:邓伟 文章目录 一、Kubernetes 网络模型概述二、iptables 基础知识三、Kubernetes 中的 iptables 应用四、查看和调试 iptables 规则五、总结 在 Kubernetes 集群中,iptables 是一个核心组件, 用于实现服务发现和网络策略。iptables 通…

视频图像刷新到HTTP的原理

上一篇博客已经说了cgi拿到了共享内存的程序还需要处理的才能够真正刷新到网页里面去 HTTP协议介绍 HTTP中文名称是超文本传输协议,它是一个简单的请求.响应协议,HTTP协议它运行在TCP上面,它是互联网数据通信的基础。 几乎所有的网页请求和互…

2024四川大学计算机考研复试上机真题

2024四川大学计算机考研复试上机真题 2024四川大学计算机考研复试机试真题 历年四川大学计算机考研复试机试真题 在线评测:https://app2098.acapp.acwing.com.cn/ 分数求和 题目描述 有一分数序列: 2/1 3/2 5/3 8/5 13/8 21/13… 求出这个数列的前 …

Qt 实现绘图板(支持橡皮擦与 Ctrl+Z 撤销功能)[特殊字符]

作业&#xff1a; 1&#xff1a;实现绘图的时候&#xff0c;颜色的随时调整 2&#xff1a;追加橡皮擦功能 3&#xff1a;配合键盘事件&#xff0c;实现功能 当键盘按 ctrlz的时候&#xff0c;撤销最后一次绘图 头文件.h #ifndef WIDGET_H #define WIDGET_H#include <QWidge…

计算机网络(1) 网络通信基础,协议介绍,通信框架

网络结构模式 C/S-----客户端和服务器 B/S -----浏览器服务器 MAC地址 每一个网卡都拥有独一无二的48位串行号&#xff0c;也即MAC地址&#xff0c;也叫做物理地址、硬件地址或者是局域网地址 MAC地址表示为12个16进制数 如00-16-EA-AE-3C-40 &#xff08;每一个数可以用四个…

【无人机三维路径规划】基于CPO冠豪猪优化算法的无人机三维路径规划Maltab

代码获取基于CPO冠豪猪优化算法的无人机三维路径规划Maltab 基于CPO冠豪猪优化算法的无人机三维路径规划 一、CPO算法的基本原理与核心优势 冠豪猪优化算法&#xff08;Crested Porcupine Optimizer, CPO&#xff09;是一种新型元启发式算法&#xff0c;其灵感来源于冠豪猪的…

简洁实用的3个免费wordpress主题

高端大气动态炫酷的免费企业官网wordpress主题 非常简洁的免费wordpress主题&#xff0c;安装简单、设置简单&#xff0c;几分钟就可以搭建好一个wordpress网站。 经典风格的免费wordpress主题 免费下载 https://www.fuyefa.com/wordpress

RabbitMQ 高级特性解析:RabbitMQ 消息可靠性保障 (上)

RabbitMQ 核心功能 RabbitMQ 高级特性解析&#xff1a;RabbitMQ 消息可靠性保障 &#xff08;上&#xff09;-CSDN博客 RabbitMQ 高级特性&#xff1a;从 TTL 到消息分发的全面解析 &#xff08;下&#xff09;-CSDN博客 前言 最近再看 RabbitMQ&#xff0c;看了看自己之前写…

用DeepSeek-R1-Distill-data-110k蒸馏中文数据集 微调Qwen2.5-7B-Instruct!

下载模型与数据 模型下载&#xff1a; huggingface&#xff1a; Qwen/Qwen2.5-7B-Instruct HF MirrorWe’re on a journey to advance and democratize artificial intelligence through open source and open science.https://hf-mirror.com/Qwen/Qwen2.5-7B-Instruct 魔搭&a…

在IDEA中进行git回滚操作:Reset current branch to here‌或Reset HEAD

问题描述 1&#xff09;在本地修改好的代码&#xff0c;commit到本地仓库&#xff0c;突然发觉有问题不想push推到远程仓库了&#xff0c;但它一直在push的列表中存在&#xff0c;那该怎么去掉push列表中的内容呢&#xff1f; 2&#xff09;合并别的分支到当前分支&#xff0…

六十天前端强化训练之第十一天之事件机制超详解析

欢迎来到编程星辰海的博客讲解 目录 一、事件模型演进史 1.1 原始事件模型&#xff08;DOM Level 0&#xff09; 1.2 DOM Level 2事件模型 1.3 DOM Level 3事件模型 二、事件流深度剖析 2.1 捕获与冒泡对比实验 2.2 事件终止方法对比 三、事件委托高级应用 3.1 动态元…

匿名GitHub链接使用教程(Anonymous GitHub)2025

Anonymous GitHub 1. 引言2. 准备3. 进入Anonymous GitHub官网4. 用GitHub登录匿名GitHub并授权5. 进入个人中心&#xff0c;然后点击• Anonymize Repo实例化6. 输入你的GitHub链接7. 填写匿名链接的基础信息8. 提交9. 实例化对应匿名GitHub链接10. 进入个人中心管理项目11. 查…

Git系列之git tag和ReleaseMilestone

以下是关于 Git Tag、Release 和 Milestone 的深度融合内容&#xff0c;并补充了关于 Git Tag 的所有命令、详细解释和指令实例&#xff0c;条理清晰&#xff0c;结合实际使用场景和案例。 1. Git Tag 1.1 定义 • Tag 是 Git 中用于标记特定提交&#xff08;commit&#xf…

开源项目介绍:Native-LLM-for-Android

项目地址&#xff1a;Native-LLM-for-Android 创作活动时间&#xff1a;2025年 支持在 Android 设备上运行大型语言模型 &#xff08;LLM&#xff09; &#xff0c;具体支持的模型包括&#xff1a; DeepSeek-R1-Distill-Qwen: 1.5B Qwen2.5-Instruct: 0.5B, 1.5B Qwen2/2.5VL:…

深入理解 Java 虚拟机内存区域

Java 虚拟机&#xff08;JVM&#xff09;是 Java 程序运行的核心环境&#xff0c;它通过内存管理为程序提供高效的执行支持。JVM 在运行时将内存划分为多个区域&#xff0c;每个区域都有特定的作用和生命周期。本文将详细介绍 JVM 的运行时数据区域及其功能&#xff0c;并探讨与…

PDF转JPG(并去除多余的白边)

首先&#xff0c;手动下载一个软件&#xff08;poppler for Windows&#xff09;&#xff0c;下载地址&#xff1a;https://github.com/oschwartz10612/poppler-windows/releases/tag/v24.08.0-0 否则会出现以下错误&#xff1a; PDFInfoNotInstalledError: Unable to get pag…

VanillaVueSvelteReactSolidAngularPreact前端框架/库的简要介绍及其优势

VanillaVueSvelteReactSolidAngularPreact前端框架/库的简要介绍及其优势。以下是这些前端框架/库的简要介绍及其优势&#xff1a; 1. Vanilla 定义&#xff1a;Vanilla 并不是一个框架&#xff0c;而是指 原生 JavaScript&#xff08;即不使用任何框架或库&#xff09;。优势…