登录 用户中心() [退出] 后台管理 注册
   
您的位置: 首页 >> CLQ工作室开源代码 >> 主题: [ffmpeg]FFmpeg更新太快,很多教程都跟不上最新的API了 [zt]     [回主站]     [分站链接]
标题
[ffmpeg]FFmpeg更新太快,很多教程都跟不上最新的API了 [zt]
clq
浏览(28) + 2021-07-15 18:11:19 发表 编辑

关键字:

[2021-07-26 21:00:47 最后更新]


https://www.bilibili.com/read/cv2680761/

--------------------------------------------------------
供参考,有些说法不一定正确,也不太完整。比如 register_all 那些很多版本下还是需要的。
--------------------------------------------------------

FFmpeg更新太快,很多教程都跟不上最新的API了。记一下开发时踩过的坑。

1. 初始化的时候不要用av_register_all()(deprecated,老代码删除此调用即可),直接open就可以了。

2. 不要用avcodec_copy_context()(deprecated),直接在原来的AVCodexContext上操作即可。如果要复制,新建一个context,并使用AVCodecParameters来转移设置。

3. 解码时,一定要用avcodec_parameters_to_context(),将流的参数(stream->codecpar)复制到解码器中,否则某些流可能无法正常解码。

4. 解码第一帧前,一定要将解码器的timebase设置为流的timebase(即:dec_ctx->pkt_timebase = stream->time_base),否则提示“Could not update timestamps for skipped samples”。

5. 新的编解码API:很多旧教程都使用avcodec_decode_audio4()和avcodec_decode_video2()(deprecated)来进行解码,但是现在建议使用新的send/receive API(文档:http://ffmpeg.org/doxygen/4.1/group__lavc__encdec.html)。新版API比旧版还方便,看看文档就会了。

6. 关于unref的使用:frame不需要unref(avcodec_receive_frame()会自动unref上一帧,不用手动调用),packet一定要unref(否则内存泄漏)。

暂时是这么多了,以后想到再写。 作者:干物猫小方 https://www.bilibili.com/read/cv2680761/ 出处:bilibili


总数:0 页次:1/0 首页 尾页  
总数:0 页次:1/0 首页 尾页  


所在合集/目录
ffmpeg 更多



发表评论:
文本/html模式切换 插入图片 文本/html模式切换


附件:



NEWBT官方QQ群1: 276678893
可求档连环画,漫画;询问文本处理大师等软件使用技巧;求档softhub软件下载及使用技巧.
但不可"开车",严禁国家敏感话题,不可求档涉及版权的文档软件.
验证问题说明申请入群原因即可.

Copyright © 2005-2020 clq, All Rights Reserved
版权所有
桂ICP备15002303号-1