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

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

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

ffmpeg.c 文件中的 #include 改为 #include "stdatomic.h"

stdatomic.h文件中 # include "../compat/atomics/win32/stdatomic.h"改为 # include

10、为解决下面报错,将 FFmpeg-4.3.r98065 目录下相关的文件拷贝到工程文件对应的文件夹

11、为解决下面报错,定义一个宏 _CRT_SECURE_NO_WARNINGS;

如下图所示

12、将 FFmpeg-4.3.r98065/libavutil 目录下的 timer.h 拷贝到 ffmpeg431_test/ffmpeg431devw32/include/libavutil 目录下

13、将 ffmpeg431_test/ffmpeg431devw32/include/libavutil/internal.h 目录下的 #include "config.h" 注释

14、针对下面问题,在 ffmpeg431_test/ffmpeg431devw32/include/libavutil 目录下新建一个 x86 目录,并将 FFmpeg-4.3.r98065/libavutil/x86 目录下的 timer.h 拷贝进去

如下图所示:

15、同上面情况一样,并将 FFmpeg-4.3.r98065/libavutil/x86 目录下的 emms.h 拷贝进去

如下图所示:

16、针对下面报错,F12 跳转到定义的地方将对应的指针赋初值为 NULL

如下图所示:

17、为解决下面报错,需要将 FFmpeg-4.3.r98065 目录下相关的文件拷贝到工程文件对应的文件夹

18、为解决下面报错,需要将 FFmpeg-4.3.r98065/SMP 目录下的 unistd.h 拷贝到 ffmpeg431_test 工程目录下

并将 ffmpeg.c 中 #include 改成 #include "unistd.h"

19、为解决下面报错,需要将 FFmpeg-4.3.r98065 目录下相关的文件拷贝到工程文件对应的文件夹

20、针对下面报错,需要禁用特定警告 4996

21、针对下面报错,将 ffmpeg.c 文件的 main 函数改为 main_ffmpeg431

22、针对下面问题,添加依赖库

avcodec.lib
avdevice.lib
avfilter.lib
avformat.lib
avutil.lib
postproc.lib
swresample.lib
swscale.lib

编译还会报错

这里耽搁了很多时间去查这个问题,参考下面的博客,发现原来是文中所讲的原因七:位数选择错误

“error LNK2019: 无法解析的外部符号”原因总结

23、按照上面的修改成 WIN32 后,之前属性页所配置的需要再配置一遍,再次编译,无报错!!!

四、测试 ffmpeg.c

1、在 ffmpeg.h 中声明 main_ffmpeg431 函数

2、修改 ffmepg431_test.cpp,将下面代码复制到 ffmepg431_test.cpp

#include <iostream>
extern "C"
{
#include "ffmpeg.h"
}
int main(int argc, char** argv)
{
    main_ffmpeg431(argc, argv);
}

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

目录
相关文章
|
1月前
|
缓存 并行计算 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的相关信息。
61 4
Jetson 学习笔记(十一):jetson agx xavier 源码编译ffmpeg(3.4.1)和opencv(3.4.0)
|
1月前
|
Ubuntu 应用服务中间件 nginx
Ubuntu安装笔记(三):ffmpeg(3.2.16)源码编译opencv(3.4.0)
本文是关于Ubuntu系统中使用ffmpeg 3.2.16源码编译OpenCV 3.4.0的安装笔记,包括安装ffmpeg、编译OpenCV、卸载OpenCV以及常见报错处理。
140 2
Ubuntu安装笔记(三):ffmpeg(3.2.16)源码编译opencv(3.4.0)
|
29天前
|
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开发知识可参考相关书籍。
81 0
FFmpeg开发笔记(五十九)Linux编译ijkplayer的Android平台so库
|
1月前
FFmpeg【SDK01】日志和字典的使用
FFmpeg中日志功能的使用方法,包括日志级别的设置和AVDictionary的基本操作,同时展示了字符串解析函数如av_parse_video_size、av_parse_video_rate和av_parse_time的应用。
30 2
|
1月前
|
C++
FFmpeg【SDK02】关于AVIO的一些使用
在C++中使用FFmpeg库处理本地文件和网络流,包括使用AVFormatContext打开和解析文件,自定义AVIO进行读取和定位,以及处理自定义数据源获取视频文件信息。
32 1
|
4月前
|
PHP 开发工具
tp5+微信公众号服务器配置时使用官方sdk还是token验证失败
tp5+微信公众号服务器配置时使用官方sdk还是token验证失败
39 0
|
5月前
|
Ubuntu
蓝易云 - Ubuntu18.04安装编译ffmpeg库
现在,你应该已经在你的Ubuntu 18.04系统上成功安装和编译了FFmpeg库。你可以通过运行 `ffmpeg -version`来验证安装是否成功。
67 0
|
6月前
|
Ubuntu Linux Shell
Android-NDK-clang 编译 FFmpeg
Android-NDK-clang 编译 FFmpeg
191 0
|
3月前
|
JavaScript 前端开发 Java
[Android][Framework]系统jar包,sdk的制作及引用
[Android][Framework]系统jar包,sdk的制作及引用
82 0
|
12天前
|
Java Linux API
Android SDK
【10月更文挑战第21天】
39 1