当前位置: 首页 > news >正文

Windows下VScode配置FFmpeg开发环境保姆级教程

相关准备

  1. 提前在本地开发环境中配置好mingw64或者msys2开发工具集。
    在这里插入图片描述
    在这里插入图片描述

  2. 安装VScode软件。
    在这里插入图片描述

下载Windows版本的FFmpeg相关库

  1. 下载地址:https://ffmpeg.org/download.html

  2. 下载步骤:如下图。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  3. 下载后的文件:包含了可执行文件ffmpeg、ffplay、ffprobe,头文件、库文件等。

    ├─bin
    ├─doc
    ├─include
    │  ├─libavcodec
    │  ├─libavdevice
    │  ├─libavfilter
    │  ├─libavformat
    │  ├─libavutil
    │  ├─libswresample
    │  └─libswscale
    └─lib└─pkgconfig
    

VScode配置FFmpeg步骤

  1. 创建文件夹test-ffmpeg

    mkdir test-ffmpeg
    
  2. 将ffmpeg库文件移到test-ffmpeg文件夹

    mv ffmpeg test-ffmpeg
    
  3. VScode打开test-ffmpeg文件夹
    在这里插入图片描述

  4. 配置 c_cpp_properties.json

    • 按住“ctrl+shift+p”,选择 C/C++:Edit Configurations(JSON),点开默认内容如下:
      在这里插入图片描述
      在这里插入图片描述

    • 配置c_cpp_properties.json内容,修改如下:
      在这里插入图片描述

      {"configurations": [{"name": "Win32","includePath": ["${workspaceFolder}/**","C:/Users/yance/downloads/test-ffmpeg/ffmpeg/include"],"defines": ["_DEBUG","UNICODE","_UNICODE"],"windowsSdkVersion": "10.0.26100.0","compilerPath": "C:/mingw64/bin/gcc.exe","cStandard": "c17","cppStandard": "c++17","intelliSenseMode": "windows-gcc-x64"}],"version": 4
      }
      
  5. 配置 tasks.json

    • 按住“ctrl+shift+p”,输入“tasks”,选择第一个,即默认的task。
      在这里插入图片描述

    • 配置tasks.json,修改内容如下:
      在这里插入图片描述

      {"version": "2.0.0","tasks": [{"type": "cppbuild","label": "C/C++: gcc.exe 生成ffmpeg活动文件","command": "C:/mingw64/bin/gcc.exe","args": ["-fdiagnostics-color=always","-g","${file}","-L","C:/Users/yance/downloads/test-ffmpeg/ffmpeg/lib","-I","C:/Users/yance/downloads/test-ffmpeg/ffmpeg/include","-lavcodec","-lavdevice","-lavfilter","-lavformat","-lavutil","-lswresample","-lswscale","-o","${fileDirname}\\${fileBasenameNoExtension}.exe"],"options": {"cwd": "${fileDirname}"},"problemMatcher": ["$gcc"],"group": {"kind": "build","isDefault": true},"detail": "编译器: C:/mingw64/bin/gcc.exe"}]
      }
      
  6. 配置 launch.json

    • 点击VScode顶部的“运行”
      在这里插入图片描述

    • 点击“添加配置”,在弹出的窗口上选择“C++(GDB/LLDB)”
      在这里插入图片描述

    • 配置launch.json,修改内容如下:
      在这里插入图片描述

      {// 使用 IntelliSense 了解相关属性。 // 悬停以查看现有属性的描述。// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387"version": "0.2.0","configurations": [{"name": "(gdb) 启动","type": "cppdbg","request": "launch","program": "${fileDirname}\\${fileBasenameNoExtension}.exe","args": [],"stopAtEntry": false,"cwd": "${fileDirname}","environment": [],"externalConsole": false,"MIMode": "gdb","miDebuggerPath": "c:/mingw64/bin/gdb.exe","setupCommands": [{"description": "为 gdb 启用整齐打印","text": "-enable-pretty-printing","ignoreFailures": true},{"description": "将反汇编风格设置为 Intel","text": "-gdb-set disassembly-flavor intel","ignoreFailures": true}]}]
      }
      
  7. 创建main.c文件进行测试

    • 编辑测试代码
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #include <stdint.h>
    #include <libavutil/log.h>int main()
    {av_log_set_level(AV_LOG_DEBUG);printf("hello FFmpeg!\n");av_log(NULL, AV_LOG_INFO, "hello FFmpeg!\n");return 0;
    }
    
    • 运行
    • 生成exe文件并输出结果
      在这里插入图片描述

备注

  • 可以根据需求将gcc的编译器修改成g++;
  • 可以根据需求再配置OpenCV等库文件,过程都类似。
http://www.dtcms.com/a/272302.html

相关文章:

  • 面试150 LRU缓存
  • LeetCode - 1668. 最大重复子字符串
  • 原创:多面体编译,polybench-c-4.2批量测试脚本
  • php中array($this, ‘loadClass‘)表示啥意思?
  • 阿里云-跨账号同步OSS Bucket
  • 【Note】Linux Kernel 之 内核架构、源码文件、API/ABI 、FHS
  • Linux 内核日志中常见错误
  • idea安装maven 拉取依赖失败的解决办法
  • 网络基本概念
  • Ubuntu22.0.4安装PaddleNLP
  • Android Coil 3 data加载图的Bitmap或ByteArray数据类型,Kotlin
  • Redis BigKey 深度解析:从原理到实战解决方案
  • arm架构,arm内核,处理器之间的关系
  • 【部分省份已考真题】备战2025全国青少年信息素养大赛-算法创意实践挑战赛c++省赛/复赛真题——被污染的药剂
  • 如何发现Redis中的bigkey?
  • Django中序列化与反序列化
  • Python(31)PyPy生成器优化深度解析:JIT加速下的Python性能革命
  • 查看已安装 Django REST Framework (DRF) 版本
  • 【提高篇-基础知识与编程环境:1、Linux系统终端中常用的文件与目录操作命令】
  • 力扣-54.螺旋矩阵
  • QT - 串口QserialPort应用
  • C语言——预处理详解
  • C#中异步任务取消:CancellationToken
  • 【C++详解】STL-list模拟实现(深度剖析list迭代器,类模板未实例化取嵌套类型问题)
  • 【TCP/IP】10. 引导协议与动态主机配置协议
  • prometheus+grafana接入nginx实战
  • 零成本实现商品图换背景
  • 静态路由实验(2)
  • Vue3 深度解析:渲染器与渲染函数的奥秘
  • 【PTA数据结构 | C语言版】链式栈的3个操作