ffmpeg
liupenglove
这个作者很懒,什么都没留下…
展开
-
注册ffmpeg滤镜过程
1.注册流程在libavfilter目录下,创建vf_lpscale.c文件,这个文件为具体的滤镜代码文件。 在libavfilter目目录下,修改allfilters.c文件中,增加:externAVFilterff_vf_arlpscale; 在libavfilter目录下,修改Makefile,增加一行:OBJS-$(CONFIG_ARLPSCALE_FILTER)+= vf_lpscale.o 重新配置,执行configure,生成config.mak/configh.h 编译ffm..原创 2020-07-30 21:41:32 · 522 阅读 · 1 评论 -
利用av_read_frame解码aac、mp4多媒体文件为pcm
1.解码流程本篇博客接上一篇,上一篇博客《利用av_parser_parser2函数,解码aac音频》,上一篇博客是使用av_parser_parser2函数进行音频的解码,这种方法只能解码aac,本篇博客使用av_read_frame函数,可以直接从mp4中解码出pcm音频数据。无论是从流程上还是代码上和上一篇类似。2.代码visualstudio环境代码:#pragma warning(disable : 4996);#include "DecodeAudio2.h"...原创 2020-07-18 10:36:04 · 652 阅读 · 0 评论 -
利用av_parser_parser2函数,解码aac音频
1、音频解码音频的编码格式很多,最常用的应该就是aac编码,acc+h264封装成mp4多媒体文件,最常用的音频属性大概为:双通道立体声、44100hz采样(截图中是48K,本例程的mp4是48k音频)。2、解码流程visual studio环境:https://github.com/liupengh3c/goffmpeg3、源码#pragma warning(disable : 4996);#include "DecodeAudio.h"extern "C"{#in.原创 2020-07-16 22:44:14 · 785 阅读 · 0 评论 -
利用av_read_frame解码h264、mp4多媒体文件为yuv
1、解码在上一篇博客《利用av_parser_parser2函数,解码h264文件》中,只能解码h264文件为yuv,不能直接从mp4、avi等多媒体文件中直接解码yuv,本文不仅可以解码h264文件到yuv,而且也支持直接从mp4中提取视频并解码为yuv,相比上一篇博客中的方法更通用一些。2、解码流程解码mp4文件比解码h264多了一个步骤:从视频流(stream)中复制参数到解码器上下文(AVCodecContext)中,这是一个必须的步骤,解码h264此步骤可以省略。3、代码v原创 2020-07-13 22:18:28 · 1140 阅读 · 0 评论 -
利用av_parser_parser2函数,解码h264文件
1、解码原始的图像数据是非常庞大的,本示例的视频20s,分辨率1280*720,原始的yuv420p数据大概在1.4G,如果是2个小时的电影、分辨率为1920*1080,原始的yuv数据可想而知会有多大,所以无论是音频还是视频数据都会经过编码,以降低多媒体mp4、mov等视频的容量。利用av_parser_parser2解码,输入必须是只包含视频编码数据“裸流”(例如H.264、HEVC码流文件),而不能是包含封装格式的媒体数据(例如AVI、MKV、MP4)。2、解码流程懒的画图了,直接手写原创 2020-07-12 19:23:06 · 1555 阅读 · 0 评论 -
mp4文件解封装为h264+aac(dts)两个文件
1、原理mp4的文件一般情况下是有video的编码文件+audio的编码文件封装而成,典型mp4文件,是有h264+aac组成(代码示例中的mp4音频是dts编码),如下图2、流程上面的流程图和代码的注释是一一对应的,可以结合代码理解一下。3、代码代码的运行环境是visualstudio2019,如果要运行在linux上,代码基本上差不多,需要在linux上编译ffmpeg的库,然后通过cmake编译运行。visual studio环境代码:/* 将mp4文件解封装.原创 2020-07-12 12:08:18 · 2302 阅读 · 0 评论 -
ffmpeg实现画中画
本篇博客相比上一篇《ffmpeg滤镜学习一,movie+overlay滤镜实现视频加水印、画中画》更深入一些,本次的实现,可以控制子画面出现的时间段、子画面播放时间等,这篇文章主要参考了大师兄悟空公众号下的文章《使用 FFmpeg 实现画中画效果(一)》,下面看一下具体实现:首先提出5个问题: 子画面展示位置? 子画面从主画面的哪个时间点开始播放? 子画面从子画面的...原创 2019-12-30 22:18:19 · 3775 阅读 · 0 评论 -
ffmpeg滤镜学习一,movie+overlay滤镜实现视频加水印、画中画
1.说明ffmpeg的滤镜上百种之多,其中ffmpeg4.2.1视频滤镜210+,音频滤镜110+,本博客主要记录学习使用ffmpeg api实现视频添加水印,画中画,使用到的滤镜为overlay。2.代码本篇代码主要参考了ffmpeg官方的示例,例子当中封装了一个lp_log的函数,用于将日志打印到文件中。/* * 实现对现有视频增加水印,可以是图片、也可以是视频,若为视频,...原创 2019-12-28 22:19:08 · 2574 阅读 · 1 评论