基于WSL用MSVC編譯ffmpeg7.1

? ? ? ? 在windows平臺編譯FFmpeg,網上的大部分資料都是推薦用msys2+mingw進行編譯。在win10平臺,我們可以采用另一種方式,即wsl+msvc 實現window平臺的ffmpeg編譯。

????????下面將以vs2022+ubuntu22.04 為例,介紹此方法

0、前期準備

  • 安裝vs2022 (根據自己喜好,也可以安裝其他版本的vs)
  • 安裝wsl 及 linux子系統 (我選用了ubuntu22.04,可以根據喜好安裝其他linux版本)
  • 下載ffmpeg代碼 : 下載自己需要的ffmpeg版本的代碼。 我選擇了最新版本v7.1.1
  • 編譯ffmpeg編譯腳本: ffmpeg 的configure命令參數較多,可以提前編譯腳本sh腳本,避免在命令行手動輸入。
    #!/bin/bashARCH=x86_64PREFIX=$(pwd)/win/x64function build_android
    {./configure \
    --prefix=$PREFIX \
    --enable-shared \
    --disable-static \
    --disable-debug \
    --disable-x86asm \
    --enable-gpl   \
    --enable-small \
    --enable-neon  \
    --enable-d3d12va \
    --enable-dxva2 \
    --disable-postproc \
    --disable-doc \
    --disable-avdevice \
    --disable-symver \
    --disable-outdevs \
    --disable-indevs  \
    --disable-vulkan \
    --arch=$ARCH \
    --toolchain=msvcmake cleanecho "============================ configure android windows x64 success =========================="}build_android

1、?準備編譯環境

? ? ? ? 1.1? 通過命令行方式進入 msvc編譯環境。我選擇了 x64 版本編譯

? ? ? ? ?啟動后可以看到, msvc的編譯路徑已經添加到path中。? ? ? ? ? ?

? ? ? ? 1.2? 在msvc編譯環境中啟動wsl,此操作可以避免在linux系統中手動搭建msvc編譯鏈。

wsl啟動后,可以看到msvc的編譯路徑已經包含到ubuntu系統的path中。

2、運行編譯腳本,編譯ffmpeg

如上圖,執行make -j xx 編譯ffmpeg。執行make命令時,由于編碼差異可能會出現亂碼,

可以重復步驟1重新打開一個wsl窗口,然后執行make -j xx,則可以正常顯示中文。

出現上述錯誤的原因是因為msvc的中文輸出編碼為GB2312, linux中編譯環境中編碼為UTF8,將fftools/opt_common.c用gb2312打開后,用utf8重新保存即可。

3、執行make install 將ffmpeg安裝到指定目錄。 (如腳本中PREFIX指定的目錄)

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

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

相關文章

vue3+vite項目引入tailwindcss

從2025年1月tailwindcss4.0發布開始使用tailwindcss比之前簡化很多 1,安裝 yarn add tailwindcss tailwindcss/vite2,配置vite.config.js import tailwindcss from tailwindcss/vite;...plugins: [tailwindcss(),...] ...3,在主css文件頂部添加 注意一定是css文件,不能是sc…

藍牙RFCOMM協議概述

RFCOMM概述 概念 RFCOMM 協議提供了對 L2CAP 協議上的串行端口的模擬。該協議基于 ETSI 標準 GSM 07.10。 RFCOMM 采用與 TS07.10 相同的字節序列方式。所有二進制數字都按照從低位到高位的順序,從左至右讀。 兩個使用RFCOMM通信的藍牙設備可以打開多個仿真串行端…

[工具]B站緩存工具箱 (By 郭逍遙)

📌 項目簡介 B站緩存工具箱是一個多功能的B站緩存工具,包含視頻下載、緩存重載、文件合并及系統設置四大核心功能。基于yutto開發,采用圖形化界面操作,極大簡化B站資源獲取與管理流程。 工具可以直接將原本緩存的視頻讀取&#…

算法訓練營第十三天|226.翻轉二叉樹、101. 對稱二叉樹、 104.二叉樹的最大深度、111.二叉樹的最小深度

遞歸 遞歸三部曲: 1.確定參數和返回值2.確定終止條件3.確定單層邏輯 226.翻轉二叉樹 題目 思路與解法 第一想法: 遞歸,對每個結點進行反轉 # Definition for a binary tree node. # class TreeNode: # def __init__(self, val0, le…

sunset:Solstice靶場

sunset:Solstice https://www.vulnhub.com/entry/sunset-solstice,499/ 1,將兩臺虛擬機網絡連接都改為NAT模式 2,攻擊機上做namp局域網掃描發現靶機 nmap -sn 192.168.23.0/24 那么攻擊機IP為192.168.23.182,靶場IP192.168.23.244 3&#xff…

AZScreenRecorder最新版:功能強大、操作簡便的手機錄屏軟件

AZScreenRecorder最新版是一款功能強大的手機錄屏軟件,專為安卓設備設計。它無需ROOT權限,支持無限錄制時長,操作簡單,錄制過程中可以隨時暫停,滿足不同用戶的個性化錄屏需求。此外,用戶還可以自定義分辨率…

模塊自動導入的小工具

import { ref, reactive, onMounted } from vue import { useRoute, useRouter } from vue-router項目里很多文件都需要引入這些公共庫,比較繁瑣,使用一個小工具可以自動導入,就不需要在每個文件里面都寫這些導入的代碼了。 通過命令行下載安…

【讀書筆記】《編碼:隱匿在計算機軟硬件背后的語言》01 邏輯與開關

【讀書筆記】《編碼:隱匿在計算機軟硬件背后的語言》01 邏輯與開關 前言01 邏輯與開關 前言 我是一名光學工程專業研二的學生,目前正處于找工作的階段,根據往年師兄師姐找工作的情況,在西安這個城市不出意外我能找到的應該就是嵌入…

TXT編碼轉換工具iconv

iconv.exe是實現TXT編碼轉換的命令行工具,支持幾百種編碼格式的轉換,利用它可以在自主開發程序上實現TXT文檔編碼的自動轉換。 一、命令參數格式 Usage: iconv [-c] [-s] [-f fromcode] [-t tocode] [file ...] or: iconv -l 二、轉換的示例 將UTF-8…

軟考中級數據庫備考-上午篇

背景 新工作主要做大數據平臺,考一個軟考中級數據庫系統工程師,補足一下基礎知識。 基礎知識 1.計算機硬件基礎知識 正確答案:C 正確答案:D 正確答案:C 正確答案:BC 正確答案:B 正確答案:D 正確答案:A DMA建立內存與外設的直接…

AtCoder AT_abc405_d ABC405D - Escape Route

前言 BFS 算法在 AtCoder 比賽中還是會考的,因為不常練習導致沒想到,不僅錯誤 TLE 了很多,還影響了心態,3 發罰時后才 AC。 思路 首先,我們把所有位置和出口的距離算出來(用 BFS)&#xff0c…

【計算機視覺】目標檢測:yoloV1~yoloV11項目論文及對比

以下是 YOLO (You Only Look Once) 系列模型從 V1 到 V11 的詳細介紹和項目地址(截至2024年7月)。YOLO 是目標檢測領域的里程碑模型,以其 實時性 和 高精度 著稱,廣泛應用于自動駕駛、安防監控、工業檢測等領域。 YOLOv1 (2016) …

推薦系統架構設計

1.分析用戶行為數據?:? 收集用戶的活躍時間、點擊行為、瀏覽歷史等數據。?分析用戶的活躍模式,確定用戶最活躍的時間段。?kafka flink 數據庫 分析用戶行為并存儲 2. 預生成推薦內容?:? 在用戶活躍時間之前,預先生成推薦…

BERT類模型

1. BERT類模型是否需要處理 [CLS] 或池化? 那首先搞懂 [CLS] 和池化 (1)[CLS] 的作用 BERT 的輸入格式中,每個序列的開頭會添加一個特殊的 [CLS] Token(Classification Token)。它的設計初衷是為分類任務…

我的世界云端服務器具體是指什么?

我的世界云端服務器是指一種基于互聯網的多人游戲服務器,將游戲服務器運行在云平臺上,而不是在本地計算機中,這使用戶不需要考慮自身電腦的性能和網絡穩定性,只需要通過網絡連接到云端服務器,就可以享受到順暢的游戲體…

軟考(信息系統運行管理員)

第一章 信息系統運維概述 1.1 信息系統概述 信息的含義和類型 信息的含義: 一般:人們關心的事情的消息或知識。香農(信息論創始人):用來減少隨機不確定性的東西(標志著信息科學進入定量研究階段&#xff…

Unity基礎學習(九)輸入系統全解析:鼠標、鍵盤與軸控制

目錄 一、Input類 1. 鼠標輸入 2. 鍵盤輸入 3. 默認軸輸入 (1) 基礎參數 (2)按鍵綁定參數 (3)輸入響應參數 (4)輸入類型與設備參數 (5)不同類型軸的參…

VBA將PDF文檔內容逐行寫入Excel

VBA是無法直接讀取PDF文檔的,但結合上期我給大家介紹了PDF轉換工具xpdf-tools-4.05,先利用它將PDF文檔轉換為TXT文檔,然后再將TXT的內容寫入Excel,這樣就間接實現了將PDF文檔的內容導入Excel的操作。下面的代碼將向大家演示如何實…

Spring Boot之MCP Client開發全介紹

Spring AI MCP(模型上下文協議,Model Context Protocol)客戶端啟動器為 Spring Boot 應用程序中的 MCP 客戶端功能提供了自動配置支持。它支持同步和異步兩種客戶端實現方式,并提供了多種傳輸選項。 MCP 客戶端啟動器提供以下功能: 多客戶端實例管理 支持管理多個客戶端實…

[題解]2023CCPC黑龍江省賽 - Folder

來源:F.Folder - Codeforces題意:給定由 n ( 1 ≤ n ≤ 1 0 5 ) n(1\le n\le 10^5) n(1≤n≤105)個結點組成的樹,每次操作可將一棵子樹接到其他結點上。求將樹轉換為一棵斜樹的最小操作次數。關鍵詞:思維(簽到)題解:斜…