iPhone에서 FFmpeg를 사용하여 H264 스트림을 디코딩하고 있습니다. H264 스트림이 유효하고 SPS/PPS가 VLC, Quicktime, Flash 모두 스트림을 올바르게 디코딩하는 것처럼 정확하다는 것을 알고 있습니다. 아이폰에서 겪고있는 문제는이 그림에서 가장 잘 드러납니다.FFmpeg 디코딩 H264
그것은 움직임 벡터 그려지는 경우 같다. 이 이미지는 이미지에 많은 움직임이있는 동안 찍혔습니다. 장면이 정적 인 경우 모서리에 점이 있습니다. 이것은 항상 예측 프레임과 함께 발생합니다. 뭉툭한 색도 문제입니다.
나는 최적화, asm, 네온 및 다른 많은 조합을 끄는 것과 같은 FFmpeg에 대한 다양한 빌드 설정을 시도해 보았습니다. 아무것도 디코더의 동작을 변경하는 것으로 보이지 않습니다. 나는 또한 HTML, Love and Peace 릴리즈와 최신 GIT 소스와 함께 작품을 시도했다. 어쩌면 설정이 누락되었거나, 실수로 디코더의 일부 디버그 설정을 활성화했을 수 있습니다.
내가 RGBA로 이미지를 변환 할 sws_scale을 사용하고
편집. 나는 동일한 결과를 가진 다양한 다른 픽셀 포맷을 시도했다.
sws_scale(convertCtx, (const uint8_t**)srcFrame->data, srcFrame->linesize, 0, codecCtx->height, dstFrame->data, dstFrame->linesize);
내 코덱 컨텍스트를 설정할 때 원본 형식으로 PIX_FMT_YUV420P를 사용하고 있습니다.
키 프레임에서 디코딩을 시작 하시겠습니까? –
좋은 질문입니다. 나는 그렇게 믿는다. 그러나 나는 두 번 점검 할 것이다. 키 프레임을 생성하기 위해 인코더를 구성하면 차단 된 이미지 만 얻을 수 있습니다. 예상대로 화살표가 없습니다. –
스트림이 키 프레임으로 시작되고 있음을 확인했습니다. 아마도 FU-A RTP 패킷 어셈블러가 좋지 않을 수도 있지만 다시 확인해 보았습니다. –