我正在使用iPhone上的FFmpeg解码H264流。我知道H264流是有效的,SPS / PPS是正确的,因为VLC,Quicktime,Flash都能正确解码流。我在iPhone上遇到的问题最好通过这张照片显示出来。
好像正在绘制运动矢量。当图像中有很多运动时,这张照片被拍下来了。如果场景是静态的,则角落中有点。这总是出现在预测帧中。块状颜色也是一个问题。
我尝试过各种FFmpeg的构建设置,例如关闭优化,asm,neon和许多其他组合。似乎没有什么改变解码器的行为。我也尝试了HTML,爱与和平版本的作品,以及最新的GIT资源。可能是我缺少的设置,或者我可能无意中在解码器中启用了一些调试设置。
修改
我正在使用sws_scale将图像转换为RGBA。我尝试了各种不同的像素格式,结果相同。
sws_scale(convertCtx, (const uint8_t**)srcFrame->data, srcFrame->linesize, 0, codecCtx->height, dstFrame->data, dstFrame->linesize);
我在设置编解码器上下文时使用PIX_FMT_YUV420P作为源格式。
答案 0 :(得分:3)
你正在看的是ffmpeg的运动矢量可视化。确保未设置以下任何调试标志:
avctx->debug & FF_DEBUG_VIS_QP
avctx->debug & FF_DEBUG_VIS_MB_TYPE
avctx->debug_mv
另外,请记住,使用CPU解码H264视频的速度要比使用硬件解码器慢得多,而且功耗也低于使用硬件解码器。