video_codec 是Justin开源的多媒体编解码硬件加速项目(Github)。 支持Intel集显和Nvidia显卡硬件加速。包含以下模块。欢迎加入群讨论(QQ群:519072404)。仅供个人学习使用,商业使用请联系作者(Justin's Email: mojing1999@hotmail.com)
- Intel_dec
- Intel_enc
- Intel_transcoding
- nv_dec
- nv_enc
- nv_transcoding
- test_intel_dec
- test_intel_enc
- test_intel_transcoding
- test_nv_dec
- test_nv_enc
- test_nv_transcoding
参见 jm_intel_dec.h 头文件。
参见项目 test_intel_dec 。 工程里包含头文件 jm_intel_dec.h 和导入库 intel_dec.lib
#include "jm_intel_dec.h"
#pragma comment(lib,"intel_dec.lib")
handle_yuv_frame_callback()
...
jm_intel_dec_create_handle()
jm_intel_dec_init()
jm_intel_dec_set_yuv_callback() [OPTIONAL]
loop jm_intel_dec_is_exit()
if(jm_intel_dec_need_more_data()) {
len = jm_intel_dec_free_buf_len()
jm_intel_dec_input_data()
...
//if no more input data
jm_intel_dec_set_eof()
}
jm_intel_dec_output_frame() [OPTIONAL]
//handle_yuv_frame_callback()
end loop
jm_intel_dec_stream_info()
jm_intel_dec_deinit()
流程图
参见 jm_nv_dec.h 头文件。
参见项目 test_nv_dec 。 工程里包含头文件 jm_nv_dec.h 和导入库 nv_dec.lib
#include "jm_nv_dec.h"
#pragma comment(lib,"nv_dec.lib")
jm_nvdec_create_handle()
jm_nvdec_init()
loop jm_nvdec_is_exit()
read_frame_nalu()
jm_nvdec_decode_frame()
jm_nvdec_output_frame()
end loop
jm_nvdec_show_dec_info()
jm_nvdec_deinit()
流程图
-
开发测试平台
- OS : Win10
- CPU : i7-6700
- 集显: Intel HD Graphics 530
- 显卡: Nvidia GeForce GTX 970
- Memory: 16 GB
-
test_intel_dec
- test_nv_dec
更多优化测试,目前没有实现更深层的优化。
- Intel decode
- Test intel decode
- Nvidia decode
- Test nvdia decode
- intel encode
- intel transcode
- nvidia encode
- nvidia transcode
- FFmpeg integration