咨询:macOS下avformat_open_input返回错误码-48的含义
macOS下avformat_open_input返回错误码-48的含义
错误码-48并非FFmpeg原生的AVERROR系列错误码,而是macOS系统直接返回的底层错误码,对应系统定义的EADDRINUSE,含义是地址已被占用。
出现这个错误的场景通常和你使用的UDP链接有关:
- 指定的UDP端口已经被其他进程占用
- 之前的UDP连接未正确释放,导致端口处于TIME_WAIT等占用状态
你可以通过以下方式排查:
- 用
lsof -i :<你的UDP端口号>命令查看端口的占用进程 - 检查代码中是否存在未调用
avformat_close_input(&ctx)释放资源的情况,确保每次打开后都正确关闭上下文
示例代码中若未处理资源释放,容易导致端口残留占用:
avformat_open_input(&ctx, "udp://...", NULL, NULL); // 业务逻辑... avformat_close_input(&ctx); // 必须调用以释放端口等资源
内容的提问来源于stack exchange,提问作者Hyndrix
相关产品推荐
相关产品推荐

