ffmpeg NVIDIA编解码系列
★我的音视频编解码开源项目-FFmpeg-Media-Codec-Pipeline
ffmpeg硬编码流程和软编码流程完全一样:打开编码器、分配编码器上下文,读取视频帧(YUV420P)、avcodec_send_frame送入编码器、avcodec_receive_packet获取编码后的视频帧、关闭编码器。只不过在打开编码器的时候要使用ffmpeg英伟达的编码器(H264:h264_nvenc H265:hevc_nvenc)。
下面是ffmpeg NVIDIA编码流程图:
完整代码:
#include <libavcodec/avcodec.h>
#include <libavfilter/avfilter.h>
#include <libavfilter/buffersink.h>
#include <libavfilter/buffersrc.h>
#include <libavformat/avformat.h>
#include <libavutil/avutil.h>
#include <libavutil/hwcontext.h>
#include <libavutil/imgutils.h>
#include <libavutil/opt.h>
#include <libavutil/pixdesc.h>
#include <libavutil/pixfmt.h>
#include <libswresample/swresample.h>
#include <