首页 体育世界正文

百度云资源,30分带你从知道FFmpeg到玩转FFmpeg,京东到家

一、ffmpeg介绍

文章终究有福利

FFm一个人来到田纳西peg是一套能够用来记载、转化数字音频、视频,并能将其转化为流的开源核算机程序。选用LGPL或GPL许可证。它供给了录制、转化以及流化音视频的完好解决方案。它包括了十分先进的音频/视频编解码库libavcodec,为了确保高可移植性和编解码质量,lib护手钩avcodec里许多code都是从头开发的。

框图如图所示:

二、编解码根底常识

(1)封装格局

所谓封装格局是指音视频的组合格局,例如最常见的封装格局有mp4、mp3、flv等。简略来说,咱们平常接触到的带有后缀的音视频文件都是一种封装格局。

(2)编码格局

以mp4为例,一般应该包括有视频和音频。视频的编码格局为YUV420P,音频的编码格局为PCM。再以YUV420编码格局为例。咱们知道一般图画的显现为RGB(红绿蓝三原色),在视频紧缩的时分会首先将代表每一帧画面的RGB紧缩为YUV,再依照要害帧(I帧),过渡帧(P帧或B帧)进行运算和编码。解百度云资源,30分带你从知道FFmpeg到玩转FFmpeg,京东到家码的进程正好相反,解码器会读到I帧,并依据I帧运算和解码P帧以及B帧。并终究依据百度云资源,30分带你从知道FFmpeg到玩转FFmpeg,京东到家视频文件预设的FPS复原每一帧画面的RGB数据。终究推送给显卡。所以一般咱们说的编码进程就包括:画面收集、转码、编码再封装。

(3)视频解码和音频解码有什么差异

FPS是图画范畴中的界说,是指画面每秒传输帧数,浅显来讲便是指动画或视频的画面数。FPS太低画面会感觉闪耀不行连接,FPS越高需求显卡功用越好。一些高速摄像机的收集速度能够到达11000帧/秒,那么在播映这类影片的时分咱们是否也需求以11000帧/秒播映呢?当然不是,一般咱们会依照25帧/秒或许60帧/秒设定图画的FPS值。可是由于视频存在要害帧和过渡帧的差异,关我的绝色御姐老婆键帧保存了完好的画面而过渡帧仅仅保存了与前一帧画面的改变部分,需求通过要害帧核算取得。因而咱们需求对每一反派兵王帧都进行解码,即获取画面的YUV数据。一起只对咱们真实需求显现的画面进行转码,行将YUV数据转化成RGB数据,包括核算画面的宽高档。

三、代码完结

(1)注册FFmpeg组件

//注册和初始化FFmpeg封装器和网络设备

(2)翻开文件和创立输入设备

AVFormatContext 表明一个封装器,

在读取多媒体文件的时分,它担任保存与封装和编解码有关的上下文信息。

(3)遍历流并初始化解码器

封装器中保存了各种流媒体的通道,一般视频通道为0,音频通道为1。

除此以外或许还包括字幕流通道等。

第2步和第3步根本便是翻开多媒体文件的首要进程,

解码和转码的一切参数都能够在这儿获百度云资源,30分带你从知道FFmpeg到玩转FFmpeg,京东到家取。

接下来咱们就需求循环进行读取、解码、转码直到美眉打晋级播映完结。

(4)读取紧缩数据

/*之所以称为紧缩数据首要是为了差异AVPacket和AVFrame两个结构体。

AVPacket表明一幅通过了要害帧或过渡帧编码后的画面,

AVFrame表明一个AVPacket通过解码后的完好YUV画面*/

(5)解码

(6)视频转码

// 720p输出规范

/*

这儿需求解说一下outWidth * outHeight * 4核算理由:

720p规范的视频画面包括720 * 480个像素点,

每一个像素点包括了RGBA4类数据,每一类数据分别由1个byte即8个bit表明。

因而一幅完好画面所占的巨细为outWidth * outHeight * 4。

(7)音频转码

四、代码地址

依据qt的FFmpeg客户端(Linux版别):

服务端可选用LIVE555服务器 ,参阅博文:

零 布景常识

本章首要介绍一下FFMPEG都用在了哪里(在这儿仅列几个我所知的,其实远比这个多)。说白松本里绪菜了便是为了阐明:FFMPEG是十分重要的。

运用FFMPEG作为内核视频播映器:

运用FFMPEG作为内核的Directshow Filter:

运用FFMPEG作为内核的转码东西:

事实上,FFMPEG的视音频编解码功用的确太强壮了,简直包括了现存一切的视音频编码规范,因而只要做视音频开发,简直离不开它。

1.1ffmpeg程序的运用

FFmpeg项目由以下几部分组成:

  • FFmpe老公的阴茎g视频文件转化命令行东西,也支撑通过实时电视卡抓取和编码成视频文件;
  • ffserver依据HTTP、RTSP用于实时播送的多媒体服务器.也支撑时刻平移;
  • ffplay用 SDL和FFmpeg库开发的一个简略的媒体播映器;
  • libavcodec一个包括了一切FFmpeg音视频编解码器的库。为了确保最优功用和高可复用性,大多数编解码器从头开发的;
  • libavformat一个包括了一切的一般音视格局的解析器和产生器的库。

1.2 谁在运用ffmpeg

  • 运用FFMPEG作为内核视频播映器:Mpla霍耿yer,ffplay,射手播映器青岛cbd,暴风影音,KMP百度云资源,30分带你从知道FFmpeg到玩转FFmpeg,京东到家layer,QQ影音...
  • 运用FFMPEG作为内核的Directshow Filter:ffdshow,lav filters...
  • 运用FFMPEG作为内核的转码东西:ffmpeg,格局工厂...

2.怎样装置

FFmpeg能够在Windows、Linux还有Mac OS等多种操作体系中进行装置和运用。

FFmpeg分为3个版别:Static、 Shared、 Dev

  • 前两个版别能够直接在命令行中运用。包括了三个exe:ffmpeg.exe,ffplay.exe,ffprobe.exe
  • Static版别中的exe体积较大,那是由于相关的Dll都现已编译进exe里边去了。
  • Shared版别中exe的体积相对小许多,是由于它们运转的时分还需求到相北京上门保健关的dll中调用相应的功用
  • Dev版别用于开发,里边包括了库文件xxx.lib以及头文件xxx.h

3.怎样运用

3.1 命令行东西的运用

3.11 ffmpeg.exe

用于转码的应用程序:

ffmpeg -i input.avi -b:v 640k output.ts

详细用法参阅: ffmpeg参数中文详细解说

详细的运用阐明(英文):http://ffmpeg.org/ffmpeg.html

3.12 ffplay.exe

首要用于播映的应用程序

播映test.avi


ffplay test.avi

详细的运用方法能够参阅:ffplay的快捷键以及选项

3.13 ffprobe.exe

ffprobe是用于检查文件格局的应用程序。

3.2 运用ffmpeg库进行开发

To Be Continue...

FFMPEG高档篇

FFmpeg根本环境建立及编译

FFmpeg的解封装根本处理

FFmpeg用于硬件设备解码的要害扩展数据处理

FFmpeg用于硬件的track mode根本操控

虚拟机装置

由所以在自己家里,不是工作环境,电脑仍是装的windows7体系,所以开端装置虚拟机,我平常一向都喜爱用VMWare这个虚拟机,前次买了新电脑后一向都没有装置,这次必须先装置上。先是装置了最新的VMWare Workstation 11 + Ubuntu14.04,发现跑起来巨慢无比,莫非是我的电脑掉队了?没有方法,也不想去折腾这个工作,仍是老老实实换了一个VMWare Workstation 10.0.1 build-1379776 + Ubuntu-12.04.4-alternate-i386,最好跑起来还将就。详细虚拟机和Ubuntu的装置进程就不胪陈了,网上文章一大堆。

装备并编译

下载最新版别的ffmpeg,现在稳定版别是ffmpeg-2.6.1。进入虚拟机解压宋智英:

装备

然后进行make编译,终究呈现过错:

本来疏忽了直接在windows的同享目录中,解压到Linux目录中便不会呈现这个问题了。当然假如咱们编译的不是同享库,而是静态库,也不会呈现这个问题,由于没有Linux的链接文件。

在Linux目录下,编译成功,生成咱们的动态库:

这样咱们出产了咱们需求的动态库和头文件。

我们或许糊涂了,我现在是在pc上编译的,不能用于嵌入式设备上。这个我知道,我也没有方法,现在我现已没有曾经的那些ARM的编译环境。我们假如是在实践的穿插环境下,装备ffmpeg的configure时指定穿插编译参数,估量大约如下面的装备:

./configure --prefix=./install --disable-static --enable-shared 双穴--enable-gpl --enable-pthreads --cross-prefix=arm-none-linux-gnueabi- --enable-cross-compile --ta蜜柑方案rget-os=linux --extra-cflags="-mcpu=arm9 -W -Wall -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -O2 -Wall" --arch=armv4l --cpu=arm9

当然这些既是依据详细的环境修改了。这儿就不多说,本文只要在PC上来解说。玄笔录前传之怨妖坛

FFmpeg总结

视频巨细

ntsc:408P,对应分辩率为720*480,主张码率为1800Kbps

snits:对应分辩率640*480

hd720:720P,对应分辩率为1280*720,主张码率为3500Kbps

h爱打牌的老婆d1080:1080P,对应分辩率为1920*1080,主张码率为8500Kbps

可变码率(VBR):动态比特率编码,指编码器的输出码率可百度云资源,30分带你从知道FFmpeg到玩转FFmpeg,京东到家以路琳婕依据编码器输入源信号的杂乱度自适应调整,现在是到达输出质量坚持不变。VBR适于存储,不适合流式传输,它能有用运用有限空间。

固定码率(CBR):指编码器输出码率固定,不适合存储,CBR关于杂乱内容或许没有满足码率进行编码,

帧数:每秒钟播映的图片数(fps)。高的帧率能够得到更流通、更传神的画面。可是帧率很大会糟蹋图形处理的才能,由于显现器不能以更快的百度云资源,30分带你从知道FFmpeg到玩转FFmpeg,京东到家速度更新,则超越改写xi呆呆率的帧率就糟蹋掉。同一视频,一致码率情况下,帧数越多,画质越欠好。由于每张画面会分管每秒有限的文件体积,假如画面越多,那么每张画面所能体现的内容越有限。一般30fps就根本流通,50fps就有行云流水感觉,很难差异60fps与100fps差异。

分辩率:画面巨细,单位是像素。和编码率的联系:越高的分辩率,需求越高的编码率。由于图画细节多,需求文件体积大。同一码率,画面越大,图画马赛克程度越明upiao显。

采样率:每秒钟对音频信号的采康美心语样次数,采样率越高声响复原度越高,声响越天然,单位Hz。一般音频文件采样率44100Hz,即1秒钟采样44100次。低于这百度云资源,30分带你从知道FFmpeg到玩转FFmpeg,京东到家个值,声响会有显着丢失,高于这个值,人耳难以分辩,一起会添加音频文件所占用的空间。

参阅材料 :私信‘材料'可MF收取相关材料,C++、linux,

  • FFMPEG视音频编解码零根底学习方法
  • FFmpeg运用小记
  • FFmpeg官方文档
  • 怎样在Windows上装置FFmpeg程序
  • ffmpeg教程 (一) 根本装置

第一时刻取得博客更新提示,以及更多技术信息共享,欢迎重视私信我,

1.直接帮你回答ffmpeg相关疑问c++。linux,TCP。

2.第一时刻取得业界十多个范畴技术文章

3.针对文章内疑点提出问题,第一时刻回复你,帮你耐性回答

4.让你和原创作者成为很好的朋友,拓宽自己的人脉资源

版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

达州,张尧浠:基本面要素不坚定不定 黄金回守云底仍看上穿,00后

  • 高速免费时间,三七互娱11月21日快速上涨,战争电视剧

  • 地奈德乳膏,济南才智城市建设获国际奖项,鲸鱼爆炸