
音视频
文章平均质量分 81
音视频应用
夏之七
立足小世界,日积跬步;沟通大世界,万川映月。
展开
-
FFmpeg音视频播放器实现
FFmpeg音视频播放器实现主体流程原创 2022-06-23 11:29:45 · 967 阅读 · 0 评论 -
FFmpeg filter过滤器使用详解
1、FFmpeg过滤器简介FFmpeg filter 提供了很多音视频特效处理功能,比如视频缩放、截取、翻转、叠加等。FFmpeg有很多已经实现好的滤波器,这些滤波器的实现位于libavfilter目录之下,用户需要可以调用这些滤波器实现滤波。我们可以通过ffmpeg -filters命令查看FFmpeg支持的过滤器。FFmpeg常用的filter包括:scale:视频/图像的缩放;overlay:视频/图片的叠加;crop:视频/图像的裁剪;trim:截取视频的片段;rotate:以..原创 2021-07-29 11:20:25 · 11436 阅读 · 0 评论 -
视频编码流程详解
1、视频编码整体流程2、FFmpeg视频编码详细流程从本地读取YUV数据编码为H264格式的数据,然后再存入到本地,编码后的数据有带startcode。与FFmpeg示例音频编码的流程基本一致。3、关键函数说明(1)avcodec_find_encoder_by_name:根据指定的编码器名称查找注册的编码器。(2)avcodec_alloc_context3:为AVCodecContext分配内存。(3)avcodec_open2:打开编码器。(4)avcodec_send..原创 2021-07-28 12:19:03 · 5934 阅读 · 0 评论 -
音频编码流程详解
1、音频编码整体流程2、FFmpeg音频编码详细流程3、关键函数说明(1)avcodec_find_encoder:根据指定的AVCodecID查找注册的编码器。(2)avcodec_alloc_context3:为AVCodecContext分配内存。(3)avcodec_open2:打开编码器。(4)avcodec_send_frame:将AVFrame非压缩数据给编码器。(5)avcodec_receive_packet:获取到编码后的AVPacket数据,收到的pack..原创 2021-07-28 11:03:05 · 4992 阅读 · 1 评论 -
音视频解码流程详解
1、解码整体流程(1) 音频解码整体流程(2)视频解码整体流程2、FFmpeg音视频解码详细流程3、关键数据结构AVCodecParser:⽤于解析输⼊的数据流并把它分成⼀帧⼀帧的压缩编码数据。⽐较形象的说法就是把⻓⻓的⼀段连续的数据“切割”成⼀段段的数据。比如:ffmpeg-4.2.1\libavcodec\aac_parser.c AVCodecParser ff_aac_parser = { codec_ids = { AV_CODEC_ID_AAC }, pri..原创 2021-07-26 22:23:12 · 4163 阅读 · 3 评论 -
ffplay播放flv文件没有声音的解决方法
一、问题描述在Windows 7上,使用ffplay命令播放flv文件,可以看到视频,但没有声音输出。【ffplay播放flv文件异常 图1】二、解决方法1)编写bat脚本编写一个run.bat脚本文件,把set SDL_AUDIODRIVER=directsound语句拷贝到脚本,并保存。【脚本文件 图2】2)执行脚本打开cmd窗口,把run.bat文件拖到cmd窗口,回车执行。【执行脚本 图3】3)测试执行完脚本后,ffplay就可以正常播放flv文件了。..原创 2021-02-24 19:30:14 · 2382 阅读 · 0 评论 -
FLV封装格式剖析
一、FLV格式组成FLV (Flash Video) 是由 Adobe 公司推出的一种流媒体格式,它是随着Flash MX的推出发展而来的视频格式。由于其封装后的音视频文件体积小、封装简单等特点,非常适合于互联网上使用。目前主流的视频网站基本都支持FLV。采用FLV格式封装的文件,一般文件后缀定义为.flv。FLV封装格式是由一个文件头(header)和 文件体(Body)组成。其中Body又由“PreviousTagSize 和 Tag”模块组成。【FLV封装格式 图1】1、 FLV He..原创 2021-02-23 17:58:23 · 1049 阅读 · 1 评论 -
H264编码原理及NALU介绍
一、简述流媒体编解码流程大致如图1所示:【流媒体编解码流程 图1】视频数据编解码层格式包含有:H264,H265,MPEG4等。本文我们主要对H264编码原理进行整理,并对NALU做简要介绍。二、H264编解码2.1、H264简介参考来源:H264百度百科H.264从1999年开始到2003年形成草案,最后在2007年定稿有待核实。在ITU的标准里称为H.264,在MPEG的标准里是MPEG-4的一个组成部分(MPEG-4 Part 10),又叫Advanced Video ..原创 2021-02-21 17:57:57 · 5250 阅读 · 0 评论 -
FFmpeg编解码常用API和数据结构
一、简述本文主要介绍FFmpeg 编程中用到的基础知识,包含常见音视频概念,常用API函数,常用结构体,解封装流程,解复用器流程以及注册等。二、常见音视频概念容器/文件( Conainer/File):特定格式的多媒体文件,比如mp4、 flv、 mkv等。媒体流( Stream):表示时间轴上的一段连续数据,比如一段声音、一段视频或一段字幕;数据可以是压缩的,也可以是非压缩的,其中压缩的数据需要关联特定的编解码器。数据帧/数据包(Frame/Packet):一般一个媒体流是由..原创 2021-02-20 00:11:29 · 898 阅读 · 1 评论 -
Windows FFmpeg环境搭建及使用例子
一、简述本文将详细描述FFmpeg在windows系统的开发环境搭建,并结合Qt简单介绍FFmpeg的使用方法。相对于 linux,FFmpeg Windows系统环境搭建比较简单,不需要安装依赖组件以及第三方库。二、环境搭建> 步骤1:下载编译好的FFmpeg下载编译好的dll和lib库文件。FFMPEG官网:http://ffmpeg.org/> 步骤2:拷贝文件到系统指定位置拷贝分为两部分:执行文件和dll库文件。1)执行文件拷贝把ffmpeg.exe,..原创 2021-02-19 20:39:24 · 1202 阅读 · 1 评论 -
SDL播放音视频简单使用
一、什么是SDL?SDL(Simple DirectMedia Layer)是一套开放源代码的跨平台多媒体开发库,使用C语言写成。SDL通过OpenGL和2D视频帧缓冲,提供了数种控制音频、视频、键盘、鼠标、控制杆及3D硬件的访问接口,让开发者只要用相同或是相似的代码就可以开发出跨多个平台(Linux、Windows、Mac OS X等)的应用软件。目前SDL多用于开发游戏、模拟器、媒体播放器等多媒体应用领域。二、SDL linux环境搭建1、下载SDL源码库,SDL2-2.0.10.tar..原创 2021-02-08 00:09:06 · 2566 阅读 · 0 评论 -
FFmpeg&FFplay常用命令汇总
1、FFmpeg常用命令帮助指令1)查看基本帮助信息:ffmpeg -h2)查看高级帮助信息:ffmpeg -h long3)查看所有帮助信息:ffmpeg -h full若帮助信息过多,查看不便,可以把帮助信息保存到文件,然后再打开文件查看,如:ffmpeg -h full > fullhelp.log查询版本查询命令: ffmpeg -version查询编译配置查询命令: ffmpeg -buildconf查询可用格式查询命令: ffmpeg -formats查询可原创 2021-02-07 17:04:56 · 3000 阅读 · 2 评论 -
Ubuntu FFmpeg环境搭建
一、简述本文主要讲述,在ubuntu环境下,使用源码的方式进行ffmpeg开发环境进行搭建。本编译安装方式最终生成的都为静态库。二、环境搭建1、创建目录在home目录下创建三个文件夹:ffmpeg_sources、ffmpeg_build、bin。ffmpeg_sources:用于下载源文件;ffmpeg_build: 存储编译后的库文件;bin:存储二进制文件(ffmpeg,ffplay,ffprobe,X264,X265等)。$ cd ~$ mkdir ffmpeg_s..原创 2021-02-07 11:09:44 · 763 阅读 · 1 评论 -
AAC ADTS封装实现
一、AAC音频格式种类有哪些AAC音频格式是一种由MPEG-4标准定义的有损音频压缩格式。AAC包含两种格式 ADIF(Audio Data Interchange Format音频数据交换格式)和ADTS(Audio Data transport Stream音频数据传输流)。ADIF特点:可以确定的找到音视频数据的开始,不需要进行在音视频数据流中间开始的解码,它的解码必须在明确的定义开始。应用场景:常用在磁盘文件中。ADTS特点:具有同步字的比特流,解码可以在这个流中任何位置开始。类似于mp原创 2020-07-09 22:01:08 · 1365 阅读 · 0 评论 -
FFmpeg音视频文件解封装实现
一、什么是音视频解封装解封装就是把视频文件(flv,mp4,rmvb,avi)按照一定的规则进行拆分,把该视频的音频流、视频流、字幕流等信息拆分出来。通过解封装,我们可以得到视频文件详细参数指标,包括:编码格式、文件大小、播放时长、分辨率、音频采样率、单声道/双声道等音视频信息。二、实现源代码#include <stdio.h>#include <libavformat/avformat.h>int main(int argc, char **argv){ co原创 2020-07-08 10:15:54 · 1688 阅读 · 0 评论