libav/ffmpeg:avcodec_decode_video2()在分离多路复用和解码时返回-1 我使用LBAV(从Linux和Windows上的C++程序)解码文件中的视频流,它使用AVFATATOPENGINING()、AVAQueReByFrand()和AVCODECPLACDEVIEVIDE2OR(./P>)进行工作(对H264和MPEG2等各种格式进行解码)。
现在我必须分开解复用和解码。一个类将调用avformat_open_input()和av_read_frame(),然后将avpacket传递到另一个类读取的队列中。在这里,我使用avcodec_alloc_context3()获取avcodec_decode_video2()所需的avcodecext。我已经用一个MPEG2视频流测试过了,效果很好 如果我尝试解码H264流,就会出现问题:avcodec_decode_video2()总是返回-1并输出“无帧”。我知道解码此流需要额外的数据(SPS/PPS),因此我尝试从解码器中的解复用器复制原始AVCodecContext,但它无法工作:libav/ffmpeg:avcodec_decode_video2()在分离多路复用和解码时返回-1 我使用LBAV(从Linux和Windows上的C++程序)解码文件中的视频流,它使用AVFATATOPENGINING()、AVAQueReByFrand()和AVCODECPLACDEVIEVIDE2OR(./P>)进行工作(对H264和MPEG2等各种格式进行解码)。,video,ffmpeg,decode,h.264,libav,Video,Ffmpeg,Decode,H.264,Libav,现在我必须分开解复用和解码。一个类将调用avformat_open_input()和av_read_frame(),然后将avpacket传递到另一个类读取的队列中。在这里,我使用avcodec_alloc_context3()获取avcodec_decode_video2()所需的avcodecext。我已经用一个MPEG2视频流测试过了,效果很好 如果我尝试解码H264流,就会出现问题:avcodec_decode_video2()总是返回-1并输出“无帧”。我知道解码此流需要额外的数据(S
- 复制extradata字段的内容并设置与解码器中默认值不同的所有其他值,返回:-1
- 使用相同的上下文(即传递指针)会导致崩溃