ffmpeg-4.0.2版本中ffplay播放器在vs2013下的编译

2024-06-16 00:08

本文主要是介绍ffmpeg-4.0.2版本中ffplay播放器在vs2013下的编译,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

相信很多想要学习播放器开发的小伙伴都知道ffplay,但是却不知道如何在vs2013下去编译,虽然网上已经有了一些教程,但是都不完整,或者ffmpeg的版本太老,所以就有了今天这篇文章。

好了,废话少说,直接上干货。

第一步下载ffmpeg源码,下载地址http://ffmpeg.org/download.html,具体界面如下:

第2步,下载ffmpeg的二进制版本,有些小伙伴可能会问为什么还要下载二进制,直接编译源代码不可以吗,当然可以,如果你不怕麻烦,你怎么都可以,但是我教你的方法是简单有效的方法,要不要学,嘿嘿。

输入如下网址:https://ffmpeg.zeranoe.com/builds/

界面如下:

然后下载win32下的Shared和Dev两个版本,就可以,win64同理,所以,我们这里以win32为例。下载完成后,按照下面的方式重新组织你的ffmpeg文件,具体如下:

在我这里有两个版本,x86代表32位,把所有的头文件放入include,lib和exe文件放入lib目录,bin目录你们可以不要。

第3步下载SDL库,我们这里也是用最新的版本SDL2-2.0.8,输入网址:http://www.libsdl.org/download-2.0.php

具体界面如下:

我们下载32位windows版本就可以,然后分别按照include和lib目录组织好自己的文件。

第4步,我们开始建立一个vs2013控制台工程,如下:

点击完成,如下:

好了,现在我们已经创建了一个vs2013控制台工程,但是现在没有任何文件,现在我们开始为它添加需要的文件,具体如下:

1)将ffmpeg-4.0.2\ffmpeg-4.0.2\fftools下的三个文件拷贝到自己的工程,三个文件如下:

cmdutils.h

cmdutils.c

ffplay.c

2) 将ffmpeg-4.0.2\ffmpeg-4.0.2\compat\avisynth\avs下的config.h文件拷贝到自己的工程

工程目录文件如下:

将所有文件添加到项目中,具体如下:

右键项目名称,添加-现有项,然后选择我们拷贝的4个源文件,效果如下:

3)配置我们的工程中的include目录,lib目录

include目录添加两个新项

D:\ffmpeg\x86\include

D:\SDL2-2.0.8\include

lib目录同样添加两个新项

D:\ffmpeg\x86\lib

D:\SDL2-2.0.8\lib\x86

然后配置依赖项,添加lib如下:

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

好了现在配置完成,下面,我们开始编译。

4)编译项目,错误具体如下:

只需要注释掉这行代码,就可以,同时也要注释掉另外两行代码,具体如下:

//#include "compat/va_copy.h"

//#include "libavresample/avresample.h"

//#include "libavutil/libm.h"

5)再次编译,具体如下:

处理方法:

注释掉print_program_info和print_all_libs_info内部的所有代码,具体如下:

6)再次编译,具体如下:

处理方法:

注释掉print_buildconf内部所有的代码,具体如下:

7)再次编译,具体如下:

处理方法:

在C++预处理其中,添加 _CRT_SECURE_NO_WARNINGS,具体如下:

8)再次编译,具体如下:

处理方法:

屏蔽SDL检测,具体如下:

将SDL检测改为否,就可以。

9)再次编译,具体如下:

处理方法:

在config.h中添加如下代码:

#define FFMPEG_DATADIR "D:\\ffmpeg-4.0.2\\ffmpeg-4.0.2"

注意:

D:\\ffmpeg-4.0.2\\ffmpeg-4.0.2是下面的源码目录,不是编译好的ffmpeg目录,目录内容具体如下:

10) 再次编译,具体如下:

处理方法:

在cmdutils.c中添加如下代码:

#define snprintf _snprintf

11)再次编译,具体如下:

到此,编译已经完成,然后只需要将相应的ffmpeg和SDL的相关DLL拷贝到exe所在目录即可,具体如下:

12)测试ffplay-vs.exe

首先打开cmd,并进入到ffplay-vs.exe所在目录,具体如下:

运行程序如下:

ffplay-vs.exe D:\d.mp4

运行效果如下:

到此,全部完成,是不是很简单,各位小伙伴,自己动手试试。

这篇关于ffmpeg-4.0.2版本中ffplay播放器在vs2013下的编译的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1064965

相关文章

Java编译生成多个.class文件的原理和作用

《Java编译生成多个.class文件的原理和作用》作为一名经验丰富的开发者,在Java项目中执行编译后,可能会发现一个.java源文件有时会产生多个.class文件,从技术实现层面详细剖析这一现象... 目录一、内部类机制与.class文件生成成员内部类(常规内部类)局部内部类(方法内部类)匿名内部类二、

Python基于wxPython和FFmpeg开发一个视频标签工具

《Python基于wxPython和FFmpeg开发一个视频标签工具》在当今数字媒体时代,视频内容的管理和标记变得越来越重要,无论是研究人员需要对实验视频进行时间点标记,还是个人用户希望对家庭视频进行... 目录引言1. 应用概述2. 技术栈分析2.1 核心库和模块2.2 wxpython作为GUI选择的优

Linux卸载自带jdk并安装新jdk版本的图文教程

《Linux卸载自带jdk并安装新jdk版本的图文教程》在Linux系统中,有时需要卸载预装的OpenJDK并安装特定版本的JDK,例如JDK1.8,所以本文给大家详细介绍了Linux卸载自带jdk并... 目录Ⅰ、卸载自带jdkⅡ、安装新版jdkⅠ、卸载自带jdk1、输入命令查看旧jdkrpm -qa

Tomcat版本与Java版本的关系及说明

《Tomcat版本与Java版本的关系及说明》:本文主要介绍Tomcat版本与Java版本的关系及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Tomcat版本与Java版本的关系Tomcat历史版本对应的Java版本Tomcat支持哪些版本的pythonJ

IDEA中Git版本回退的两种实现方案

《IDEA中Git版本回退的两种实现方案》作为开发者,代码版本回退是日常高频操作,IntelliJIDEA集成了强大的Git工具链,但面对reset和revert两种核心回退方案,许多开发者仍存在选择... 目录一、版本回退前置知识二、Reset方案:整体改写历史1、IDEA图形化操作(推荐)1.1、查看提

JDK多版本共存并自由切换的操作指南(本文为JDK8和JDK17)

《JDK多版本共存并自由切换的操作指南(本文为JDK8和JDK17)》本文介绍了如何在Windows系统上配置多版本JDK(以JDK8和JDK17为例),并通过图文结合的方式给大家讲解了详细步骤,具有... 目录第一步 下载安装JDK第二步 配置环境变量第三步 切换JDK版本并验证可能遇到的问题前提:公司常

nvm如何切换与管理node版本

《nvm如何切换与管理node版本》:本文主要介绍nvm如何切换与管理node版本问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录nvm切换与管理node版本nvm安装nvm常用命令总结nvm切换与管理node版本nvm适用于多项目同时开发,然后项目适配no

Mybatis从3.4.0版本到3.5.7版本的迭代方法实现

《Mybatis从3.4.0版本到3.5.7版本的迭代方法实现》本文主要介绍了Mybatis从3.4.0版本到3.5.7版本的迭代方法实现,包括主要的功能增强、不兼容的更改和修复的错误,具有一定的参考... 目录一、3.4.01、主要的功能增强2、selectCursor example3、不兼容的更改二、

pytorch+torchvision+python版本对应及环境安装

《pytorch+torchvision+python版本对应及环境安装》本文主要介绍了pytorch+torchvision+python版本对应及环境安装,安装过程中需要注意Numpy版本的降级,... 目录一、版本对应二、安装命令(pip)1. 版本2. 安装全过程3. 命令相关解释参考文章一、版本对

springboot3.4和mybatis plus的版本问题的解决

《springboot3.4和mybatisplus的版本问题的解决》本文主要介绍了springboot3.4和mybatisplus的版本问题的解决,主要由于SpringBoot3.4与MyBat... 报错1:spring-boot-starter/3.4.0/spring-boot-starter-