草庐IT

FFmpeg源码分析:avcodec_find_decoder()查找解码器

FFmpeg提供两种方式查找解码器,通过codecId查找avcodec_find_decoder()与通过名字查找avcodec_find_decoder_by_name()。同样地,也提供两种方式查找编码器,通过codecId查找avcodec_find_encoder()与通过名字查找avcodec_find_encoder_by_name()。源码位于libavcodec/allcodecs.c中。查找编解码器过程如下图所示:一、查找解码器1、avcodec_find_decoder通codecId来查找解码器的方法如下:AVCodec*avcodec_find_decoder(enu

FFmpeg源码分析:avcodec_find_decoder()查找解码器

FFmpeg提供两种方式查找解码器,通过codecId查找avcodec_find_decoder()与通过名字查找avcodec_find_decoder_by_name()。同样地,也提供两种方式查找编码器,通过codecId查找avcodec_find_encoder()与通过名字查找avcodec_find_encoder_by_name()。源码位于libavcodec/allcodecs.c中。查找编解码器过程如下图所示:一、查找解码器1、avcodec_find_decoder通codecId来查找解码器的方法如下:AVCodec*avcodec_find_decoder(enu

Nginx+rtmp+ffmpeg搭建视频转码服务

第一步,安装nginx-rtmp-module模块因为nginx搭建流媒体服务需要用到nginx-rtmp-module模块,所以先安装nginx-rtmp-module#cd/root#mkdirmodule&&cdmodule  //创建一个存放模块的目录#wgethttps://github.com/arut/nginx-rtmp-module/archive/master.zip//下载模块#unzipmaster.zip        //解压#lsnginx-rtmp-module-master///查看模块目录第二步,编译安装nginx#yum-yinstallpcre-deve

Nginx+rtmp+ffmpeg搭建视频转码服务

第一步,安装nginx-rtmp-module模块因为nginx搭建流媒体服务需要用到nginx-rtmp-module模块,所以先安装nginx-rtmp-module#cd/root#mkdirmodule&&cdmodule  //创建一个存放模块的目录#wgethttps://github.com/arut/nginx-rtmp-module/archive/master.zip//下载模块#unzipmaster.zip        //解压#lsnginx-rtmp-module-master///查看模块目录第二步,编译安装nginx#yum-yinstallpcre-deve

音视频从入门到精通——FFmpeg分离出PCM数据实战

什么是PCM?PCM(PulseCodeModulation,脉冲编码调制)音频数据是未经压缩的音频采样数据裸流,它是由模拟信号经过采样、量化、编码转换成的标准数字音频数据。描述PCM数据的6个参数:SampleRate:采样频率。8kHz(电话)、44.1kHz(CD)、48kHz(DVD)。SampleSize:量化位数。通常该值为16-bit。NumberofChannels:通道个数。常见的音频有立体声(stereo)和单声道(mono)两种类型,立体声包含左声道和右声道。另外还有环绕立体声等其它不太常用的类型。Sign:表示样本数据是否是有符号位,比如用一字节表示的样本数据,有符号的

音视频从入门到精通——FFmpeg分离出PCM数据实战

什么是PCM?PCM(PulseCodeModulation,脉冲编码调制)音频数据是未经压缩的音频采样数据裸流,它是由模拟信号经过采样、量化、编码转换成的标准数字音频数据。描述PCM数据的6个参数:SampleRate:采样频率。8kHz(电话)、44.1kHz(CD)、48kHz(DVD)。SampleSize:量化位数。通常该值为16-bit。NumberofChannels:通道个数。常见的音频有立体声(stereo)和单声道(mono)两种类型,立体声包含左声道和右声道。另外还有环绕立体声等其它不太常用的类型。Sign:表示样本数据是否是有符号位,比如用一字节表示的样本数据,有符号的

工具 | Axiom FFmpeg压缩视频教程

目录一、前言闲聊FFmpegAxiomFFmpeg二、具体步骤1.下载Axiom FFmpeg2.使用AxiomFFmpeg压缩视频降低视频的分辨率增大CRF一、前言闲聊        今天,老师让我把项目的演示视频发给他,要求时长5分钟。录了半个小时,终于把视频录好了,但是打开微信一发送——        行吧,我立马在网上找了一些“免费”压缩视频的软件。下载确实是免费的,但是如果需要压缩25M以上的视频,必须要充值VIP......(ノ`Д)ノ        这我哪能忍,很快啊,我啪一下把它们删了。在我的努力下,终于找到了一款完全免费压缩视频的软件——Axiom基于FFmpeg实现的Win

工具 | Axiom FFmpeg压缩视频教程

目录一、前言闲聊FFmpegAxiomFFmpeg二、具体步骤1.下载Axiom FFmpeg2.使用AxiomFFmpeg压缩视频降低视频的分辨率增大CRF一、前言闲聊        今天,老师让我把项目的演示视频发给他,要求时长5分钟。录了半个小时,终于把视频录好了,但是打开微信一发送——        行吧,我立马在网上找了一些“免费”压缩视频的软件。下载确实是免费的,但是如果需要压缩25M以上的视频,必须要充值VIP......(ノ`Д)ノ        这我哪能忍,很快啊,我啪一下把它们删了。在我的努力下,终于找到了一款完全免费压缩视频的软件——Axiom基于FFmpeg实现的Win

FFmpeg源码走读之内存管理模型

1FFmpeg内存管理原理数据包管理过程中当数据转移到新的数据包时存在两种操作一种是数据包之间相互独立,当新创建一份数据包时,需要将原来的数据重新申请一个数据空间并且将数据拷贝到新的数据包中,具体过程如下图所示。这种数据包的管理优势是在于数据之间相互独立,不会存在数据干扰的问题,但是缺点也很明显就是消耗的内存大大增加,同时数据之间的拷贝也是耗时的。另一种内存管理的方式是,只新增数据包对象,用于管理数据对象,对于数据本身采用同一个内存空间进行管理,当所有的内存引用为0时释放这片内存空间,具体如下图所示。这种方式的优势就是数据占用内存最小化,同时大大减少数据拷贝的耗时问题;缺点是增加了内存管理的难

FFmpeg源码走读之内存管理模型

1FFmpeg内存管理原理数据包管理过程中当数据转移到新的数据包时存在两种操作一种是数据包之间相互独立,当新创建一份数据包时,需要将原来的数据重新申请一个数据空间并且将数据拷贝到新的数据包中,具体过程如下图所示。这种数据包的管理优势是在于数据之间相互独立,不会存在数据干扰的问题,但是缺点也很明显就是消耗的内存大大增加,同时数据之间的拷贝也是耗时的。另一种内存管理的方式是,只新增数据包对象,用于管理数据对象,对于数据本身采用同一个内存空间进行管理,当所有的内存引用为0时释放这片内存空间,具体如下图所示。这种方式的优势就是数据占用内存最小化,同时大大减少数据拷贝的耗时问题;缺点是增加了内存管理的难