如何通过 Alchemy gcc 编译 ffmpeg?

2024-02-01

所以我创建了ffmpeg配置文件,使其成为纯C(平台无关,但只是理论上)

所以我的配置很简单(0.6.1,0.6.3测试过):

./configure  --disable-doc  --disable-ffplay --disable-ffprobe  --disable-ffserver    --disable-avdevice   --disable-avfilter   --disable-pthreads  --disable-everything --enable-muxer=flv --enable-encoder=flv --enable-encoder=h263  --disable-mmx  --disable-shared   --prefix=bin/  --disable-protocols --disable-network --disable-optimizations --disable-debug  --disable-asm --disable-stripping

在 Linux 上编译此文件将解析为 4 个库,总大小为 1 mb。

但我需要使用自定义编译器(开源 gcc 模拟称为Adobe炼金术 http://labs.adobe.com/technologies/alchemy/,让我们将 C/c++ 编译到 Flash 中)

在标准 Make 过程中,几乎每个文件都会出现错误:

Array @ARGV missing the @ in argument 1 of shift() at /home/rupert/Downloads/alchemy-ubuntu-v0.5a/achacks/gcc line 218.
cc1: error: unrecognized command line option "-Wtype-limits"
cc1: error: unrecognized command line option "-fno-signed-zeros"

那么我该怎么办 - 如何通过 alchemy 编译 ffmpeg (至少是它的最小部分)?

Update


FlasCC(Alchemy 2) 确实可以很好地编译 ffmpeg - 对于任何尝试的人来说,基本上你需要下载 ffmpeg 源代码。进入ffmpeg目录,执行

PATH=/cygdrive/c/PATH_TO_FLASCC/sdk/usr/bin:$PATH ./configure --prefix=/cygdrive/c/PATH_TO_FLASCC/sdk/usr

现在,如果您运行配置时带有一些限制,这样它就不会包含所有编解码器或过滤器(需要很长时间),这是很好的。我的用例中的其他配置参数:

--disable-ffserver --disable-everything --enable-filter=scale --enable-demuxer=flv --enable-muxer=ogg --enable-protocol=file --disable-network --disable-debug --disable-yasm --disable-asm --disable-stripping --enable-memalign-hack --disable-shared --enable-decoder=flashsv --enable-encoder=mpeg1video --enable-encoder=libtheora --enable-encoder=libvorbis --enable-libtheora --enable-libvorbis

重要的是--disable-everything然后仅启用您需要的内容。

然后运行./make and ./make安装(在这些命令前面加上 PATH),它应该生成并安装 ffmpeg 库。

当我构建一个测试 swf 时,一切似乎都有效。我使用了他们的(修改过的)示例,其中他们编码了 25 个虚拟 mpeg 帧。我至少正在跟踪编码进度并看到正在编码的帧。

不过,如果您想使用 SWC,那么它是一个问题。我遇到奇怪的错误 - 首先它找不到编解码器(使用查找编解码器函数时得到 NULL),当我按名称指定它时,它无法分配编解码器上下文(也得到 NULL)。然后我用纯Flex编译它,它克服了这个问题,但无法打开编解码器(基本上所有这些都是av_一些库函数)。我真的不明白为什么 SWC 不能与这些一起使用,因为与 emmit-swf 一起工作都完美。

也许有人可以启发一下 SWC / SWF 的差异。

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

如何通过 Alchemy gcc 编译 ffmpeg? 的相关文章

随机推荐

  • -fomit-frame-pointer *总是*省略 fp 吗?

    是否 fomit frame pointeralways省略帧指针 是否存在pc和fp都需要设置的情况 动态堆栈增长是否会强制设置 fp 专门询问MIPS32 谢谢 正确执行并不真正需要帧指针 除非有时异常展开 动态堆栈增长通常需要某种帧指
  • 管理加载 ZipFile 时分配的内存

    我正在尝试将 69 930 个文件加载到基本文本编辑器中 一切都很顺利 全部加载完毕后 内存就达到了非常酷的 130MB 然而 在高峰加载时间期间 最大容量可达 900MB 1200MB 内存全部引用Inflater buf http gr
  • C++ 重载模式:使用可变 lambda 进行调用解析

    考虑这个众所周知的 C 模式 template
  • 如何获取远程桌面客户端的IP地址?

    我正在尝试编写一个脚本来记录用户启动远程桌面以登录 Windows Server 的 Windows 客户端的 IP 地址 如何在服务器中捕获客户端的IP地址 所以 你忽略代理 在域中使用环境变量 CLIENTNAME 您可以将其解析回IP
  • wordpress:polylang 插件的媒体库问题

    我正在使用 Wordpress 开发一个网站 其中使用 Polylang 插件为多种不同语言制作内容 我使用 Polylang 来表示两种语言 荷兰语 主要 和英语 次要 当我在荷兰语页面上传图像时 一切都很好 但是当我创建一个英文页面 并
  • 使用 PIL 的 ImageDraw 模块

    我正在尝试使用 PIL 的 ImageDraw 模块进行单独的像素操作 下面的代码应该创建 Tkinter 画布小部件 然后打开一张图像 将一个像素的颜色更改为红色 然后将图像嵌入到画布小部件中 但是 它似乎不起作用 My Code imp
  • 如何在 Visual Studio 2012 中编辑 SSRS 2008R2 报告?

    我是一名报告编写者 能够在 Visual Studio 2008 中编辑 更新报告 我们使用 SSRS2008R2 我刚刚安装了 Visual Studio 2012 当我去转换我的报告项目时 它无法工作 因为我似乎缺少一个组件 本质上 项
  • Kafka 连接集群设置或启动连接工作线程

    我正在通过 kafka connect 我正在尝试了解这些概念 假设我已经设置了 kafka 集群 节点 k1 k2 和 k3 并且它正在运行 现在我想在不同节点 例如 c1 和 c2 中以分布式模式运行 kafka 连接工作程序 几个问题
  • 从未在数据库上显式调用 Close

    我有一个来自 sqlite 数据库的列表视图 我在几个不同的点调用 fillData 来更新列表视图 private void fillData readDatabase open Cursor itemsCursor readDataba
  • 在Android模拟器中,是否可以注意到振动效果?

    很简单的问题 是否可以注意到 Android 模拟器中的振动 我猜你想知道是否发生了振动 如果是这样 请查看模拟器中的 logcat 中的振动消息
  • Delphi 2010 中的 Indy IdHttp Post 问题

    我对 Indy IdHttp Post 方法有问题 使用 Delphi 2007 编译的函数 CallRpc 工作正常 但使用 Delphi 2010 编译的相同代码会引发异常 当我将 Delphi 2007 Indy TIdHttp 更改
  • 使用 Swift 3 停止预定定时器,即使定时器为零,定时器也会继续触发

    我们调用startTimer函数来启动一个定时器 当我们想要停止它时 我们调用 stopTimerTest 函数 但在调用 stopTimer 函数后 timerTestAction 继续触发 为了检查计时器条件 我们使用 print 并在
  • 通过引用设置接口参数

    我很难理解如何设置作为指针传递的接口值 我正在尝试完成以下任务 import fmt var Stuff map string interface func main var num int Stuff key 9001 get key n
  • 在asp.net mvc中一次更新多条记录

    我正在尝试使用制作一个网站asp net mvc 4 EF6我想一次更新多行 但由于某种原因 它不起作用 我收到这样的错误 System NullReferenceException 未将对象引用设置为对象的实例 这是我的代码 控制器 Ht
  • 展平 JavaScript 对象以作为查询字符串传递

    我有一个 javascript 对象 需要将其展平为字符串 以便可以作为查询字符串传递 我该怎么做 IE cost 12345 insertBy testUser 会成为cost 12345 insertBy testUser 我不能使用
  • 在 Scala / Spark 中将文件从一个文件夹移动到 HDFS 上的另一个文件夹

    我有两个路径 一个用于文件 一个用于文件夹 我想将文件移动到 HDFS 上的该文件夹中 我怎样才能在 Scala 中做到这一点 我也在用 Spark 如果相同的代码也适用于 Windows 路径 就像在 HDFS 上读取 写入文件一样 但不
  • 对 WTForms form.errors 字典进行排序

    forms errors 字典似乎是按字段名称排序的 而不是按 它们在表格本身中声明的顺序 E g class ProductForm Form code TextField Code validators Required descrip
  • 构建错误 -Ionic Cordova 在 Android 上失败 [重复]

    这个问题在这里已经有答案了 运行命令 ionic cordova build android stacktrace 时出现以下错误 generateDebugResources mergeDebugResources processDebu
  • 为什么 std::queue 不支持 clear() 函数?

    我有一个要求 对于一个函数 我将输入作为数字流 我的意思是 该函数在每次调用中都会继续使用单个数字进行调用 我在用std queue用于存储数字流 仅当满足某些条件时 我才需要处理一组收集的数字 如果不满足条件 我需要将所有元素放入队列中
  • 如何通过 Alchemy gcc 编译 ffmpeg?

    所以我创建了ffmpeg配置文件 使其成为纯C 平台无关 但只是理论上 所以我的配置很简单 0 6 1 0 6 3测试过 configure disable doc disable ffplay disable ffprobe disabl