使用FFmpeg4.3.1的SDK官方开发包编译ffmpeg.c(一)

简介: 使用FFmpeg4.3.1的SDK官方开发包编译ffmpeg.c(一)

前言

本文使用官方发布的 SDK 开发包来亲手编译 ffmpeg.c 文件,编译成功后可以对其内部的源码按照我们的需求进行修改,为后面的转码器的开发做个铺垫。


一、前期准备

1、所需文件

ffmpeg-4.3.1-win32-dev

  • include:头文件
  • Lib:库文件

链接:https://pan.baidu.com/s/1gYLUjrFy1kaU5RDe-ihPQw

提取码:iukl

ffmpeg-4.3.1-win32-shared

  • Bin: 动态库 dll

链接:https://pan.baidu.com/s/1SyHTQN0ke1KAtyCHbARtzg

提取码:l12n

FFmpeg4.3.1 的 SDK 开发包

  • ffmpeg.c、cmdutil.c 等源文件

链接:https://github.com/ShiftMediaProject/FFmpeg

因本文编译的 ffmpeg 版本为 4.3.1,因此这里选择版本的时候选择 4.3 版本的最新发布的版本,如下图所示:

2、编译环境

IDE:Visual Studio 2022

二、创建工程

1、新建一个工程文件 ffmpeg431_test

2、编码为了和 ffmpeg 字符串相兼容,字符集这里改为使用多字节字符集

3、将FFmpeg-4.3.r98065 SDK开发包中相关的源文件复制到刚刚创建的工程文件夹内,包括如下文件:

  • 其中 dce_defs.c 所在目录:FFmpeg-4.3.r98065\SMP\ffmpeg
  • 其他文件所在目录:FFmpeg-4.3.r98065\fftools

复制后的结果如下:

4、将刚刚的这些源文件与头文件添加到项目中

5、预编译头选项选择 不使用预编译头

6、点击生成,此时会报很多错误,我们接下来依次解决错误

三、解决编译报错

1、将前面准备好的 ffmpeg-4.3.1-win32-dev 开发库复制到工程目录下并将其改为名 ffmpeg431devw32

2、将 ffmpeg431devw32 开发库头文件路径包含到工程目录内

3、将 ffmpeg431devw32 开发库路径包含到工程目录内

4、将 FFmpeg-4.3.r98065/SMP 目录下的 config.h 文件拷贝到工程目录中

5、将 mfx 目录拷贝到工程目录的 ffmpeg431devw32/include 目录下

mfx 链接:

链接:https://pan.baidu.com/s/1PL1t2zp96uuwVAW3F3Z4Mg

提取码:j377

6、再次编译,此时报错信息如下:

7、将 FFmpeg-4.3.r98065/compat 目录拷贝到工程目录的 ffmpeg431devw32/include 目录下

8、在工程目录的 ffmpeg431devw32/include 目录下新建 libavresample 目录,并将 FFmpeg-4.3.r98065/libavresample/avresample.h 和FFmpeg-4.3.r98065/libavresample/version.h 拷贝到其中

9、将 FFmpeg-4.3.r98065/SMP 目录下的stdatomic.h文件拷贝到 工程目录中


使用FFmpeg4.3.1的SDK官方开发包编译ffmpeg.c(二)https://developer.aliyun.com/article/1473995

目录
相关文章
|
2月前
|
Ubuntu 开发工具 git
Ubuntu编译ffmpeg解决错误:ERROR: avisynth/avisynth_c.h not found
通过本文的详细指导,您可以顺利地在Ubuntu系统上配置和编译FFmpeg,并解决Avisynth头文件缺失的问题。
111 27
|
5月前
|
缓存 并行计算 Ubuntu
Jetson 学习笔记(十一):jetson agx xavier 源码编译ffmpeg(3.4.1)和opencv(3.4.0)
本文是关于在Jetson AGX Xavier上编译FFmpeg(3.4.1)和OpenCV(3.4.0)的详细教程,包括编译需求、步骤、测试和可能遇到的问题及其解决方案。还提供了Jetson AGX Xavier编译CUDA版本的OpenCV 4.5.0的相关信息。
174 4
Jetson 学习笔记(十一):jetson agx xavier 源码编译ffmpeg(3.4.1)和opencv(3.4.0)
|
5月前
|
Ubuntu 应用服务中间件 nginx
Ubuntu安装笔记(三):ffmpeg(3.2.16)源码编译opencv(3.4.0)
本文是关于Ubuntu系统中使用ffmpeg 3.2.16源码编译OpenCV 3.4.0的安装笔记,包括安装ffmpeg、编译OpenCV、卸载OpenCV以及常见报错处理。
358 2
Ubuntu安装笔记(三):ffmpeg(3.2.16)源码编译opencv(3.4.0)
|
5月前
|
Linux API 开发工具
FFmpeg开发笔记(五十九)Linux编译ijkplayer的Android平台so库
ijkplayer是由B站研发的移动端播放器,基于FFmpeg 3.4,支持Android和iOS。其源码托管于GitHub,截至2024年9月15日,获得了3.24万星标和0.81万分支,尽管已停止更新6年。本文档介绍了如何在Linux环境下编译ijkplayer的so库,以便在较新的开发环境中使用。首先需安装编译工具并调整/tmp分区大小,接着下载并安装Android SDK和NDK,最后下载ijkplayer源码并编译。详细步骤包括环境准备、工具安装及库编译等。更多FFmpeg开发知识可参考相关书籍。
163 0
FFmpeg开发笔记(五十九)Linux编译ijkplayer的Android平台so库
|
5月前
FFmpeg【SDK01】日志和字典的使用
FFmpeg中日志功能的使用方法,包括日志级别的设置和AVDictionary的基本操作,同时展示了字符串解析函数如av_parse_video_size、av_parse_video_rate和av_parse_time的应用。
73 2
|
5月前
|
C++
FFmpeg【SDK02】关于AVIO的一些使用
在C++中使用FFmpeg库处理本地文件和网络流,包括使用AVFormatContext打开和解析文件,自定义AVIO进行读取和定位,以及处理自定义数据源获取视频文件信息。
63 1
|
8月前
|
PHP 开发工具
tp5+微信公众号服务器配置时使用官方sdk还是token验证失败
tp5+微信公众号服务器配置时使用官方sdk还是token验证失败
71 0
|
9月前
|
Ubuntu
蓝易云 - Ubuntu18.04安装编译ffmpeg库
现在,你应该已经在你的Ubuntu 18.04系统上成功安装和编译了FFmpeg库。你可以通过运行 `ffmpeg -version`来验证安装是否成功。
125 0
|
1月前
|
前端开发 Java Shell
【08】flutter完成屏幕适配-重建Android,增加GetX路由,屏幕适配,基础导航栏-多版本SDK以及gradle造成的关于fvm的使用(flutter version manage)-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
【08】flutter完成屏幕适配-重建Android,增加GetX路由,屏幕适配,基础导航栏-多版本SDK以及gradle造成的关于fvm的使用(flutter version manage)-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
179 20
【08】flutter完成屏幕适配-重建Android,增加GetX路由,屏幕适配,基础导航栏-多版本SDK以及gradle造成的关于fvm的使用(flutter version manage)-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
|
7月前
|
JavaScript 前端开发 Java
[Android][Framework]系统jar包,sdk的制作及引用
[Android][Framework]系统jar包,sdk的制作及引用
179 0

热门文章

最新文章