【问题标题】:FFMPEG avformat_open_input returned errorFFMPEG avformat_open_input 返回错误
【发布时间】:2019-01-13 04:04:13
【问题描述】:

对不起,我不得不问这个问题,但我找不到对 avformat_open_input 的返回代码的引用,也找不到任何人询问/回答我的问题。

在此函数调用之后

err = avformat_open_input(&pFormatCtx, is->filename, NULL, NULL);

我得到错误 = -13。这是什么意思,如果有人回答,还请分享你是如何知道哪个代码对应哪个错误的。

更新: OK,终于想通怎么把代码变成消息了,消息是“Permission denied”。有谁知道问题出在哪里?

【问题讨论】:

    标签: ffmpeg


    【解决方案1】:
    1. 有关错误代码定义,请参见 libavutil/error.h,但它们大多匹配负的 errno 值。您可以使用av_strerror 函数来获取有意义的消息。

    2. “权限被拒绝”很可能意味着您在is->filename 中指向的文件由于权限而无法打开。如果您认为情况并非如此,请在您的应用上运行 strace

    【讨论】:

    • 谢谢,我找到了错误码的功能,权限被拒绝是因为我是在Android上开发的,但是忘记给应用程序对sdcard的权限。
    • 当您在本机代码中遇到错误时,有时尝试在 Java 代码中执行相同操作(打开文件、建立连接)以获得更清晰的错误消息会有所帮助,这在您的情况下很可能缺少 READ_EXTERNAL_STORAGE 或类似的东西。
    • 它确实有帮助,但是,整个星期我都沉浸在应用程序的本机代码中,所以当另一个错误从那里弹出时,我从来没有想过要寻找其他地方。
    • av_strerror 返回“处理输入时发现无效数据”,但事实证明我缺少 av_register_all 和 avcodec_register_all
    【解决方案2】:

    如果你在Android上运行代码,你应该给予NETWORKSDCARD等权限,否则你会得到错误码-13。

    【讨论】:

      猜你喜欢
      • 2015-07-02
      • 2016-04-09
      • 2013-02-01
      • 1970-01-01
      • 2023-03-25
      • 1970-01-01
      • 1970-01-01
      • 2012-04-23
      • 2019-05-05
      相关资源
      最近更新 更多