一.Windows下面编译ffmpeg 首先需要解决的问题是:在windows下面编译 ffmpeg, 并让其支持dshow, 本人把ffmpeg编译成功了, 但是编译出来的ffmpeg不支持dshow, 在网上找了有文章介绍如何编译ffmpeg让其支持dhsow, 按照文章说的方法试了N次, 终究没有成功.无奈只有找现成的windows下面的exe了. 在这里找到了可用的ffmpeg.exe, 测试了一下,支持dshow. 下载地址为:  http://ffmpeg.zeranoe.com/b…
前阵子使用利用树莓派搭建了一个视频监控平台(传送门),不过使用的是JavaCV封装好的OpenCVFrameGrabber和FFmpegFrameRecorder. 其实在javacpp项目集中有提供FFmpeg的JNI封装,可以直接使用FFmpeg API的来处理音视频数据,下面是一个简单的案例,通过FFmpeg API采集摄像头的YUV数据. javacpp-ffmpeg依赖: <dependency> <groupId>org.bytedeco.javacpp-presets…
之前一直用Directshow技术采集摄像头数据,但是觉得涉及的细节比较多,要开发者比较了解Directshow的框架知识,学习起来有一点点难度.最近发现很多人问怎么用FFmpeg采集摄像头图像,事实上FFmpeg很早就支持通过DShow获取采集设备(摄像头.麦克风)的数据了,只是网上提供的例子比较少.如果能用FFmpeg实现采集.编码和录制(或推流),那整个实现方案就简化很多,正因为这个原因,我想尝试做一个FFmpeg采集摄像头视频和麦克风音频的程序.经过一个星期的努力,终于做出来了.我打算把…
系列相关博文: FFMPEG(一) 从V4L2捕获摄像头数据 FFMPEG(二) v4l2 数据格式装换 FFMPEG(三) v4l2 数据编码H264 最近在学习FFMPEG,发现网上的很多例子都是基于读文件的.直接从摄像头中读取数据的却很少.之前写过通过v4l2采集摄像头数据然后调用x264编码成视频文件的例子.在FFMPEG中,它将很多的V4L2操作函数已经封装好,这里提供一个最简的例程.需要注意的是,我采用的FFMPEG的版本是最新的ffmpeg-3.2.4 版本,不同版本的库,接口函数…
前阵子用一个JavaCV的FFmpeg库实现了YUV视频数据地采集,同样的采集PCM音频数据也可以采用JavaCV的FFmpeg库. 传送门:JavaCV FFmpeg采集摄像头YUV数据 首先引入 javacpp-ffmpeg依赖: <dependency> <groupId>org.bytedeco.javacpp-presets</groupId> <artifactId>ffmpeg</artifactId> <version>…
javacv 封装了javacpp-presets库很多native API,简化了开发,对java程序员来说比较友好. 之前使用JavaCV库都是使用ffmpeg native API开发,这种方式使用起来太多坑了,还是使用JavaCV封装好的库开发方便. 引入依赖 前几天刚刚发布了1.5.5,这里使用最新的javacv依赖: <properties> <javacpp.version>1.5.5</javacpp.version> </properties&g…
越来越觉得放弃JavaCV FFmpeg native API,直接使用JavaCV二次封装的API开发是很明智的选择,使用JavaCV二次封装的API开发避免了各种内存操作不当引起的crash. 上一次介绍了 JavaCV 采集摄像头及桌面视频数据,这次介绍一下如何采集摄像头和麦克风数据推送到流媒体服务器. 引入依赖 跟上一次一样,这里使用的还是最新的JavaCV库(1.5.5). <properties> <javacpp.version>1.5.5</javacpp.v…
在.net中,并没有简单直接的操纵摄像头的类.那么如何简单快捷地采集摄像头的画面,进行抓拍等操作呢?答案是调用SharpCapture!专业采集摄像头画面等数据的类库.下面开始演示关键代码,您也可以在文末下载全部源码: 设置授权 第一步:在引用了SharpCapture.dll之后,调用SharpCapture方法之前,一定要先通过下面代码来设置授权信息,如果是试用版,直接输入Test即可. KeyMgr.SetKey("Test"); 获取ICameraCapture的示例 从之前的…
Linux下用 FFMPEG 采集 usb摄像头视频 和 摄像头内置麦克风音频 到RTMP服务   ffmpeg -f video4linux2 -qscale 10 -r 12 -s 640x480 -i /dev/video0 -f alsa -i hw:1 -ab 16 -ar 22050 -ac 1 -f mp3 -f flv rtmp://127.0.0.1/rtmpsvr/rtmp1…
文本主要讲述windows系统下如何利用ffmpeg获取摄像机流并推送到rtmp服务,命令的用法前文 中有讲到过,这次是通过代码来实现.实现该项功能的基本流程如下: 图1 ffmpeg推流流程图 较前面的文章的流程图而言,本流程图显的复杂些,稍微解释下: ffmpeg 打开摄像头跟打开普通的视频流方法一致,只是输入url是摄像头的名称.真正打开 摄像头操作由dshow来完成,ffmpeg只是调用dshow相应的接口获取返回值:读取packet 的API 依然是av_read_frame,返回的p…