FFmpeg 静态库编译错误汇总

这篇具有很好参考价值的文章主要介绍了FFmpeg 静态库编译错误汇总。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

今天使用静态库编译发现 了错误 这个只有在arm64 的编译上 存在 。armeabi-v7a不存在问题

ld: error: relocation R_AARCH64_ADD_ABS_LO12_NC cannot be used against symbol 'ff_cos_16384'; recompile with -fPIC

解决方案列举汇总  有很多 大家如果有同样的问题可以一一测试。我这里只说明我的情况不一定适合每一个人

  1.  --extra-cflags="-Os -fPIC.  经过测试无效
     
  2. 修改config.mak 中   经过测试无效。 如果你细心这个文件每次执行脚本都会覆盖重新生成。所以你提前修改 执行以后还是恢复原状。除非你先执行 configure ,修改编辑后再 进行make 。但我测试还是没用
    -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE
    改为 
    -D_FILE_OFFSET_BITS=64 -fPIC -D_LARGEFILE_SOURCE
  3. 增加 --extra-cflags=  no-pie 。 也无用 

  4. FFmpeg 脚本增加 --enable-pic   。 无用

  5. 脚本增加 --disable-asm   有效 

    是用来禁用汇编优化的选项。在编译过程中,
    当使用汇编优化时,生成的代码可能会包含一些特定的汇编指令,
    这些指令可能与代码的位置无关(Position-Independent Code,PIC),
    而这会导致一些链接问题。
    由于你使用了 --disable-asm,禁用了汇编优化,
    所以不会生成那些特定的汇编指令,避免了与位置无关代码相关的链接问题,
    从而解决了这个错误。


     

输入格式(Input Formats)和解码器(Decoders)在FFmpeg中具有不同的功能和作用:

  • 输入格式(Input Formats):输入格式处理的是解封装(Demuxing)的功能。它负责从媒体文件中读取音频和视频数据,并提供给解码器进行解码。输入格式的任务是解析文件头、元数据、时间轴等信息,将媒体文件中的音频和视频数据流提取出来,以供后续处理使用。输入格式可以处理各种媒体文件格式(如MP4、AVI、MKV等)和网络流协议(如RTSP、HTTP等)。

  • 解码器(Decoders):解码器负责将编码后的音频和视频数据解码为原始的音频采样和视频帧。它们能够理解不同的音频编码格式(如AAC、MP3、FLAC等)和视频编码格式(如H.264、VP9、MPEG-4等),并将它们解码为可供播放或处理的原始数据。解码器的任务是将压缩的音视频数据还原为未压缩的格式,以便后续的处理、播放或编码操作。

因此,输入格式和解码器在FFmpeg中扮演不同的角色。输入格式处理的是解封装和数据提取的功能,而解码器处理的是将编码数据解码为原始数据的功能。输入格式和解码器通常一起工作,输入格式从媒体文件中提取数据并传递给解码器进行解码,以便后续的处理和使用。文章来源地址https://www.toymoban.com/news/detail-657756.html

到了这里,关于FFmpeg 静态库编译错误汇总的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • FFMPEG使用DrawText滤镜添加字幕,包含ndk编译freetype

            ffmpeg使用drawtext滤镜需要在编译的时候使能drawtext,要想成功使能必须要先集成编译freetype库,并通知到ffmpeg(交叉编译没有安装到系统库路径)。         也有看到有的文章说需要集成fribidi,笔者也交叉编译了,但是最终没有用到,可能是ffmpeg版本的原因。 freety

    2024年01月17日
    浏览(72)
  • linux NDK交叉编译rtmp 与 ffmpeg+rtmp交叉编译(v7a,v8a) 完成流程

    最近在学RTMP,记录一下完成的编译流程 我是mac 电脑,但是mac上编译一直通过不了,后来才换到服务器上编译, 其实mac也能编译,只是最开始踩到坑里面了… 这里记录一下linux编译完整流程 环境: NDK: android-ndk-r17c Ffmpeg: ffmpeg4.2.2 (高版本也可以编译) system: mac 首先下载 rtmp https://gith

    2024年02月15日
    浏览(47)
  • linux 安装 ffmpeg 包括静态包和编译安装

    windows上安装,直接下载压缩包解压。linux安装,找了半天各种技术文章,说最好编译安装,按照步骤安装编译环境编译成功了,但是使用的时候总要安装各种外部库,转码转不了等等问题...... 最后无奈,卸载掉ffmpeg,去官网下载编译好的程序,尝试了一下。效果满意。所以建

    2024年02月04日
    浏览(40)
  • FFMPEG android mac 编译 支持DASH/OPENSSL问题汇总

    一 下载源码 FFMPEG  https://github.com/FFmpeg/FFmpeg/tree/release/4.3 二 编写脚本 支持https 就必须添加open SSL 的编译 具体可以查看我的另一个关于open SSL 的 然后我们配置的一些路径 涉及 ndk 的一定要查看你用的ndk 版本 是否存在这些路径这是第一步 然后如果支持dash 需要你加入 --enabl

    2024年02月16日
    浏览(46)
  • Android.bp 构建 FFmpeg 库:从搭建编译框架到处理编译错误的全过程

    本文基于 FFmpeg 5.1.4 版本,详细讲述了使用 Android.bp 构建 FFmpeg 库的过程,旨在简化 Android 源码中 FFmpeg 库的构建以及集成过程。 构建过程需使用 NDK 工具辅助,请参考该专栏之前文章:使用 NDK 编译 FFmpeg github 仓库:FFmpegDroidBuilder 以编译 libavutil、libavcodec、libavformat、libswres

    2024年03月18日
    浏览(54)
  • Android中集成FFmpeg及NDK基础知识

    在日常App开发中,难免有些功能是需要借助NDK来完成的,比如现在常见的音视频处理等,今天就以ffmpeg入手,来学习下Android NDK开发的套路. 很多人并不清除JNI和NDK的概念,经常搞混这两样东西,先来看看它们各自的定义吧. 很多人并不清除JNI和NDK的概念,经常搞混这两样东西,先来看看

    2024年01月17日
    浏览(39)
  • ffmpeg源码编译成功,但是引用生成的静态库(.a)报错,报错位置在xxx_list.c,报错信息为某变量未定义

            背景:本文是对上一个文章的补充,在源码编译之前,项目是有完整的ffmpeg编译脚本的,只不过新增了断点调试ffmpeg,所以产生的上面的文章,也就是说,我在用make编译成功后,再去做的源码编译。后来我修改了脚本,然后源码编译成功,但是引用的时候报错了。报

    2024年02月13日
    浏览(41)
  • FFmpeg开发笔记(七)欧拉系统编译安装FFmpeg

    FFmpeg支持Linux、macOS、Windows、Android等操作系统,其中Linux系列包括Ubuntu、Debian、Mint、CentOS、RHEL、Fedora等分支。FFmpeg官网的编译入口地址为 https://trac.ffmpeg.org/wiki/CompilationGuide,在这里可以找到FFmpeg对各系统的编译说明。更多详细的FFmpeg开发知识参见《FFmpeg开发实战:从零基础到

    2024年03月23日
    浏览(43)
  • FFmpeg+OpenCV开发案例汇总

    桌面共享工具(软编版) 桌面共享工具(DXGI硬编版) 智能广告大屏(可叠加透明广告) Android手机屏幕RTMP推流工具(推麦克风版) Android手机屏幕RTMP推流工具(推扬声器版) 多路转码推流工具 RTSP摄像头集中监控系统 可以播放声音的虚拟摄像头 FlashCam虚拟摄像头(桌面、R

    2024年03月20日
    浏览(72)
  • FFmpeg开发笔记(八)Linux交叉编译Android的FFmpeg库

    ​ 《FFmpeg开发实战:从零基础到短视频上线》一书的“12.1.2  交叉编译Android需要的so库”介绍了如何在Windows环境交叉编译Android所需FFmpeg的so库,接下来介绍如何在Linux环境交叉编译Android所需FFmpeg的so库。 登录Linux服务器(比如华为云的欧拉系统),依次执行下面的命令。 重

    2024年03月24日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包