ffmpeg 命令行,可指定GPU运算:ffmpeg -hwaccel_output_format cuda -vcodec h264_cuvid -i input.mp4 -vcodec h264_nvenc -gpu 0 -acodec copy -f mp4 -y output.mp4
ffmpeg SDK调用:
av_find_encoder_by_name(“h264_nvenc”);
av_find_encoder_by_name(“hevc_nvenc”);
nvenc.c
av_cold int ff_nvenc_encode_init(AVCodecContext *avctx)
static av_cold int nvenc_setup_device(AVCodecContext *avctx)
static av_cold int nvenc_check_device(AVCodecContext *avctx, int idx)
static av_cold int nvenc_open_session(AVCodecContext *avctx)
{
NV_ENC_OPEN_ENCODE_SESSION_EX_PARAMS params = { 0 };
NvencContext *ctx = avctx->priv_data;
NV_ENCODE_API_FUNCTION_LIST *p_nvenc = &ctx->nvenc_dload_funcs.nvenc_funcs;

本文介绍了如何利用ffmpeg结合Nvidia的cuvid和nvenc进行视频硬编解码。通过命令行或者ffmpeg SDK调用,如设置-hwaccel_output_format cuda和-vcodec h264_cuvid,可以指定GPU进行运算。此外,还提供了av_find_encoder_by_name函数示例,用于查找并初始化h264_nvenc和hevc_nvenc编码器,并通过配置AVCodecContext选择GPU。
1948

被折叠的 条评论
为什么被折叠?



