最近开始研究直播推流,看了很多案例,和资源,被忽悠了不少,原因是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方法即可。
笔记本或者外设摄像头,你需要获取名称,具体可以在计算机-设备管理器中找到摄像头。
该方法还仅仅只是启用摄像头,没有获取摄像头画面。
欢迎大佬和大兄弟们指正,教我快速推流