ffmpeg windows开发之一(编译安装及入门指南)

一. 源码包下载

        下载地址:

Download FFmpegDownload FFmpeg

        点击more lease,然后下载

      二: MSYS2安装 :

        下载地址:MSYS2

        执行命令:pacman -Syu

        pacman -S mingw-w64-x86_64-gcc

        pacman -S mingw-w64-x86_64-toolchain  # mingw64编译工具链,win下的gcc
        pacman -S base-devel    # 一些基本的编译工具
        pacman -S yasm nasm  make   # 汇编器
        pacman -S mingw-w64-x86_64-SDL2 # SDL2 是ffmpeg依赖的,因为没有它ffpaly不能用

         

        如果要编译32位的ffmpeg ,增加pacman -S mingw-w64-i686-toolchain

        三: 安装CMake工具

        CMake下载地址:Download | CMake

        

        安装完成之后我们在 msys2 中是找不到 cmake 命令的,这里我们把 windows path 添加到 msys2 中。在 windows 环境变量中新建一个名为 MSYS2_PATH_TYPE 的环境变量,值改为 inherit,然后重启msys2就可以在msys2中使用安装的cmake了。

        四. 下载x264,x265
       x264源码下载:

https://www.videolan.org/developers/x264.html

        五: 开始编译

        1. 编译x264

        (1)把下载的x264源码包解压到msys64的home目录下,即 c/msys64/home/xxx (这里的xxx是用户名)。

        (2)进入x264源码目录中新建脚本 build-x264.sh ,脚本内容如下:

        

最后生成的库 目录如下:

        bin 中存放的是动态库

        include 中存放的是头文件

l        ib 中存放的是静态库,给后面 FFmpeg 链接使用

        打开VS 的工具,然后在bin 目录下,执行:lib.exe /out:C:\msys64\home\x264-master\x264_install\bin\libx264-164.lib /machine:x64 /def:C:\msys64\home\x264-master\libx264.def,最后生成libx264-164.lib

#!/bin/sh
basepath=$(cd `dirname $0`;pwd)
echo ${basepath}

cd ${basepath}
pwd

export PKG_CONFIG_PATH=${PKG_CONFIG_PATH}:${basepath}/x264_install/lib/pkgconfig
echo ${PKG_CONFIG_PATH}

./configure --prefix=${basepath} \
--enable-gpl --enable-libx264 --disable-static --enable-shared \
--extra-cflags=-l${basepath}/x264_install/include --extra-ldflags=-L${basepath}/x264_install/lib

make -j8
make install

编译生成的lib 如下:

FFmpeg在 Windows 环境编译(64位)支持h264,h265,和Intel QSV,Nvidia Cuda,AMD amf 硬件加速_ffmpeg windows-CSDN博客 https://www.cnblogs.com/midoq/p/16969756.html

        

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Spring】14 ApplicationEventPublisherAware 接口

文章目录 1. 简介2. 作用3. 使用3.1 创建并实现接口3.2 配置 Bean 信息3.3 创建启动类3.4 启动3.5 工作流程图 4. 应用场景总结 Spring 框架为开发者提供了丰富的扩展点,其中之一是 Bean 生命周期中的回调接口。本文将专注介绍一个与事件发布相关的接口 Applicatio…

Windows 系统下本地单机搭建 Redis(一主二从三哨兵)

目录 一、Redis环境准备: 1、下载redis 2、Windows下的.msi安装和.zip格式区别: 二、哨兵介绍: 1、一主二从三哨兵理论图: 2.哨兵的主要功能: 3.哨兵用于实现 redis 集群的高可用,本身也是分布式的&…

LeetCode 1901. 寻找峰值 II

一、题目 1、题目描述 一个 2D 网格中的 峰值 是指那些 严格大于 其相邻格子(上、下、左、右)的元素。 给你一个 从 0 开始编号 的 m x n 矩阵 mat ,其中任意两个相邻格子的值都 不相同 。找出 任意一个 峰值 mat[i][j] 并 返回其位置 [i,j] 。 你可以假设整个矩阵…

服务端主动给客户端发消息?实战教学:使用Nestjs实现服务端推送SSE

前言 服务端消息推送SSE是常用的服务器消息通信手段,适用于服务器主动给客户端发送消息的场景,例如私信通知,扫描登录等都可以使用SSE实现。SSE的底层原理是客户端与服务端建立 HTTP 长链接。 Nestjs 框架内置了对SSE的支持,本文…

前端性能监控和错误监控

聚沙成塔每天进步一点点 ⭐ 专栏简介 前端入门之旅:探索Web开发的奇妙世界 欢迎来到前端入门之旅!感兴趣的可以订阅本专栏哦!这个专栏是为那些对Web开发感兴趣、刚刚踏入前端领域的朋友们量身打造的。无论你是完全的新手还是有一些基础的开发…

FreeRTOS信号量学习

目录 一、信号量的特性 1. 信号量的常规操作 2. 信号量跟队列的对比 3. 两种信号量的对比 4. 信号量函数 4.1 创建 4.2 删除 4.3 give/take 5. 使用二进制信号量来同步 队列(queue)可以用于传输数据:在任务之间、任务和中断之间。 有时候我们只需要传递状态&…

外媒发稿最好的宣传方法是什么?大舍传媒

外媒发稿最好的宣传方法是什么? 引言 在如今信息爆炸的时代,外媒发稿的宣传方法至关重要。大舍传媒作为一家业内知名的传媒公司,积累了丰富的经验和成功案例。本文将探讨外媒发稿最好的宣传方法,旨在帮助读者更好地推广自己的信…

Java基础知识回顾

Java基础 一、Java概述 1、Java技术体系平台 类型简介JavaSE 标准版支持面向桌面级的应用JavaEE 企业版支持为企业开发的应用JavaME 小型版运行在移动终端的平台 2、Java重要的特点 面向对象的语言(OOP) 健壮的语言,具有强类型转换、异常…

MCU为什么上电不启动?

都遇到过这样的问题吧,自信满满的把程序下载到板子上,结果发现MCU居然没启动。 出现这个问题有很多原因,总结为以下五点: 第一,boot引脚电平不对,例如在GD32的MCU上,boot引脚决定了MCU的启动方式…

【pycharm】Pycharm常用快捷键

批量替换是指一次性替换多个文件中的指定内容。在开发过程中,可能会遇到需要替换多个文件中的某个字符串或者某段代码的情况。如果一个一个文件进行替换,那么将会非常耗时和繁琐。 而使用批量替换功能,则可以一次性完成所有文件的替换操作&am…

MyBatis——自定义MyBatis(了解)

1.自定义MyBatis-了解 创建工程,拷贝上一个工程代码,去掉mybatis的依赖: 1.1.MyBatis的核心对象 我们已经通过案例体验到了mybatis的魅力。现在来梳理一下MyBatis运行时的几个对象,我们需要搞清楚他们的作用,进而需要…

java参数校验

引入依赖 <!--参数效验--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-validation</artifactId></dependency><!--Length参数效验--><dependency><groupId>org.hib…

pycharm手动安装ini插件

pycharm中新增pytest.ini文件时发现&#xff0c;文件的图标不是配置文件的图标 原因是没有安装ini插件 安装插件的方式有很多种&#xff0c;今天通过去官网下载插件&#xff0c;再安装的方式 第一步&#xff1a;去官网搜索&#xff0c;地址是&#xff1a;https://plugins.jet…

【Java 集合】LinkedBlockingQueue

LinkedBlockingQueue, 顾名思义: 基于链表的阻塞队列, 位于 JUC (java.util.concurrent) 下, 是一个线程安全的集合, 其本身具备了 不支持 null 元素: 存入 null 元素会抛出异常固定不限容量: 在不手动设置容量时, 最大可以支持 Integer.MAX_VALUE 个元素, 也就是理论上的无限个…

MapReduce 基础实战

文章目录 第1关&#xff1a;成绩统计第2关&#xff1a;文件内容合并去重 第1关&#xff1a;成绩统计 编程要求 使用MapReduce计算班级每个学生的最好成绩&#xff0c;输入文件路径为/user/test/input&#xff0c;请将计算后的结果输出到/user/test/output/目录下。 测试说明 …

去掉乘法运算的加法移位神经网络架构

[CVPR 2020] AdderNet: Do We Really Need Multiplications in Deep Learning? 代码&#xff1a;https://github.com/huawei-noah/AdderNet/tree/master 核心贡献 用filter与input feature之间的L1-范数距离作为“卷积层”的输出为了提升模型性能&#xff0c;提出全精度梯度…

Python之math模块常用方法汇总

python中math模块常用的方法整理 ceil:取大于等于x的最小的整数值&#xff0c;如果x是一个整数&#xff0c;则返回x copysign:把y的正负号加到x前面&#xff0c;可以使用0 cos:求x的余弦&#xff0c;x必须是弧度 degrees:把x从弧度转换成角度 e:表示一个常量 exp:返回mat…

docker制作php5.4运行环境镜像

1.下载镜像 docker pull centos:7或者在控制面板下 2.运行centos7镜像的容器&#xff0c;edncenos7 是新生成的容器名称 ## --name 新名字 docker run -it --name edncenos7 c9a1fdca3387 /bin/bash3.在容器内下载php5.4等插件&#xff0c;以便提交成为新镜像 wget --no-ch…

亚信安慧AntDB数据库——助力5G计费核心替换,全面自主可控

数字经济时代&#xff0c;5G以更快、更丰富、更智能的连接方式服务于各行各业。AntDB数据库&#xff0c;源于亚信科技&#xff0c;自2008年起成功落地全国24个省份的中国移动、中国电信、中国联通和中国广电等运营商项目&#xff0c;为数字化服务和信息化基础建设提供支持。 在…