FFmpeg avcodec_send_packet函数错误定位

简介:

场景
avcodec_send_packet函数返回-1094995529错误,根据FFmpeg的错误信息,得知为AVERROR_INVALIDDATA,这个时候,由于已经接收到I帧,实际上是可以解码的,难道是因为解码器的内部缓冲区需要被填满,才会返回一帧图像,导致需要等待3秒钟,才能够出来图像

通过日志分析问题
使用av_log_set_callback函数设置av_log日志输出到文件,定位到问题
I:2017-12-29 09:52:41 ms:903:nal_unit_type: 1, nal_ref_idc: 3
I:2017-12-29 09:52:41 ms:941:nal_unit_type: 1, nal_ref_idc: 3
I:2017-12-29 09:52:41 ms:942:non-existing PPS 0 referenced
I:2017-12-29 09:52:41 ms:943:decode_slice_header error
I:2017-12-29 09:52:41 ms:943:no frame!

解决
回放的是PS流,由于没有调用av_find_stream_info函数,所以在调用avcodec_send_packet函数的时候,会去探测PPS和SPS
的相关参数,所以需要几秒去探测属性



     本文转自fengyuzaitu 51CTO博客,原文链接:http://blog.51cto.com/fengyuzaitu/2046171,如需转载请自行联系原作者



相关文章
|
2月前
|
存储 编解码 容器
FFmpeg avformat_open_input() 函数返回错误protocol not found解决方法(实测有效!附简单FFMPEG的编解码流程)
我个人出现这个错误的时候是在打开文件时报的错误,开始以为我需要加上资源文件,那样QT确实能检测到文件的存在,但是在Debug中他是检测不到这个文件的。
185 1
|
4月前
|
编解码 算法 C++
【ffmpeg 基础函数】详解FFmpeg中的av_packet_ref函数
【ffmpeg 基础函数】详解FFmpeg中的av_packet_ref函数
55 0
|
4月前
|
编解码 测试技术
ffmpeg中的时间单位以及时间转换函数(av_q2d av_rescale_q)
ffmpeg中的时间单位以及时间转换函数(av_q2d av_rescale_q)
137 0
|
4月前
|
算法
FFmpeg关键函数介绍
FFmpeg关键函数介绍
42 0
|
4月前
|
API 开发工具 C语言
解决新版本ffmpeg找不到avpriv_io_delete函数等问题
解决新版本ffmpeg找不到avpriv_io_delete函数等问题
76 0
|
编解码 Android开发
【Android FFMPEG 开发】Android Studio 中配置 FFMPEG 库注意事项 ( 静态库 链接 libz.so 库 | 导入 FFMPEG 函数库顺序 )
【Android FFMPEG 开发】Android Studio 中配置 FFMPEG 库注意事项 ( 静态库 链接 libz.so 库 | 导入 FFMPEG 函数库顺序 )
411 0
【Android FFMPEG 开发】Android Studio 中配置 FFMPEG 库注意事项 ( 静态库 链接 libz.so 库 | 导入 FFMPEG 函数库顺序 )
|
Android开发 C++
【Android FFMPEG 开发】Android Studio 工程配置 FFMPEG ( 动态库打包 | 头文件与函数库拷贝 | CMake 脚本配置 )(二)
【Android FFMPEG 开发】Android Studio 工程配置 FFMPEG ( 动态库打包 | 头文件与函数库拷贝 | CMake 脚本配置 )(二)
210 0
【Android FFMPEG 开发】Android Studio 工程配置 FFMPEG ( 动态库打包 | 头文件与函数库拷贝 | CMake 脚本配置 )(二)
|
Ubuntu 编译器 Android开发
【Android FFMPEG 开发】Android Studio 工程配置 FFMPEG ( 动态库打包 | 头文件与函数库拷贝 | CMake 脚本配置 )(一)
【Android FFMPEG 开发】Android Studio 工程配置 FFMPEG ( 动态库打包 | 头文件与函数库拷贝 | CMake 脚本配置 )(一)
215 0
【Android FFMPEG 开发】Android Studio 工程配置 FFMPEG ( 动态库打包 | 头文件与函数库拷贝 | CMake 脚本配置 )(一)