Closed mahxn0 closed 3 years ago
大佬,我又来了
官方标配:1080p是264解码16路,265是32路 现在我测试发现264最多15路,265也是。 多一路耗时很快就上去了。 我看代码发现耗时最多的地方在nv12->rgba的转换这块. 这个路数上去就需要50ms左右了
decode one frame cost 0 s+ 52 ms t_use=50 ms t_use=49 ms t_use=50 ms t_use=50 ms t_use=50 ms
gettimeofday(&ctx->t_start,NULL); // do vic conversion conversion: color map convert (NV12@res#1 --> RGBA packed) and scale ret = ctx->vic_converter->convert(dec_buffer->planes[0].fd, ctx->dst_dma_fd); TEST_ERROR(ret == -1, "Transform failed", ret); gettimeofday(&ctx->t_end, NULL); int t_use = (ctx->t_end.tv_sec - ctx->t_start.tv_sec) * 1000 + (ctx->t_end.tv_usec - ctx->t_start.tv_usec) / 1000; printf("t_use=%d ms\n", t_use);
我准备直接用nv12 当作输出,在做检测跟踪的时候在需要的地方再用cuda转换,整个流程用yuv。 大佬能否提供一点指导 如何修改输出直接是NV12或者YUV420的,试了jetson-ffmpeg那个 有问题好像
dec_buffer->planes[0].fd应该就是NV12的数据,可以试试直接从这个缓冲区获取数据。方法可以参考ctx->dst_dma_fd获取帧数据的方法试试。
OK 可以了 感谢大佬
大佬,我又来了
官方标配:1080p是264解码16路,265是32路 现在我测试发现264最多15路,265也是。 多一路耗时很快就上去了。 我看代码发现耗时最多的地方在nv12->rgba的转换这块. 这个路数上去就需要50ms左右了
我准备直接用nv12 当作输出,在做检测跟踪的时候在需要的地方再用cuda转换,整个流程用yuv。
大佬能否提供一点指导 如何修改输出直接是NV12或者YUV420的,试了jetson-ffmpeg那个 有问题好像