WIN10 编译ffmpeg(包含ffplay)

2023-11-10

1、安装MSYS2

       Win10 搭建MSYS2环境_cloud_yq的博客-CSDN博客

2、编译SDL

        SDL是编译生成ffplay的基础,不需要生成ffplay可不编译SDL。

        1)下载地址:https://www.libsdl.org/download-2.0.php

        2)由于采用MSYS2下编译,下载SDL2-2.0.22.tar.gz - GPG signed这个包。(将SDL2-2.22.tar.gz.sig放到SDL2-2.22.tar.gz的解压目录下)

        3)编译步骤

              step1、mkdir /usr/local/SDL2    这个路径用来存放SDL编译后文件,可改(改后后续其他地方也要同步修改)

              step2、进入SDL2-2.22.tar.gz的解压目录,执行./configure --prefix=$MSYS2/usr/local/SDL2/   这里$MSYS2表示自己的MSYS2安装目录(是自己情况修改)。

              step3、make

              step4、 make install

              编译成功之后会在$MSYS2/usr/local/SDL2/  相应的库目录(没有生成需要仔细检查以上三步是否有报错):

        4)、记录编译过程一个报错,在SDL2-2.0.18和SDL2-2.0.22版本都遇到了。make步骤编译SDL_windows_gaming_input.c,报错信息如下:

        make: *** [makefile:730: build/sdl_windows_gaming_input.lo] error 1

        这里应该是windows定义类型和linux有差别,需要修改下 SDL_windows_gaming_input.c($MSYS2/home/source/SDL2-2.0.18/src/joystick/windows)文件,增加新的宏(此处是参考SDL issue解决,路径贴在末尾)。修改内容如下:

//增加宏
#ifdef __MINGW32__
#define __FIReference_1_int __FIReference_1_INT32
#define __FIReference_1_int_get_Value __FIReference_1_INT32_get_Value
#define __FIReference_1_int_Release __FIReference_1_INT32_Release
#endif

//源代码
struct joystick_hwdata
{
    __x_ABI_CWindows_CGaming_CInput_CIRawGameController *controller;
    __x_ABI_CWindows_CGaming_CInput_CIGameController *gamecontroller;
    __x_ABI_CWindows_CGaming_CInput_CIGameControllerBatteryInfo *battery;
    __x_ABI_CWindows_CGaming_CInput_CIGamepad *gamepad;
    __x_ABI_CWindows_CGaming_CInput_CGamepadVibration vibration;
    UINT64 timestamp;
};

3、编译ffmpeg        

    1)、需要配置下环境

        在mingw64命令窗口中执行一下命令:

1、Pacman -S nasm

2、Pacman -S yasm

3、Pacman -S make cmake

4、 Pacman -S diffutils

    2)、设置SDL2的库目录

        export PATH="/usr/local/SDL2/bin/:$PATH"     

   3)、ffmpeg编译指令

1、./configure --enable-shared --disable-static --enable-debug --enable-sdl2 --extra-cflags='-I/usr/local/SDL2/include/SDL2/' --extra-ldflags='-L/usr/local/SDL2/lib/' --prefix=/home/source/ffmpeg_build/

2、make

3、make install

编译成功后生成的库文件就在 /home/source/ffmpeg_build/ 目录下。

4、参考文章

Windows下编译可调试的ffmpeg, 包含ffplay_shizheng163的博客-CSDN博客

compilability of WGI code against MinGW headers · Issue #5589 · libsdl-org/SDL (github.com)

FFmpeg:编译(Windows)_满嘴跑火车的小土匪的博客-CSDN博客_ffmpeg windows编译

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

WIN10 编译ffmpeg(包含ffplay) 的相关文章

  • 【NodeJs】使用ffmpeg将视频webm转换为mp4

    使用Chrome浏览器录制视频文件是webm格式 但是很多媒体播放器是不支持的 不利于分享 需要转换为mp4格式才行 接下来给大家讲 ffmpeg ffmpeg是什么呢 一个免费开源的视频转换工具 一款音视频编解码工具 一组音视频编解码开发
  • (ffmpeg)ffmpeg+SDL的简单播放器(雷霄骅)更新版

    代码源自雷神 一个是播放音频的demo 可以播放MP3和AAC 但是MP3应该是没有封面的 另一个是播放ts格式的视频 没有声音 源码可以到雷神博客下载 但是因为ffmpeg库的更新问题 并不能直接在ubuntu下直接运行 笔者做了修改 在
  • UE4的视频播放(Media Player)

    1 视频播放Begining 首先将需要播放的视频拖入 创建Media Player和Media Texture 创建Material 将材质改为User Interface 在UI界面 创建Image 将这个材质装入 在人物Pawn界面添
  • PR/AE 超级变速插件Twixtor Pro 7.5.4汉化版WIN版中文使用教程

    插件介绍 Twixtor Pro汉化版 hereitis cn articleDetails 897 可以直观的调整动画祯速率 加快或减慢 调整帧顺序 为了实现 的图像品质 Twixtor通过对原始连续的帧进行变形和插入来合成它独有的新帧
  • Android:播放UDP流例如udp://@239.0.0.3:8218

    成功实现播放udp github下载 求大佬们给个star GitHub YangWenlong71 udpplayer 基于ijk重新编译 未做删减几乎全能的安卓视频播放器 支持播放UDP https http 等 分割线 研究思路及结果
  • Mac下编译WebRTC(Mac和iOS版本)

    前言 随着新冠疫情的影响 这两年音视频的需求呈爆发式增长 在音视频领域中 WebRTC可以说是一个绕不开宝库 包括了音视频采集 编解码 传输 渲染的全过程 本文主要记录下在Mac平台上编译WebRTC Mac和iOS版本的全过程 设置代理
  • rust + ffmpeg + sdl2 视频播放器,用纯RUST实现音视频流媒体服务

    Rust是一门系统编程语言 专注于安全 尤其是并发安全 支持函数式和命令式以及泛型等编程范式的多范式语言 RTMP协议确实复杂 在做这个项目之前 看过很多帖子 看过官方文档 但总是感觉不能彻底的理解清楚 在实现过一遍此协议之后 感觉清楚了不
  • public static void main(String[] args) { //填入通过分享获取到的抖音视频地址 String videoUrl = getVid...

    这段代码的作用是从抖音 douyin 分享链接中获取视频的无水印播放地址 首先 它通过调用 HttpRequest get url 方法获取抖音视频的分享页面的 HTML 源代码 然后 通过调用 sub 方法并传入 HTML 源代码 开始字
  • uniapp使用uni.createInnerAudioContext()播放指定音频并且切换

    uniapp使用uni createInnerAudioContext播放指定音频并且切换 注意 效果图 主要代码 放上所有的代码 注意 uniapp API 中 uni createInnerAudioContext 是无法多音频播放的
  • IP包头&ARP协议笔记

    一 IP包头分析 1 帧中的IP包头 从版本到可选项 其中2为帧头 注 1 IP包头最小长度 20字节 即可选项以前部分 IP包头长度是可变的 2 可选项最长可以是40个字节 故IP包头最长可以是60个字节 1 版本 4 说明是IPv4 2
  • uniapp 上传音频(H5可以App不行),并播放后端返回的音频

    1 上传 record let this this uni chooseFile count 1 默认100 extension m4a mp3 根据文件拓展名过滤 每一项都不能是空字符串 默认不过滤 success function re
  • (十)老照片修复、图像超分、图片提高分辨率、图片高清化、图片清晰化、黑白图片上色、人脸祛斑、美颜、人体瘦身、图像去噪、人像抠图、批量处理、视频提高分辨率、视频逐帧修复

    十 老照片修复 图像超分 图片提高分辨率 图片高清化 图片清晰化 黑白图片上色 人脸祛斑 美颜 人体瘦身 图像去噪 人像抠图 批量处理 视频提高分辨率 视频逐帧修复 本文的代码的功能是 可以对图片文件 视频批量增强清晰度 对老照片进行修复
  • 视音频数据处理入门:AAC音频码流解析

    vs调试内存 FF F9满足代码中的if判断条件 上图代码的目的是获取adts帧的长度 如上述评论 aac frame length占用13个bit 覆盖了buffer 3 buffer 4 buffer 5 下图为查找资料所得 用ue查看
  • 嵌入式开发、C++后端开发、C++音视频开发怎么选择?

    嵌入式开发 C 后端开发和C 音视频开发的选择问题 近年来 随着互联网和物联网的快速发展 嵌入式开发 C 后端开发和C 音视频开发等职业领域也逐渐受到广泛关注 对于有志于从事这些领域的人来说 如何做出选择呢 下面将从前景 薪酬和职业稳定性等
  • 开源音频处理代码 speex

    Speex 是一套主要针对语音的开源免费 无专利保护的音频 压缩格式 speex是近年来开发出的一套功能强大的语音引擎 能够实现高质量和低 比特率 的编码 它不仅提供了基于码激励线性预测 CELP 算法的编 解码模块 而且在其最新发布的版本
  • 免费音效素材网站,一次性介绍清楚

    不管是在游戏 电影 电视剧 短视频还是音频中 合适的音效能够更好的表达内容和渲染氛围 今天给大家分享几个免费音效素材 感兴趣的话可以接着往下看 一 制片帮素材 找音效 制片帮素材不仅有海量的优质视频素材 还有丰富的音效资源 分类清晰 更重要
  • 教育场景数字化中音视频小程序的发展

    教育场景数字化逐步成为刚需 2018年以来 国家对在线教育行业的监管收紧 以及受益于 5G 技术的发展 教育科技逐步走向成熟化和规范化 教育行业的本质是人与人 老师与学生 老师与家长 以及更多角色直接的沟通与互动 而仅仅是古早式的在线文字已
  • 多业务光端机的技术进展与应用策略

    随着光通信技术的飞速发展 多业务光端机已成为现代通信网络不可或缺的一部分 这种设备能够在单一平台上处理多种类型的信号 包括语音 数据和视频等 极大地提高了网络的灵活性和效率 本文将探讨多业务光端机的最新技术进展和在实际应用中的策略 技术进展
  • 有没有实用的视频、图片素材网站推荐?

    在作品创作中 素材网站扮演着至关重要的角色 它们提供了海量的设计资源 为设计师 艺术家和创意工作者提供了无限的可能性 本文将为您介绍几款备受推崇的素材网站 帮助您开启创意之旅 一 制片帮素材 制片帮素材是一个提供海量精品视频素材的网站 站内
  • 实用软件分享,打工人必备~

    在这个数字化时代 各种实用软件已经成为我们生活中不可或缺的工具 它们可以帮助我们更高效地完成工作 提高生活质量 节省时间和精力 本文将为您介绍几款实用的软件 让您的工作和生活更加便捷 一 视频下载工具 犀牛下载器 一款免安装的在线视频下载工

随机推荐