利用FFmpeg通过摄像头采集视频并且生成视频文件

碎碎念 88
碎碎念 88

最近想要开展的一个项目,其中业务流程当中涉及到了摄像头采集视频画面并且存档的环节。作为一个新手产品想在技术开始讨论方案之前自己找一些方便的方案作为参考写在计划里面作为参考。通过Baidu跟Google找到了两个比较常用的方案,分别是DirectShow和FFmpeg。

DirectShow是微软公司提供的一套在Windows平台上进行流媒体处理的开发包,9.0版本之前是跟DirectX开发包一起发布的,现在直接包含在了Windows SDK当中。运用DirectShow可以通过从支持WDM的采集卡上捕获数据,并且进行相应后期的处理储存到文件。
FFmpeg是MPlayer提供的一套可以记录、转换数字音频、视频,并且将次转化为流的开源程序,采用了LGPL/GPL许可证。FFmpeg提供了录制、转换以及流化音视频的完整解决方案。
DirectShow已经算是比较老的解决方案,不过到目前为止还是有很多项目在使用它。相对于FFmpeg来说DirectShow学习起来有点难度,所以我个人比较倾向于使用FFmpeg。
这篇文章所提及的所有信息不是为了对DirectShow跟FFmpeg进行相互比较,只是一个简单的学习记录,文章会陆续更新完整直至结束,整篇文章从头到尾可能更像是一个流水线日志。会分别从入手接触FFmpeg通过命令行使用FFmpeg、简单的使用C++编写一个简单的视频采集程序、采集以及编码封装等。

  • 安装FFmpeg
    开始认识并学习使用FFmpeg之前我们首先需要安装FFmpeg,在FFmpeg官网可以很方便的获取到它,访问http://www.ffmpeg.org/ 获取到FFmpeg。

FFmpeg支持多个操作系统平台,你可以根据你的操作系统来下载得到它,Windows/macOS/Linux你可以很轻松的获取;因为条件限制文章中简单提及Windows操作系统平台下的下载,macOS操作系统中利用Homebrew下载更为方便。

  • 第一次使用FFmpeg;通过FFmpeg.exe 命令行参数获取当前电脑中可用的音视频采集设备
    首先进入FFmpeg/bin目录后可以找到可执行文件 ffmpeg.exe,通过Windows CMD进入完整目录后运行 ffmpeg.exe,通过附带启动命令参数 -list_devices true -f dshow -i dummy 将会遍历枚举出当前可用的音视频采集设备列表。

完整CMD命令: ffmpeg.exe -list_devices true -f dshow -i dummy ,执行结果如图:
FFmpeg遍历音视频采集设备

  • copyright
    著作权归作者所有
  • person
  • play_arrow
    88 Views
  • create
  • autorenew
    最后修改:2019 年 04 月 13 日
  • local_offer
    碎碎念无标签
copyright info_outline

*