本次尝试在视频A中的任意位置插入视频B. 在上一篇中,我们通过调整PTS可以实现视频的加减速。这只是对同一个视频的调转,本次我们尝试对多个视频进行合并处理。 Concat如何运行 ffmpeg提供了一个concat滤镜来合并多个视频,例如:要合并视频Video A和Video B,通过调用 ...
在写了几个avfilter之后,原本以为对ffmpeg应该算是入门了。 结果今天想对一个视频文件进行转码操作,才发现基本的视频读取,输出都搞不定。 痛定思痛,仔细研究了一下ffmpeg提供的example,总结归纳读取处理视频文件的简要思路。 在读取,处理视频文件时,以下四个结构体是非常重要的,所以放在片首提一下。 AVFormatContext 媒体源的抽象描述,可以理解成视频 音频文件信息描述 ...
2019-09-27 17:03 0 908 推荐指数:
本次尝试在视频A中的任意位置插入视频B. 在上一篇中,我们通过调整PTS可以实现视频的加减速。这只是对同一个视频的调转,本次我们尝试对多个视频进行合并处理。 Concat如何运行 ffmpeg提供了一个concat滤镜来合并多个视频,例如:要合并视频Video A和Video B,通过调用 ...
调用FFMPEG Device API完成Mac录屏功能。 调用FFMPEG提供的API来完成录屏功能,大致的思路是: 打开输入设备. 打开输出设备. 从输入设备读取视频流,然后经过解码->编码,写入到输出设备. 因此主要使用的API ...
通过修改setpts代码实现调整视频部分的播放速率。 完整代码可参考: https://andy-zhangtao.github.io/ffmpeg-examples/ 在前面提到了PTS/DTS/Timestamp的关系,播放器在渲染视频时就是根据PTS来确定渲染和展示时间点的。 根据这个原理 ...
Screen Record H.264 目前在网络传输视频/音频流都一般会采用H.264进行编码,所以尝试调用FFMPEG API完成Mac录屏功能,同时编码为H.264格式。 在上一篇文章中,通过调用FFmpeg API完成了Mac平台下的录屏功能。在本篇中,对上次的录屏进行优化 ...
虽然通过声明[x][y]avfilter=a=x:b=y;avfilter=xxx的方式可以创建一个可用的Filter调用链,并且在绝大多数场合下这种方式都是靠谱和实用的。 但如果想精细化的管理AVFilter调用链,例如根据某些条件来动态生成AVFilter Graph。这种声明方式就不太灵活 ...
前面几篇文章聊了聊FFmpeg的基础知识,我也是接触FFmpeg不久,除了时间处理之外,很多高深(滤镜)操作都没接触到。在学习时间处理的时候,都是通过在ffmpeg目前提供的avfilter基础上面修修补补(补充各种debug log)来验证想法。 而这次我将尝试新创建一个avfilter,来实现 ...
通过简单的计算来,线上I帧在视频中出现的时间点。 完整代码请参考 https://andy-zhangtao.github.io/ffmpeg-examples/ 名词解释 首先需要明确以下名词概念: I/P/B 帧(具体差异请参看 https://www.jianshu.com/p ...
来到了新公司,一开始就要做个程序去获取另外一个程序里的数据,哇,挑战性很大。 经过两周的学习,终于搞定,主要还是对Windows API有了更多的了解。 文中所有的消息常量,API,结构体都整理出来了(还不是很全):Windows.zip 目录: 获取控件句柄 模拟键盘 ...