繁体   English   中英

FFmpeg 解码 H264

[英]FFmpeg decoding H264

我正在 iPhone 上使用 FFmpeg 解码 H264 流。 我知道 H264 流是有效的,SPS/PPS 是正确的,因为 VLC、Quicktime、Flash 都正确解码了流。 我在 iPhone 上遇到的问题最好通过这张图片来说明。

在此处输入图片说明

就好像正在绘制运动矢量一样。 这张照片是在图像中有很多运动时拍摄的。 如果场景是静态的,那么角落里就会有点。 这总是发生在预测帧中。 块状颜色也是一个问题。

我尝试了 FFmpeg 的各种构建设置,例如关闭优化、asm、neon 和许多其他组合。 似乎没有什么能改变解码器的行为。 我还尝试过 Works with HTML、Love and Peace 版本以及最新的 GIT 源。 是否有我遗漏的设置,或者我无意中在解码器中启用了一些调试设置。

编辑

我正在使用 sws_scale 将图像转换为 RGBA。 我尝试了各种不同的像素格式,结果相同。

sws_scale(convertCtx, (const uint8_t**)srcFrame->data, srcFrame->linesize, 0, codecCtx->height, dstFrame->data, dstFrame->linesize);

设置编解码器上下文时,我使用 PIX_FMT_YUV420P 作为源格式。

您正在查看的是 ffmpeg 的运动矢量可视化。 确保没有设置以下调试标志:

avctx->debug & FF_DEBUG_VIS_QP
avctx->debug & FF_DEBUG_VIS_MB_TYPE
avctx->debug_mv

另外,请记住,与使用硬件解码器相比,在 iOS 上使用 CPU 解码 H264 视频会慢得多且能效更低。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM