windows下適用msvc編譯ffmpeg 適用于ffmpeg-7.1

需要的工具:
visual studio 2019 (可以是其他版本,只是本人電腦上裝的為2019)
msys2
ffmpeg-7.1源碼

1. 修改msys2_shell.cmd
在msys2目錄修改msys2_shell.cmd
打開后找到行set MSYS2_PATH_TYPE=inherit
刪除開頭的rem

2. 運行msys2
運行x64 Native Tools Command Prompt for VS 2019
打開后跳轉到msys2目錄,并運行msys2_shell.cmd,會打開msys2窗口
在msys2窗口輸入cl,查看是否有輸出:

用于 x64 的 Microsoft (R) C/C++ 優化編譯器 19.29.30148 版
版權所有(C) Microsoft Corporation。保留所有權利。用法: cl [ 選項... ] 文件名... [ /link 鏈接選項... ]

如果沒有輸出,則表示沒有繼承到VS 2019環境,查看msys2_shell.cmd是否修改成功

3. 配置環境
在msys2中運行:

pacman -Syu
pacman -S make
pacman -S diffutils
pacman -S yasm
pacman -S nasmmv /usr/bin/link.exe /usr/bin/link.exe.bak

4. 編譯ffmpeg-7.1
在msys2窗口中進入ffmpeg-7.1目錄下
創建build.sh,輸入:

#!/bin/shexport CC=cl./configure \
--prefix=/d/lib/ffmpeg-7.1/build_windows \
--toolchain=msvc \
--arch=x86_64 \
--enable-x86asm \
--enable-asm \
--enable-shared \
--disable-programs \
--enable-d3d11va \
--enable-d3d12va \
--enable-dxva2 \
--disable-static

如果有報錯查看ffmpeg目錄下的ffbuild/config.log文件
等待配置完成
然后依次輸入:

make V=1 j 8
make install

5. libx264
如果需要libx264,需要自行下載libx264源碼并編譯
在libx264目錄下運行:

CC=cl ./configure --prefix=<編譯物輸出目錄> --enable-shared
make -j 8
make install

在ffmpeg配置的時候添加(libx264為gpl):

--enable-gpl \
--enable-libx264 \
--extra-ldflags="-LIBPATH:<你的libx264編譯輸入目錄>/lib/" \
--extra-cflags="-I<你的libx264編譯輸入目錄>/include/"

即可編譯帶有x264的ffmpeg

msys2 下載
ffmpeg-7.1 源碼下載
libx264

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/896586.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/896586.shtml
英文地址,請注明出處:http://en.pswp.cn/news/896586.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

2025年軟考報名費用是多少?全國費用匯總!

軟考報名時間終于確定了&#xff01;想要參加2025年軟考的同學們注意啦&#xff01;特別是那些一年只有一次考試機會的科目&#xff0c;千萬不要錯過哦&#xff01;這里為大家整理了各地的報名時間、科目、費用等信息&#xff0c;快來看看吧&#xff01; 一、2025年軟考時間安…

【LeetCode459】重復的子字符串

題目描述 給定一個非空的字符串 s &#xff0c;檢查是否可以通過由它的一個子串重復多次構成。 思路與算法 關鍵詞&#xff1a;利用字符串的重復性質&#xff1b;字符串的拼接技巧&#xff1b;逆推法假設原始字符串 s 是由某個子串 sub 重復多次構成的。也就是說&#xff0c…

JAVA面試常見題_基礎部分_Dubbo面試題(上)

Dubbo 支持哪些協議&#xff0c;每種協議的應用場景&#xff0c;優缺點&#xff1f; ? dubbo&#xff1a; 單一長連接和 NIO 異步通訊&#xff0c;適合大并發小數據量的服務調用&#xff0c;以及消費者遠大于提供者。傳輸協議 TCP&#xff0c;異步&#xff0c;Hessian 序列化…

掌握Git:從入門到精通的完整指南

Git是什么&#xff1f; Git是一個分布式版本控制系統&#xff0c;最初由Linus Torvalds在2005年為管理Linux內核開發而創建 它的主要功能是跟蹤文件的更改&#xff0c;協調多個開發者之間的工作&#xff0c;并幫助團隊高效地管理項目代碼。Git不僅適用于大型開源項目&#xf…

數據安全_筆記系列05:數據合規與隱私保護(GDPR、CCPA、中國《數據安全法》)深度解析

數據安全_筆記系列05&#xff1a;數據合規與隱私保護&#xff08;GDPR、CCPA、中國《數據安全法》&#xff09;深度解析 在全球數據跨境流動和隱私保護強監管的背景下&#xff0c;企業需同時滿足多法域合規要求。以下從 法規要點、核心差異、實施策略、跨境傳輸、典型案例 等維…

StableDiffusion打包 項目遷移 項目分發 1

文章目錄 SD項目遷移前置知識webui-user.batwebui.batlaunch_utils.py 下一篇開始實踐 SD項目遷移 顯卡驅動更新&#xff1a;https://www.nvidia.cn/geforce/drivers/ 下載安裝三個程序&#xff1a; python3.10.6: https://www.python.org/downloads/release/python-3106/gi…

Leetcode2414:最長的字母序連續子字符串的長度

題目描述&#xff1a; 字母序連續字符串 是由字母表中連續字母組成的字符串。換句話說&#xff0c;字符串 "abcdefghijklmnopqrstuvwxyz" 的任意子字符串都是 字母序連續字符串 。 例如&#xff0c;"abc" 是一個字母序連續字符串&#xff0c;而 "ac…

FFmpeg+vvenc實現H.266的視頻編解碼教程

Linux系統&#xff1a;FFmpegvvenc實現H.266的視頻編解碼教程&#xff08;視頻壓縮&#xff09; 關鍵網址 ffmpeg目前支持libvvenc&#xff0c;因此配置好libvvenc只會在一些make、sudo make install命令時遇到問題&#xff0c;例如默認安裝或配置路徑指定錯誤、ffmpeg版本、v…

vscode使用豆包MARSCode----集成doubao1.5 DeepSeekR1 DeepseekV3模型的ai編程插件

引入擴展 打開VSCode擴展窗口&#xff0c;在搜索窗口搜索MarsCode&#xff0c;找到MarsCode 插件單擊「install」&#xff0c;完成安裝&#xff0c;登錄即可使用MarsCode 編程助手。 主要功能 主要快捷鍵 / explain 解釋項目代碼&#xff0c;AI 返回的內容有結構分類&#…

uni小程序wx.switchTab有時候跳轉錯誤tab問題,解決辦法

在一個子頁面里面使用uni.switchTab或者wx.switchTab跳轉到tab菜單的時候&#xff0c;先發送了一個請求&#xff0c;然后執行跳轉到tab菜單&#xff0c;但是這個時候&#xff0c;出錯了........也是非常的奇怪&#xff0c;不加請求就沒問題......但是業務邏輯就是要先執行某個請…

軟件工程---需求工程

軟件需求工程師發現、獲取、組織、分析、編寫和管理需求的系統方法&#xff0c;以使客戶和項目組之間達成共識。 需求工程共包含五個步驟&#xff1a; 需求獲取&#xff1a;對業務問題分析&#xff0c;與項目干系人溝通&#xff0c;以理解系統的目標、期望和約束&#xff0c;…

React七Formik

Formik是一個專為React構建的開源表單庫。它提供了一個易于使用的API來處理表單狀態管理&#xff0c;表單驗證以及表單提交。Formik支持React中的所有表單元素和事件&#xff0c;可以很好地與React生態系統中的其他庫集成。同時&#xff0c;Formik還提供了一些高級功能&#xf…

【Kimi】自動生成PPT-并支持下載和在線編輯--全部免費

【Kimi】免費生成PPT并免費下載 用了好幾個大模型&#xff0c;有些能生成PPT內容&#xff1b; 有些能生成PPT&#xff0c;但下載需要付費&#xff1b; 目前只有Kimi生成的PPT&#xff0c;能選擇模板、能在線編輯、能下載&#xff0c;關鍵全部免費&#xff01; 一、用kimi生成PP…

編寫一個程序,計算并輸出1到100的和(Python版)

編寫一個程序&#xff0c;計算并輸出1到100的和 以下是兩種計算1到100之和的方法&#xff1a; 方法一&#xff1a;循環累加法&#xff08;適合編程練習&#xff09; total 0 for num in range(1, 101):total num print("1到100的和為:", total)原理&#xff1a;通…

MyBatis-Plus 自動填充功能

MyBatis-Plus&#xff08;MP&#xff09; 提供了一個非常強大的功能——自動填充功能。該功能可以在執行插入或更新操作時&#xff0c;自動為某些字段賦值&#xff0c;免去手動設置這些字段的麻煩。常見的應用場景包括 創建時間 和 更新時間 字段的自動填充&#xff0c;幫助開發…

final 關鍵字在不同上下文中的用法及其名稱

1. final 變量 名稱&#xff1a;final 變量&#xff08;常量&#xff09;。 作用&#xff1a;一旦賦值后&#xff0c;值不能被修改。 分類&#xff1a; final 實例變量&#xff1a;必須在聲明時或構造函數中初始化。 final 靜態變量&#xff1a;必須在聲明時或靜態代碼塊中初…

springboot項目部署腳本

Springboot部署腳本 該腳本可用于jenkins自動執行&#xff0c;具有以下功能 適配所有以內嵌tomcat容器springboot項目jar包可根據參數選擇環境&#xff0c;基于profiles可自動識別并關閉已存在進程第一個參數是指定jar包所在絕對路徑(該路徑下必須有且僅有一個.jar文件) 第二…

向量數據庫milvus部署

官方文檔 Milvus vector database documentationRun Milvus in Docker (Linux) | Milvus DocumentationMilvus vector database documentation 按部署比較簡單&#xff0c;這里說一下遇到的問題 一&#xff1a;Docker Compose 方式部署 1、鏡像無法拉取,(docker.io被禁) …

【密碼學實戰】Java 實現 SM2 國密算法(簽名帶id、驗簽及 C1C3C2 加密解密)

前言 SM2是中國國家密碼管理局發布的橢圓曲線公鑰密碼算法標準&#xff08;GB/T 32918&#xff09;&#xff0c;屬于國密算法體系。與RSA和ECDSA相比&#xff0c;SM2在相同安全強度下密鑰更短、計算效率更高。本文將介紹如何在Java中實現SM2的密鑰生成、數字簽名、驗簽、加密及…

網絡原理---TCP/IP

活動發起人小虛竹 想對你說&#xff1a; 這是一個以寫作博客為目的的創作活動&#xff0c;旨在鼓勵大學生博主們挖掘自己的創作潛能&#xff0c;展現自己的寫作才華。如果你是一位熱愛寫作的、想要展現自己創作才華的小伙伴&#xff0c;那么&#xff0c;快來參加吧&#xff01…