开发环境
HUAWEI Kunpeng 920 5220 Kylin Linux Advanced Server V10 (Halberd) Atlas 300I Duo 推理卡 - 宿主机驱动版本信息
- 容器Ascend-toolkit版本信息
- ffmpeg 版本信息
应用功能简介
ffmpeg拉取rtsp视频流,ffmpeg硬解解码,预处理,目标检测,硬件编码,rtsp推理。
问题详情
单个核心上了,开启一路视频处理,推出来的视频画质正常;当我开启第二处,画质明显变差,这两路的画质都很差。
问题定位,将视频解码后的AVFrame保存为yuv,发现解码后的yuv画质就很差。
请问,咱们ffmpeg的扩展是否出现过类似的问题,问题排查修复建议。是否还需要其他详细的相关信息,感谢,在线等
开发环境
HUAWEI Kunpeng 920 5220Kylin Linux Advanced Server V10 (Halberd)Atlas 300I Duo 推理卡应用功能简介
ffmpeg拉取rtsp视频流,ffmpeg硬解解码,预处理,目标检测,硬件编码,rtsp推理。
问题详情
单个核心上了,开启一路视频处理,推出来的视频画质正常;当我开启第二处,画质明显变差,这两路的画质都很差。
问题定位,将视频解码后的AVFrame保存为yuv,发现解码后的yuv画质就很差。
saveFrame(const AVFrame *frame, const char *file_name) { FILE *fp = fopen(file_name, "wb"); if (fp != nullptr) { // Copy Y plane from device to host uint8_t *y_data = new uint8_t[frame->linesize[0] * frame->height]; aclError ret = aclrtMemcpy(y_data, frame->linesize[0] * frame->height, frame->data[0], frame->linesize[0] * frame->height, ACL_MEMCPY_DEVICE_TO_HOST); if (ret == ACL_ERROR_NONE) { // Write Y plane fwrite(y_data, 1, frame->linesize[0] * frame->height, fp); // Copy UV plane from device to host uint8_t *uv_data = new uint8_t[frame->linesize[1] * frame->height / 2]; ret = aclrtMemcpy(uv_data, frame->linesize[1] * frame->height / 2, frame->data[1], frame->linesize[1] * frame->height / 2, ACL_MEMCPY_DEVICE_TO_HOST); if (ret == ACL_ERROR_NONE) { // Write UV plane fwrite(uv_data, 1, frame->linesize[1] * frame->height / 2, fp); std::cout << "NV12 frame saved to: " << file_name << std::endl; } delete[] uv_data; } delete[] y_data; fclose(fp); } else { std::cout << "Failed to open file for saving NV12 frame: " << file_name << std::endl; } return true; }请问,咱们ffmpeg的扩展是否出现过类似的问题,问题排查修复建议。是否还需要其他详细的相关信息,感谢,在线等