insufficient thread locking around avcodec_open/close() 错误提示

本文探讨了FFmpeg的libavcodec库在并发使用视频编码器时的限制和错误原因,详细分析了在libavcodec/mpegvideo_enc.c文件中函数estimate_best_b_count()和av_find_stream_info()调用avcodec_open()导致的“insufficientthread locking around avcodec_open/close()”错误,并指出了涉及到的编码器类型。提供了避免此类错误的解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

        受FFmpeg的libavcodec库的限制,使用如下视频编码器(Video Encoder)进行编码,不能同时进行多个转换任务,否则将导致编码器锁定错误。
        具体代码文件是libavcodec/mpegvideo_enc.c,在函数estimate_best_b_count()中,将会调用avcodec_open(),如果一个线程调用了avcodec_open(),但还没有调用avcodec_close(),此时再有一个线程来调用avcodec_open(),就会发生错误,提示"insufficient thread locking around avcodec_open/close()"。
        涉及的编码器有:h263, h263+, flv, rv10, rv20, mpeg4, msmpeg4v1, msmpeg4v2, msmpeg4, wmv1。

        av_find_stream_info这个函数里面也会调用avcodec_open,所以很有可能两个线程同时调用avcodec_open导致打开失败 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

为毛呀

非常感谢你对我的支持

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值