为什么美颜摄像这么简单的功能,OpenCV这个开源项目网上很少有代码呢?对于在windows平台下,生成h264视频流也比价麻烦,没有现成的api可以使用,需要借助MinGw编译libx264,或者ffmpeg才能使用. 最近有个小需求,要推送直播视频流,我在网上查了一下有live555或者用librtmp来推送,但是前者还需要修改源代码,也挺麻烦的,现在先做到了下面几个步骤: 1.OpenCV捕捉摄像头的图像 2.进行识别需要美颜的部分(人脸识别,肤色识别) 3.进行美颜(提升亮度,直方图均衡…
1.背景 前段时间由于项目需求,做了一个基于GPUImage的实时美颜滤镜.现在各种各样的直播.视频App层出不穷,美颜滤镜的需求也越来越多.为了回馈开源,现在我把它放到了GitHub https://github.com/Guikunzhi/BeautifyFaceDemo 上面,感兴趣的朋友可以去下载.下面将主要介绍实现美颜滤镜的原理和思路. 2.GPUImage GPUImage 是一个开源的基于GPU的图片或视频的处理框架,其本身内置了多达120多种常见的滤镜效果.有了它,添加实时的滤镜…
作者:琨君 原文链接:http://www.jianshu.com/p/945fc806a9b4 本文获作者授权转载 背景 前段时间由于项目需求,做了一个基于GPUImage的实时美颜滤镜.现在各种各样的直播.视频App层出不穷,美颜滤镜的需求也越来越多.为了回馈开源,现在我把它放到了GitHub 上面,感兴趣的朋友可以去下载.下面将主要介绍实现美颜滤镜的原理和思路. GPUImage GPUImage 是一个开源的基于GPU的图片或视频的处理框架,其本身内置了多达120多种常见的滤镜效果.有了…
我写的小工具 rtmp_parse.exe 使用用法如先介绍下: -sps  [文件路径] 解析 sps 数据 文件当中的内容就是纯方本的hexstring: 如 42 E0 33 8D 68 05 00 5B A1 00 00 03 00 ---pps  [文件路径] 解析 pps 数据 文件格式同上-rtmp [文件路径] 解析并保存h264视频流数据(从wireshark抓出来的hexstring)下载地址: 链接:https://pan.baidu.com/s/1RhRKoNqTPHLj…
在iOS平台使用ffmpeg解码h264视频流,有需要的朋友可以参考下. 对于视频文件和rtsp之类的主流视频传输协议,ffmpeg提供avformat_open_input接口,直接将文件路径或URL传入即可打开.读取视频数据.解码器初始参数设置等,都可以通过调用API来完成. 但是对于h264流,没有任何封装格式,也就无法使用libavformat.所以许多工作需要自己手工完成. 这里的h264流指AnnexB,也就是每个nal unit以起始码00 00 00 01 或 00 00 01开…
上一章完毕了对图片的磨皮处理.经过简单算法流程优化,能够达到非常快的速度.可是不能用于实时美颜.经实验,若採用仅仅处理Y信号的方案.半径极限大约是5-10,超过10则明显感受到卡顿.但对于1920X1080的预览分辨率来说.取10为半径非常难得到理想效果.即使将分辨率减少到1280X720也差强人意.所以非常难简单的直接应用在移动端实时处理上. 还有一方面,人物的正常肤,色应该是偏红.所以则会导致人物图像的红色通道偏亮,使红色通道保留的细节成分较少,相比之下.绿色通道保留很多其它细节,所以.普通…
来源:http://www.aichengxu.com/view/37145 在iOS平台使用ffmpeg解码h264视频流,有需要的朋友可以参考下. 对于视频文件和rtsp之类的主流视频传输协议,ffmpeg提供avformat_open_input接口,直接将文件路径或URL传入即可打开.读取视频数据.解码器初始参数设置等,都可以通过调用API来完成. 但是对于h264流,没有任何封装格式,也就无法使用libavformat.所以许多工作需要自己手工完成. 这里的h264流指AnnexB,也…
opencv通过webcam可以获取本地实时视频流,但是如果需要将视频流共享给其他机器调用,就可以将利用flask框架构建一个实时视频流服务器,然后其他机器可以通过向这个服务器发送请求来获取这台机器上的实时视频流.[这篇文章](https://blog.miguelgrinberg.com/post/video-streaming-with-flask)包含非常详细的理论介绍和具体实现,力荐! 首先需要说明的是这里flask提供视频流是通过generator函数进行的,不了解的可以去查下文档这里…
程序流程: 1.图像采集 先从opencv(2.4.10版本)采集回来摄像头的图像,是一帧一帧的 每一帧图像是一个矩阵,opencv中的mat 数据结构. 2.人脸的美化 人脸美化,我们用的皮肤检测,皮肤在颜色空间是特定的一个区域 检测到这个区域(感兴趣区域),完后对这个区域进行美化,就是滤波,主要是双边滤波和高斯滤波. 3.视频格式转换以及编码 处理好的矩阵颜色空间是rgb的,需要转换成yuv,yuv的颜色空间就是可以播放的,类似我们电视上面看的画面,编码就是传输时候需要发送流,只个流相当于针…
对于FFmpeg相信做视频或图像处理这一块的都不会陌生,在网上也能找到非常多相关的代码.但因为版本号不同等原因.往往找到的代码都是须要自行改动才干够用,为此本人希望能尽绵薄之力,将开发包和自行编写的代码都放出来,假设刚開始学习的人想要能够直接执行的代码做參考的话.能够下载我放出的FFmpeg开发包进行配置(配置的教程地址例如以下:点击打开链接).然后參考我写的编解码代码来进行程序的开发. 以下贴出的是我自己封装的FFmpeg视频压缩代码.如有更好的建议请告诉我,转载请注明出处. 首先我们设计一个…