gpt4 book ai didi

macos - ffmpeg编译问题: avcodec_find_decoder always returns null

转载 作者:太空宇宙 更新时间:2023-11-04 12:40:04 28 4
gpt4 key购买 nike

我最近尝试通过从源代码下载和编译 ffmpeg 来升级我在 Mac OS X 应用程序中使用的 ffmpeg 库。

我的代码在 Windows 上与相同版本的预编译库一起正常工作。在 Mac OS X 上,该库似乎可以工作(它可以打开文件并找到使用的流和编解码器),但是当它到达 avcodec_find_decoder 时,此函数总是返回 null。

该代码适用于旧版本的库(一年前在 Mac OS X 10.5 上编译)

我使用配置了 fmpeg

./configure --extra-cflags="-arch i386" --extra-ldflags='-arch i386' --arch=x86_32 --target-os=darwin --enable-cross-compile --disable-indev=jack --enable-shared --disable-static

我检查了 config.mak,它似乎启用了我尝试启用的文件类型的解码器(ogg、vorbis、avi、mkv 等)我还检查了是否使用了正确的头文件以及是否使用了新编译的库。

我只找到了一些与此问题相关的旧帖子,但没有任何解决方案:

http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/2007-January/021399.html

http://libav-users.943685.n4.nabble.com/avcodec-find-decoder-problem-td944800.html

编辑:进一步检查,似乎 av_codec_next(NULL) 也返回 null,这意味着没有可用的编解码器,或者 utils.c 中的 first_avcodec 未设置(我实际上根本没有找到这个变量已设置,我会假设 av_register_all,但我在那里找不到它)

最佳答案

我已经找到了我的问题的解决方案,尽管如果有人可以帮助我解释我的问题,我仍然很感兴趣。

基本上,我只在我的函数顶部调用了 av_register_all()。现在,在此之后添加 avcodec_register_all() 时,我的代码再次运行。我不明白为什么,因为 avcodec_register_all() 应该通过查看源代码调用 av_register_all()。

参见 http://www.ffmpeg.org/doxygen/trunk/allformats_8c-source.html#l00039获取源代码

关于macos - ffmpeg编译问题: avcodec_find_decoder always returns null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54636014/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com