gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 14:51:55 38 4
gpt4 key购买 nike

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

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

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

我使用

./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/4091340/

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