首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

FFmpeg 视频录制 - 视频添加滤镜编码

视频开发中,视频编码是另一个重要的部分,基于 FFmpeg 软件解码前面系列文章已经介绍过了。...FFmpeg 视频录制 FFmpeg 视频编码流程 本文基于 Android Camera 2.0 API 采集的数据源进行编码,编码流程绘制是基于 FFmpeg 4.2.2 版本。 ?...FFmpeg 视频编码流程图 相对于视频解码,编码流程多了一些写文件头尾的操作,需要停止编码时,通过刷入空帧来告诉编码器停止编码。 预览帧添加滤镜、编码 ?...其实就是为了配合 FFmpeg视频解码编码时添加滤镜,那么之前在 native 层写的所有关于滤镜的 demo ,现在可以直接拿过来用了,比如相机基础滤镜,相机抖音滤镜这些。...FFmpeg 视频编码实现 jni StartRecord 传入视频的宽、高、码率、帧率等参数,OnPreviewFrame 接口传入预览帧。

2.2K10
您找到你想要的搜索结果了吗?
是的
没有找到

FFmpeg 视频录制 - 视频添加滤镜编码

[FFmpeg 视频录制 - 视频添加滤镜编码] 音视频开发中,视频编码是另一个重要的部分,基于 FFmpeg 软件解码前面系列文章已经介绍过了,接下来主要介绍软件编码这一块,包括视频编码、音频编码、...为视频添加滤镜等。...FFmpeg 视频编码流程 加粗 本文基于 Android Camera 2.0 API 采集的数据源进行编码,编码流程绘制是基于 FFmpeg 4.2.2 版本。...[FFmpeg 视频编码流程图] 相对于视频解码,编码流程多了一些写文件头尾的操作,需要停止编码时,通过刷入空帧来告诉编码器停止编码。...其实就是为了配合 FFmpeg视频解码编码时添加滤镜,那么之前在 native 层写的所有关于滤镜的 demo ,现在可以直接拿过来用了。

1.8K60

FFmpeg + OpenGLES 实现视频解码播放视频滤镜

FFmpeg 开发系列连载: FFmpeg 开发(01):FFmpeg 编译集成 FFmpeg 开发(02):FFmpeg + ANativeWindow 实现视频解码播放 FFmpeg 开发(03...FFmpeg 的解码功能 ANativeWindow 的渲染功能,实现了的视频的解码播放。...但是,当你想为播放器做一些视频滤镜时,如加水印、旋转缩放等效果,使用 OpenGL ES 实现起来就极为方便。 ?...视频解码播放视频滤镜 1 OpenGL ES 渲染解码帧 经过上面几节的介绍,我们对音视频的解码过程已经比较熟悉了。本文要用 OpenGL 实现视频的渲染,这里再回顾下视频的解码流程: ?...动态网格滤镜 缩放旋转 我们在 GLSurfaceView 监听用户的滑动缩放手势,控制 OpenGLRender 的变换矩阵,从而实现视频图像的旋转缩放。 ? 视频图像的旋转缩放

2.6K10

FFmpeg 开发(02):利用 FFmpeg ANativeWindow 实现视频解码播放

FFmpeg + ANativeWindow 实现视频解码播放 上一篇文章FFmpeg 开发(01):FFmpeg 编译集成 实现了 FFmpeg 的编译集成。...1 FFmpeg 视频解码 参考雷霄骅博士的音视频处理流程图,我们大概了解了本节的处理流程:(Mp4文件)解协议->解封装->视频解码->缩放或格式转换->渲染。...雷霄骅博士的音视频处理流程图 关于 FFmpeg 需要了解的几个结构体: AVFormatContext:解封装功能的结构体,包含文件名、音视频流、时长、比特率等信息; AVCodecContext:编解码器上下文...,编码和解码时必须用到的结构体,包含编解码器类型、视频宽高、音频通道数采样率等信息; AVCodec:存储编解码器信息的结构体; AVStream:存储音频或视频流信息的结构体; AVPacket:存储音频或视频编码数据...FFmpeg 视频解码渲染流程: FFmpeg 视频解码播放流程 FFmpeg 视频解码代码实现流程: //1.创建封装格式上下文 m_AVFormatContext = avformat_alloc_context

59810

使用ffmpeg去除视频水印【ffmpeg

(c) 2000-2018 the FFmpeg developers 2.找一个有水印的视频,可以放在当前命令输入的同级目录进行测试 比如1.MP4,一下是我视频的截图 ?...将视频上传至服务器,rz命令(这个命令可以自行百度查看) 二、去除水印代码逻辑 1.去除水印,你需要知道水印的位置。水印位置如何知道呢?...可以从视频中完整截取一张图片,相关软件比如PR,都有视频截取帧的工具。下面是PR生成出来的一张图片,这样会更准确些。 当然也可以自己大概的截图,裁剪下,要保证的视频的分辨率对应。 ?...2.用画图工具,打开视频的截图,计算水印的位置 计算得到,我的视频水印坐标为:50,640....备注:查看ffmpeg命令帮助,man ffmpeg

7.6K30

FFmpeg 压缩视频

前不久~ 老姐:老弟,我学生快要中考了,我想将他们的点滴视频图片整理成一个鼓励他们的短片。 我:那你整呗~ 老姐:我不会,你来。...A Few Moments Later 老姐:我发了邮箱,你自己根据图片,文档内容records制作一个视频。 一看素材,图片200+,文档5+,视频2+......比如iMovie的成片模版: 经过四天的捣鼓后,喜提成品: 然后,屁颠屁颠发过去给老姐邀功 可是 FFmpeg压缩视频 这小事情,我将清晰度尺寸降一降,总还行吧。...然而,经过一阵捣鼓,还是没能达到目标啊~ 哎,借助网上现成的压缩产品吧~ 于是乎百度谷歌了段时间: image.png 然而尝试了两三个,不是一开始需要会员,就是免费帮你压缩1/3的视频。...去除视频声音 ffmpeg -i input.mp4 -vcodec copy -an output.mp4 -an: 去掉音频 -vcodec:视频选项 一般后面加copy表示拷贝 6.

1.1K20

使用ffmpeg压缩视频之烦fun

那么,录制传输视频的源端设备iphone 11 pro是什么个配置呢? ?...所以,当我把7.9G的4K原视频拷贝到上网本之后, 卡卡卡到爆啊… 这个时候,就只能祭出神器ffmpeg啦, 我压: ffmpeg -i OGLF3661.MP4 -vcodec h264 -acodec...*800)高得多的多: $ ffmpeg -i 视频文件.mp4 // 查看视频文件相关信息,这里是已经压缩过几次的文件 ......$ ffmpeg -i o2.mp4 -vf "scale=-2:960" o3.mp4 // 在压缩了好几遍,1G左右文件的基础上分辨率减半 哗啦, 终于可以音频视频都对上, 还能流畅播放了,...2.3 H.264H.265兼容性问题 我下载、拷贝、安装了好几个视频播放器和解码包到上网本, 最后发现, H.265虽然是当下最推荐的编码方案, 但还是针对新的设备, 考虑到兼容性,还是H.264保险一些

1.5K50

FFmpeg Maintainer赵军:FFmpeg关键组件与硬件加速

2.1 基本介绍 为什么FFmpeg会有那么高的使用量? FFmpegGstreamer究竟是什么关系?我也在反复思考这些问题,为什么我会用FFmpeg而不用Gstreamer?...4、硬件加速 我在英特尔负责FFmpeg硬件加速的工作,因此更关注FFmpeg的硬件加速在英特尔GPU上的表现。...现在又有开发者正在重写FFmpeg Server并且已经Review到第三轮,我相信最快需要一两个月它又会回到FFmpeg里面,但以前的FFmpeg Server完全不一样。...A:如果是基于CPU的编码方案,那么编码的性能与CPU的线程数有关,而FFmpeg性能并未CPU的核心数量构成一个线性关系;如果是基于GPU的编码方案,包括1对n的转码,这需要以官方测试为准。...Q10:基于CPU、GPU设置FFmpeg线程数,线程数核心数有什么对应关系? A:其实对GPU而言处理速度已经足够快,运行多进程的转码对GPU而言基本没有什么影响。

1.1K31

FFmpeg 内容介绍 音视频解码播放

封装格式的主要作用是把视频码流音频码流按照一定的格式存储在一个文件中。 为什么要进行视频压缩? ● 未经压缩的数字视频的数据量巨大 ● 存储困难 ○ 一G只能存储几秒钟的未压缩数字视频。...解封装的作用,就是将输入的封装格式的数据,分离成为音频流压缩编码数据视频流压缩编码数据。...FFmpeg部分的函数结构体介绍 av_register_all() 函数 源码: void av_register_all(void); 在FFmpeg4.0之前,基于ffmpeg的应用程序中 几乎都是第一个被调用的...这边绘制了一下FFmpeg的解码的大致过程,区分了4.0版本前后的区别 [FFmpeg视频解码流程.jpg] 这边以FFmpeg4.0.2的版本为准,采用的是4.0后的新API, 将视频解码成YUV420...结语 以上就是关于利用FFmpeg的解码播放。如果有错误,欢迎指正。关于FFmpeg的动态库编译可以参考我之前写的包含32位64位的编译

2.1K12

FFmpeg 硬件加速方案概览 (上)

被称为“多媒体技术领域的瑞士军刀”,FFmpeg拥有广泛的应用基础。不过,当(实时)处理海量视频时,需要借助各种方法提升效率。...比如,短视频平台Revvel将视频转码服务迁移到AWS LambdaS3上,节省了大量费用运维成本,并且将时长2小时的视频转码从4-6小时缩短到不到10分钟。...本文将纵览FFmpeg的硬件加速方案,涉及各主流硬件方案操作系统。感谢英特尔资深软件开发工程师赵军的投稿。...DirectX视频加速(DXVA)是一个API以及需要一个对应的DDI实现,它被用作硬件加速视频处理。软件CODEC软件视频处理器可以使用DXVA将某些CPU密集型操作卸载到GPU。...现在,FFmpeg只支持了DXVA2的硬件加速解码,DXVA-HD加速的后处理基于Media Foundation硬件加速的编码并未支持(在DirectShow时代,Windows上的编码支持需要使用

1.9K20

FFmpeg 硬件加速方案概览 (下)

被称为“多媒体技术领域的瑞士军刀”,FFmpeg拥有广泛的应用基础。不过,当(实时)处理海量视频时,需要借助各种方法提升效率。...比如,短视频平台Revvel将视频转码服务迁移到AWS LambdaS3上,节省了大量费用运维成本,并且将时长2小时的视频转码从4-6小时缩短到不到10分钟。...本文将纵览FFmpeg的硬件加速方案,涉及各主流硬件方案操作系统。本文为此系列的下篇,上篇请访问这里。感谢英特尔资深软件开发工程师赵军的投稿。...文 / 赵军 Android: MediaCodec MediaCodec是Google在Android API 16之后推出的用于音视频编解码的一套偏底层的API,可以直接利用硬件以加速视频的编解码处理...当使用ByteBuffer模式时,也可以使用Image类getInput / OutputImage(int)访问原始视频帧。

1.5K40

FFmpegffmpeg 命令行参数 ④ ( ffmpeg 视频参数解析 | 设置视频帧数 | 设置视频码率 | 设置视频帧率 | 设置视频宽高 | 设置视频宽高比 | 设置视频滤镜 )

视频文件中 ; 二、设置视频码率 -b:v / -b 参数 1、-b:v / -b 参数解析 在 ffmpeg 命令中 , -b:v 参数 -b 参数 的 作用 都是 设置 视频码率 , 推荐使用...该参数命令设置不明确 , -b 参数 同时可以用于设置 音频码率 视频码率 , 但是通常情况下 默认 设置的是 视频码率 ; -b:v / -b 参数 值 是 要设置的 输出文件 的 视频 码率值...-r 参数 可以 控制 输出视频的 播放速度 平滑度 , 帧率越高 , 视频越平滑流畅 , 帧率越低 , 视频越卡顿 ; -r 参数 的 参数值 是 一个具体的帧率值 , 是一个数字 , 一般情况下...s 参数 1、-s 参数解析 在 ffmpeg 命令中 , -s 参数 的 作用是 设置 输出视频 的分辨率 , 单位是 像素 ; -s 参数的 参数值 是 一个宽度高度的值 , 中间用 x 分隔 ,...1、-vcodec 参数解析 在 ffmpeg 命令中 , -vcodec 参数 的 作用是 指定 视频编解码器 ; 视频编解码器 是用于 对 视频数据 进行 压缩编码 解压缩解码 的算法 , 使用

2K11

FFMpeg 实现视频编码、解码

FFMpeg 作为音视频领域的开源工具,它几乎可以实现所有针对音视频的处理,本文主要利用 FFMpeg 官方提供的 SDK 实现音视频最简单的几个实例:编码、解码、封装、解封装、转码、缩放以及添加水印。...参考代码: https://github.com/lazybing/ffmpeg-study-recording FFMpeg 编码实现 本例子实现的是将视频域 YUV 数据编码为压缩域的帧数据,编码格式包含了...此时可以利用 FFMpeg 提供的 AVFrame 结构体,并根据 YUV 数据来填充 AVFrame 结构的视频宽高、像素格式;根据视频宽高、像素格式可以分配存放数据的内存大小,以及字节对齐情况。...FFMpeg 提供的用于视频编码的函数为avcodec_encode_video2,它作用是编码一帧视频数据,该函数比较复杂,单独列出如下: int avcodec_encode_video2(AVCodecContext...FFMpeg 解码实现 解码实现的是将压缩域的视频数据解码为像素域的 YUV 数据。实现的过程,可以大致用如下图所示。 ?

3.4K20
领券