音视频
文章平均质量分 86
lhuann_
这个作者很懒,什么都没留下…
展开
-
ffmpeg 视频编码三(基于 libavfilter 转换视频)
前言前面已经使用 libswscale 这个库已经实现了对视频的缩放,而且也对另一个可以同样实现相同功能的库 libavfilter做了简要介绍 ,这篇就来讲一下,使用 libavfilter 来处理我们的 ffmpeg 视频编码一(精简版) 视频吧。流程图这里就只是简要概述了,这里虽然标了解码的流程,但是这篇文章不做解码相关的事,后面会专门写篇完整的转码的文章,这里就不诉说了。如果你看了 ffmpeg 视频编码一(精简版) 和 ffmpeg 过滤器libavfilter的使用 这两篇文章的话,原创 2021-11-20 19:29:44 · 1469 阅读 · 0 评论 -
ffmpeg 过滤器libavfilter的使用
1. ffmpeg 视频解码一2. ffmpeg 视频解码二3. ffmpeg 音频解码一4. ffmpeg 音频解码二5. ffmpeg 音视频解码6. ffmpeg 视频编码一7. ffmpeg 视频编码一(精简版)8. ffmpeg 视频编码二(基于 libswscale 转换视频)前言前面已经使用 libswscale 这个库已经实现了对视频的缩放,也提了点还有种方式也可以处理我们的视频,那就是libavfilter,这篇就简要说一下这个库的简单使用吧。基本流程首先看一下大致使原创 2021-11-20 19:28:43 · 1606 阅读 · 0 评论 -
ffmpeg 视频编码二(基于 libswscale 转换视频)
前言看了上篇文章的小伙伴应该都知道了编码的一些问题了,这篇文章我们就来解决它。要解决上篇文章所述的问题,我们先了解一个扩展库 libswscale ,Libswscale里面实现了各种图像像素格式的转换(例如YUV与RGB之间的转换);以及图像大小缩放的功能(例如640x360拉伸为1280x720);以及前后图像的滤波处理(例如高斯模糊)。基于此,我们就可以解决我们上篇文章遇到的问题了。libswscale的使用要使用libswscale,我们必定要对齐有所了解,其核心函数主要有三个,下面分别介绍原创 2021-11-16 19:56:18 · 2404 阅读 · 0 评论 -
ffmpeg 视频编码一(精简版)
1. ffmpeg 视频解码一2. ffmpeg 视频解码二3. ffmpeg 音频解码一4. ffmpeg 音频解码二5. ffmpeg 音视频解码6. ffmpeg 视频编码一前言刚发了篇视频编码的文章,不过想了下有点乱,里面从解码到编码,全部走了一遍,相对于文章标题来说代码冗长,这里更正一下流程及代码。流程图首先我们还是看下流程图。这里剔除掉了解码部分,直接使用前面文章里的视频解码出来的yuv视频,然后把这个yuv视频读成frame视频帧,然后基于这个视频帧,直接做编码,流程相对原创 2021-11-15 21:29:31 · 1176 阅读 · 0 评论 -
ffmpeg 视频编码一
前言前面已经说过了视频解码了,但我们只了解解码肯定不行,这篇文章在其之上(先解码,再编码),来阐述下视频编码。流程图首先我们还是看下流程图。相对于解码来说,编解码的话就是多了两个环节而已,首先是我们需要初始化我们的编码器并打开,其次是在解码完一帧视频的时候,我们直接对这一帧视频做编码,然后输出到我们的输出文件里即可。源代码#pragma once#define __STDC_CONSTANT_MACROS#define _CRT_SECURE_NO_WARNINGSextern "C原创 2021-11-15 18:06:08 · 916 阅读 · 0 评论 -
ffmpeg 音视频解码
前言前面已经对单独的音频和视频解码做了介绍,这篇文章结合前面的,对一个包含音视频的MP4文件做解码,分别抽取其中的音频和视频出来,保存到不同的文件中。流程图源码#pragma once#define __STDC_CONSTANT_MACROS#define _CRT_SECURE_NO_WARNINGSextern "C"{#include <libavutil/imgutils.h>#include <libavformat/avformat.h>#原创 2021-11-06 17:25:53 · 1218 阅读 · 0 评论 -
ffmpeg 音频解码二
1. ffmpeg 视频解码一2. ffmpeg 视频解码二3. ffmpeg 音频解码一前言这是ffmpeg的音频解码的第二篇,这篇主要实现一下使用ffmpeg的API实现解码,不使用和上篇的解析器做解析。音频的基本信息这里不概述,具体可以参照 ffmpeg 音频解码一流程图代码流程即如流程图所示,下面讲解一下当中部分函数的作用)。avformat_open_input打开输入文件,并读取文件头相关信息avformat_find_stream_info读取媒体文件信息。av_f原创 2021-11-06 11:30:00 · 1011 阅读 · 0 评论 -
ffmpeg 音频解码一
前言前面已经介绍了音频的解码流程,这篇开始就开始视频解码了,同样是两篇,一篇使用parser解析器做解析,一篇按常规流程处理。一些基础知识采样率(sample_rate):即取样频率, 指每秒钟取得声音样本的次数。采样频率越高,声音的质量也就越好,声音的还原也就越真实,但同时它占的资源比较多。由于人耳的分辨率很有限,太高的频率并不能分辨出来。采样越高,声音的还原就越真实越自然,人对频率的识别范围是 20HZ - 20000HZ, 如果每秒钟能对声音做 20000 个采样, 回放时就足可以满足人原创 2021-11-06 10:57:59 · 2771 阅读 · 0 评论 -
ffmpeg 视频解码二
ffmpeg视频解码一(基于parser解析器).前言这是ffmpeg的第二篇,这篇主要实现一下使用ffmpeg的API实现解码,不使用和上篇的解析器做解析。流程图代码流程即如流程图所示,下面讲解一下当中部分函数的作用)。avformat_open_input打开输入文件,并读取文件头相关信息avformat_find_stream_info读取媒体文件信息。av_find_best_stream获取视频流序号(因为文件当中可能既有音频也有视频,字幕等流,我们这里使用这个函数获取.原创 2021-11-02 17:19:43 · 1061 阅读 · 0 评论 -
ffmpeg 视频解码一
前言ffmpeg的大版本都已经更新到4了,近段时间我也研究了一下,从这篇文章开始,我将写一个系列,阐述一下ffmpeg API的使用。这篇文章为第一篇,就仅仅讲述一下视频解码相关的使用吧(视频解码会写两篇,这为第一篇,分别使用不同的API)。流程图代码流程即如流程图所示,下面讲解一下当中部分函数的作用。av_parser_init这是一个解析器,我们根据解码器,实例化这个解析器,后面解析数据时使用。av_parser_parse2我们从输入文件得到的原始数据(不适用ffmpeg自带的api原创 2021-10-28 17:38:21 · 1435 阅读 · 0 评论