FFmpeg.AutoGen 获取注册的编解码类型

使用FFmpeg.AutoGen 获取注册的编解码类型

1 获取版本

 Debug.WriteLine($"FFmpeg version info: {ffmpeg.av_version_info()}");

 FFmpeg version info: 6.0-full_build-www.gyan.dev

2 获取注册的编解码类型(注 支持硬件加速需要对源码编译)

 // 使用 av_codec_iterate 获取编解码器信息
 void* opaque = null;
 AVCodec* codec;
 // 用于存储已处理的编解码器名称
 var codecsSet = new HashSet<string>();
 while ((codec = ffmpeg.av_codec_iterate(&opaque)) != null)
 {
     // 获取编解码器的名称和类型
     string codecName = ffmpeg.avcodec_get_name(codec->id);
     string codecType = codec->type == AVMediaType.AVMEDIA_TYPE_VIDEO ? "Video" :
         codec->type == AVMediaType.AVMEDIA_TYPE_AUDIO ? "Audio" : "Other";
     // 如果此编解码器名称已被记录,则跳过
     if (!codecsSet.Add(codecName)) continue;
     Debug.WriteLine($"Codec: {codecName}, Type: {codecType}");
 }

 

posted on 2024-12-18 14:43  TanZhiWei  阅读(0)  评论(0编辑  收藏  举报