最近开始研究直播推流,看了很多案例,和资源,被忽悠了不少,原因是CSDN上的资源很多都是盗用,或者官方demo放出来,高分卖出的。毫无底线。

但是也不乏有优质资源,参考了很多大佬所描述的所谓的API其实就是打包封装的一个C++代码,支持在C#中运行。

开始搭建支持环境

1. 创建winform项目程序

2.首先需要将你的项目设置属性,生成,允许不安全代码

3.NuGet直接搜索FFmpeg.AutoGen

安装合适的版本。这个主要看你自己的FFmpeg的官方版本是多少

去官方下载FFmpeg.AutoGen项目程序也是可以的哦

4.放一个button,click一下,主要用于测试。

//打开摄像头并关闭摄像头
        unsafe bool openvideodevice()
        {
            string cameraname = "video=BCC950 ConferenceCam"; //摄像头名称
            ///FFmpeg库的参数定义
            AVFormatContext* ctx = null;
            AVInputFormat* ift = null;
            AVDictionary* dty = null;
            int ret = 0;

            ffmpeg.avdevice_register_all();
            ift = ffmpeg.av_find_input_format("dshow");
            // int avformat_open_input(AVFormatContext **ps, const char *url, ff_const59 AVInputFormat *fmt, AVDictionary **options);
            //打开摄像头 
            ret = ffmpeg.avformat_open_input(&ctx, cameraname, ift, &dty);
            if (ret != 0)
            {
                MessageBox.Show("avformat_open_input() is failed\n");
                return false;
            }
            MessageBox.Show("avformat_open_input() is ok\n");


            ///关闭摄像头
            ffmpeg.avformat_close_input(&ctx);
            return true;
        }

  button调用

openvideodevice方法即可。
笔记本或者外设摄像头,你需要获取名称,具体可以在计算机-设备管理器中找到摄像头。
该方法还仅仅只是启用摄像头,没有获取摄像头画面。
欢迎大佬和大兄弟们指正,教我快速推流