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使用protobuf-maven-plugin的插件编译proto文件详解

《java使用protobuf-maven-plugin的插件编译proto文件详解》:本文主要介绍java使用protobuf-maven-plugin的插件编译proto文件,具有很好的参考价... 目录protobuf文件作为数据传输和存储的协议主要介绍在Java使用maven编译proto文件的插件

Visual Studio 2022 编译C++20代码的图文步骤

《VisualStudio2022编译C++20代码的图文步骤》在VisualStudio中启用C++20import功能,需设置语言标准为ISOC++20,开启扫描源查找模块依赖及实验性标... 默认创建Visual Studio桌面控制台项目代码包含C++20的import方法。右键项目的属性:

Python中对FFmpeg封装开发库FFmpy详解

《Python中对FFmpeg封装开发库FFmpy详解》:本文主要介绍Python中对FFmpeg封装开发库FFmpy,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录一、FFmpy简介与安装1.1 FFmpy概述1.2 安装方法二、FFmpy核心类与方法2.1 FF

基于Linux的ffmpeg python的关键帧抽取

《基于Linux的ffmpegpython的关键帧抽取》本文主要介绍了基于Linux的ffmpegpython的关键帧抽取,实现以按帧或时间间隔抽取关键帧,文中通过示例代码介绍的非常详细,对大家的学... 目录1.FFmpeg的环境配置1) 创建一个虚拟环境envjavascript2) ffmpeg-py

使用jenv工具管理多个JDK版本的方法步骤

《使用jenv工具管理多个JDK版本的方法步骤》jenv是一个开源的Java环境管理工具,旨在帮助开发者在同一台机器上轻松管理和切换多个Java版本,:本文主要介绍使用jenv工具管理多个JD... 目录一、jenv到底是干啥的?二、jenv的核心功能(一)管理多个Java版本(二)支持插件扩展(三)环境隔

MySQL版本问题导致项目无法启动问题的解决方案

《MySQL版本问题导致项目无法启动问题的解决方案》本文记录了一次因MySQL版本不一致导致项目启动失败的经历,详细解析了连接错误的原因,并提供了两种解决方案:调整连接字符串禁用SSL或统一MySQL... 目录本地项目启动报错报错原因:解决方案第一个:第二种:容器启动mysql的坑两种修改时区的方法:本地

conda安装GPU版pytorch默认却是cpu版本

《conda安装GPU版pytorch默认却是cpu版本》本文主要介绍了遇到Conda安装PyTorchGPU版本却默认安装CPU的问题,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的... 目录一、问题描述二、网上解决方案罗列【此节为反面方案罗列!!!】三、发现的根本原因[独家]3.1 p

Redis指南及6.2.x版本安装过程

《Redis指南及6.2.x版本安装过程》Redis是完全开源免费的,遵守BSD协议,是一个高性能(NOSQL)的key-value数据库,Redis是一个开源的使用ANSIC语言编写、支持网络、... 目录概述Redis特点Redis应用场景缓存缓存分布式会话分布式锁社交网络最新列表Redis各版本介绍旧

IIS 7.0 及更高版本中的 FTP 状态代码

《IIS7.0及更高版本中的FTP状态代码》本文介绍IIS7.0中的FTP状态代码,方便大家在使用iis中发现ftp的问题... 简介尝试使用 FTP 访问运行 Internet Information Services (IIS) 7.0 或更高版本的服务器上的内容时,IIS 将返回指示响应状态的数字代

Python使用FFmpeg实现高效音频格式转换工具

《Python使用FFmpeg实现高效音频格式转换工具》在数字音频处理领域,音频格式转换是一项基础但至关重要的功能,本文主要为大家介绍了Python如何使用FFmpeg实现强大功能的图形化音频转换工具... 目录概述功能详解软件效果展示主界面布局转换过程截图完成提示开发步骤详解1. 环境准备2. 项目功能结