FFmpeg 维基百科
FFmpeg是一个自由软件,可以运行音频和视频多种格式的录影、转换、流功能[1],包含了libavcodec ─这是一个用于多个项目中音频和视频的解码器库,以及libavformat——一个音频与视频格式转换库。
"FFmpeg"这个单词中的"FF"指的是"Fast Forward"[2]。有些新手写信给"FFmpeg"的项目负责人,询问FF是不是代表“Fast Free”或者“Fast Fourier”等意思,"FFmpeg"的项目负责人回信说“Just for the record, the original meaning of "FF" in FFmpeg is "Fast Forward"...”
这个项目最初是由Fabrice Bellard发起的,而现在是由Michael Niedermayer在进行维护。许多FFmpeg的开发者同时也是MPlayer项目的成员,FFmpeg在MPlayer项目中是被设计为服务器版本进行开发。
2011年3月13日,FFmpeg部分开发人士决定另组libav,网址http://libav.org,同时制定了一套关于项目继续发展和维护的规则。[3][4]
目录
[隐藏]
组成组件[编辑]
此计划由几个组件组成:
- ffmpeg是一个命令行工具,用来对视频文件转换格式,也支持对电视卡实时编码
- ffserver是一个HTTP多媒体实时广播流服务器,支持时光平移
- ffplay是一个简单的播放器,基于SDL与FFmpeg库
- libavcodec包含了全部FFmpeg音频/视频编解码库
- libavformat包含demuxers和muxer库
- libavutil包含一些工具库
- libpostproc对于视频做前处理的库
- libswscale对于图像作缩放的库
参数[编辑]
FFmpeg可使用众多参数,参数内容会根据ffmpeg版本而有差异,使用前建议先参考参数及编解码器的叙述。此外,参数明细可用ffmpeg -h显示;编解码器名称等明细可用ffmpeg -formats显示。
下列为较常使用的参数。
主要参数[编辑]
- -i设置输入文件名。
- -f设置输出格式。
- -y若输出文件已存在时则覆盖文件。
- -fs超过指定的文件大小时则退出转换。
- -ss从指定时间开始转换。
- -title设置标题。
- -timestamp设置时间戳。
- -vsync增减Frame使影音同步。
图像参数[编辑]
- -b设置图像流量,默认为200Kbit/秒。(单位请引用下方注意事项)
- -r设置帧率值,默认为25。
- -s设置画面的宽与高。
- -aspect设置画面的比例。
- -vn不处理图像,于仅针对声音做处理时使用。
- -vcodec设置图像图像编解码器,未设置时则使用与输入文件相同之编解码器。
声音参数[编辑]
- -ab设置每Channel(最近的SVN版为所有Channel的总合)的流量。(单位请引用下方注意事项)
- -ar设置采样率。
- -ac设置声音的Channel数。
- -acodec设置声音编解码器,未设置时与图像相同,使用与输入文件相同之编解码器。
- -an不处理声音,于仅针对图像做处理时使用。
- -vol设置音量大小,256为标准音量。(要设置成两倍音量时则输入512,依此类推。)
注意事项[编辑]
- 以-b及ab首选项流量时,根据使用的ffmpeg版本,须注意单位会有kbits/sec与bits/sec的不同。(可用ffmpeg -h显示说明来确认单位。)
- 例如,单位为bits/sec的情况时,欲指定流量64kbps时需输入‘ -ab 64k’;单位为kbits/sec的情况时则需输入‘ -ab 64’。
- 以-acodec及-vcodec所指定的编解码器名称,会根据使用的ffmpeg版本而有所不同。例如使用AAC编解码器时,会有输入aac与libfaac的情况。此外,编解码器有分为仅供解码时使用与仅供编码时使用,因此一定要利用
ffmpeg -formats确认输入的编解码器是否能运作。
支持的编码器、格式和协议[编辑]
编码器[编辑]
FFmpeg项目本地的编码器:
FFmpeg已实现的:
- ITU-T视频标准:H.261,[5] H.262/MPEG-2 Part 2, H.263[5]和H.264/MPEG-4 AVC[5]
- ITU-T音频编解码器标准:G.711 µ-law, G.711 A-law, G.721(也叫G.726 32k), G.722, G.722.2(也叫AMR-WB), G.723(也叫G.726 24k和40k)和G.726
- ISO/IEC MPEG视频标准:MPEG-1 Part 2, H.262/MPEG-2 Part 2, MPEG-4 Part 2和H.264/MPEG-4 AVC
- ISO/IEC MPEG音频标准:MP1, MP2, MP3, AAC, HE-AAC和MPEG-4 ALS
- ISO/IEC/ITU-T JPEG图像标准:JPEG和JPEG-LS
- SMPTE视频标准:VC-1(也称作WMV3), VC-3(也称作AVID DNxHD)和DPX图像
- SMPTE音频标准:SMPTE 302M
- DVD论坛的相关标准 / 杜比实验室的音频编解码器:MLP(也称TrueHD)和AC-3
- 3GPP音频编码器标准:AMR-NB, AMR-WB(也叫G.722.2)
- GSM相关的语音信号编解码器:Full Rate
- Windows Media Player相关的视频编解码器:Microsoft RLE, Microsoft Video 1, Cinepak, Indeo 2, 3和5,[5] Motion JPEG, Microsoft MPEG-4 v1, v2和v3, WMV1, WMV2 and WMV3(也称VC-1)
- Windows Media Player相关的音频编解码器:WMA1, WMA2和WMA Pro
- Windows Media Player相关的语音信号编解码器:WMA Voice和MS-GSM
- RealPlayer相关的视频编解码器:RealVideo 1, 2, 3和4
- RealPlayer相关的音频编解码器:RealAudio 3, 6, 7, 8, 9和10
- RealPlayer相关的语音信号编解码器:RealAudio 1, 2 (G.728的派生), 4和5
- QuickTime相关的视频编解码器:Cinepak, Motion JPEG和Sorenson 3 Codec
- QuickTime相关的音频编解码器:QDesign音乐编解码器2和ALAC
- Adobe Flash Player相关的视频编解码器:Sorenson 3 Codec, VP6和Flash Video (FLV)
- Adobe Flash Player相关的音频编解码器:Adobe SWF ADPCM和Nellymoser Asao
- Xiph.Org: Theora, Speex(通过libspeex实现), Vorbis和FLAC
- Sony: ATRAC1和ATRAC3[5]
- NTT: TwinVQ
- On2: Duck TrueMotion 1, Duck TrueMotion 2, VP3, VP5,[5] VP6[5]和VP8
- RAD Game Tools: Smacker video和Bink video
- Truespeech
- RenderWare: TXD[6]
The default MPEG-4 codec used by FFmpeg for encoding has the FourCC of FMP4.
格式[编辑]
- ASF
- AVI
- BFI[7]
- FLV
- GXF, General eXchange Format, SMPTE 360M
- IFF[8]
- RL2[9]
- ISO base media file format(包括QuickTime, 3GP和MP4)
- Matroska(包括WebM)
- Maxis XA[10]
- MPEG program stream
- MPEG transport stream(including AVCHD)
- MXF, Material eXchange Format, SMPTE 377M
- MSN Webcam stream[11]
- Ogg
- OMA[12]
- TXD[6]
- WTV
协议[编辑]
- IETF标准:TCP, UDP, Gopher, HTTP, RTP, RTSP和SDP
- 苹果公司的相关标准:HTTP Live Streaming
- RealMedia的相关标准:RealMedia RTSP/RDT
- Adobe的相关标准:RTMP, RTMPT(由librtmp实现),RTMPE(由librtmp实现),RTMPTE(由librtmp)和RTMPS(由librtmp实现)
- 微软的相关标准:MMS在TCP上和MMS在HTTP上
社区内部问题[编辑]
2011年1月19日,FFmpeg的现任维护者Michael Niedermayer在邮件列表上披露,FFmpeg发生了“政变”,一些开发者占领了官方网站,关闭了其他人的写入权限。随后政变者宣布FFmpeg “创建新政权”,维护任务将由他们接手,宣称只有维护团队才能拥有主源码库的写入权限。
“新内阁”成员之一的Diego Biurrun解释了他们的行动,称“政变”是迫不得已,表示他们原本想联络每一个开发者,但没成功,因为不是每个人都在IRC上,或者能及时回电话、邮件或短信。“革命”的原因是为了统一,FFmpeg社区分裂的情况严重到他们已经看不下去了。他们期望FFmpeg项目能创建一个健康而友好的开发环境。[13]
随后Fabrice Bellard等人于2011年3月13日跳出去开新项目,称作Libav,Libav里面每位成员的管理权限缩更小(至少不能任意关闭其他人更改代码权限)。而Debian血统也响应,宣布2012年要将ffmpeg指令改成avconv[14]。
Libav跳槽之后有一定程度上更改FFmpeg的指令[15]。
Libav/FFmpeg版权[编辑]
由于Libav、FFmpeg是在LGPL、GPL协议下发布的(如果使用了其中一些使用GPL协议发布的模块则必须使用GPL协议),任何人都可以自由使用,但必须严格遵守LGPL、GPL协议。目前有很多播放软件都使用了Libav、FFmpeg的代码,但它们并没有遵守LGPL,GPL协议,没有公开任何源代码。Libav、FFmpeg社区便将这些违反协议的公司、组织、个人的网址粘贴“耻辱大厅”(又叫“耻辱柱”)上,并与这些公司/组织/个人商讨如何解决版权争议。[16]
注释[编辑]
- ^ FFmpeg Documentation
- ^ Bellard, Fabrice. FFmpeg naming and logo. FFmpeg developer mailing list. Mplayer website. 18 February 2006 [2007-03-29].
- ^ 红薯. FFmpeg项目改名为libav. 开源中国社区. March 15, 2011 [June 14, 2011].
- ^ libav官方网站. [June 14, 2011].
- ^ 5.0 5.1 5.2 5.3 5.4 5.5 5.6 banan. Changelog. FFmpeg trunk SVN. FFmpeg website. 17 April 2007 [26 April 2007].
- ^ 6.0 6.1 ivo. FFmpeg development mailing list. FFmpeg development. FFmpeg website. 7 May 2007 [24 December 2010].
- ^ vitor. FFmpeg development mailing list. FFmpeg development. FFmpeg website. 13 April 2008 [14 April 2008].
- ^ vitor. FFmpeg development mailing list. FFmpeg development. FFmpeg website. 30 March 2008 [30 March 2008].
- ^ faust3. FFmpeg development mailing list. FFmpeg development. FFmpeg website. 21 March 2008 [21 March 2008].
- ^ benoit. FFmpeg development mailing list. FFmpeg development. FFmpeg website. 14 April 2008 [14 April 2008].
- ^ ramiro. FFmpeg development mailing list. FFmpeg development. FFmpeg website. 18 March 2008 [18 March 2008].
- ^ banan. FFmpeg development mailing list. FFmpeg development. FFmpeg website. 8 June 2008 [8 June 2008].
- ^ FFmpeg发生政变-中国开源社区
- ^ Debian Bug Tracker
- ^ http://libav.org/news.html#fftools_rename
- ^ FFmpeg开发者接受采访 - 开源中国社区
外部链接[编辑]
from:http://zh.wikipedia.org/zh-cn/FFmpeg
FFmpeg 维基百科的更多相关文章
- 通过维基API实现维基百科查询功能
通过英文维基的免费API,可以实现对维基百科的搜索查询或者标题全文查询等,尝试了一下通过title实现全文查询,返回的结果是wikitext格式,暂时不知道该如何应用,所以仅实现了查询功能,可以返回最 ...
- 中英文维基百科语料上的Word2Vec实验
最近试了一下Word2Vec, GloVe 以及对应的python版本 gensim word2vec 和 python-glove,就有心在一个更大规模的语料上测试一下,自然而然维基百科的语料进入了 ...
- 开源共享一个训练好的中文词向量(语料是维基百科的内容,大概1G多一点)
使用gensim的word2vec训练了一个词向量. 语料是1G多的维基百科,感觉词向量的质量还不错,共享出来,希望对大家有用. 下载地址是: http://pan.baidu.com/s/1boPm ...
- 学习笔记TF018:词向量、维基百科语料库训练词向量模型
词向量嵌入需要高效率处理大规模文本语料库.word2vec.简单方式,词送入独热编码(one-hot encoding)学习系统,长度为词汇表长度的向量,词语对应位置元素为1,其余元素为0.向量维数很 ...
- wikipedia 维基百科 语料 获取 与 提取 处理 by python3.5
英文维基百科 https://dumps.wikimedia.org/enwiki/ 中文维基百科 https://dumps.wikimedia.org/zhwiki/ 全部语言的列表 https: ...
- 使用JWPL (Java Wikipedia Library)操作维基百科数据
使用JWPL (Java Wikipedia Library)操作维基百科数据 1. JWPL介绍 JWPL(Java Wikipedia Library)是一个开源的访问wikipeida数据的Ja ...
- Kaggle比赛冠军经验分享:如何用 RNN 预测维基百科网络流量
Kaggle比赛冠军经验分享:如何用 RNN 预测维基百科网络流量 from:https://www.leiphone.com/news/201712/zbX22Ye5wD6CiwCJ.html 导语 ...
- Windows下基于python3使用word2vec训练中文维基百科语料(二)
在上一篇对中文维基百科语料处理将其转换成.txt的文本文档的基础上,我们要将为文本转换成向量,首先都要对文本进行预处理 步骤四:由于得到的中文维基百科中有许多繁体字,所以我们现在就是将繁体字转换成简体 ...
- Windows下基于python3使用word2vec训练中文维基百科语料(一)
在进行自然语言处理之前,首先需要一个语料,这里选择维基百科中文语料,由于维基百科是 .xml.bz2文件,所以要将其转换成.txt文件,下面就是相关步骤: 步骤一:下载维基百科中文语料 https:/ ...
随机推荐
- matlab中函数fscanf
matlab中函数fscanf matlab中函数fscanf在文件读取方面的实例如下: 从文件中有格式地读数据 fscanf 语法1:[a,count]=fscanf(fid,format,size ...
- PHP之mysql_real_escape_string()函数讲解
定义和用法 mysql_real_escape_string() 函数转义 SQL 语句中使用的字符串中的特殊字符. 下列字符受影响: \x00 \n \r \ ' " \x1a 如果成功, ...
- A const field of a reference type other than string can only be initialized with null Error [duplicate]
I'm trying to create a 2D array to store some values that don't change like this. const int[,] hiveI ...
- 如何在winform DataGridView控件的DataGridViewButtonColumn按钮列中禁用按钮
原文:http://msdn.microsoft.com/en-us/library/ms171619(v=vs.85).ASPX public class DataGridViewDisableBu ...
- 如何在linux系统下对文件夹名有空格的文件夹进行操作
http://www.2cto.com/os/201409/335119.html 在Windows操作系统中可以轻易地创建\移动\删除文件夹名带有空格的文件夹, 而在linux则需要进行一些特殊的处 ...
- ASP.NET MVC 3 Razor 视图引擎 基本语法
本篇博文将进入MVC 3 的世界了,首先学习一下MVC 3 新增的Razor视图引擎的基本语法. 1. 使用 @ 字符将代码添加到页面中.正如传统的aspx视图的<% %>相同. ...
- *[hackerrank]Girlfriend & Necklace
https://www.hackerrank.com/contests/w8/challenges/gneck 有点意思.是DP,最优解包含最优子问题.F(X)=F(X-1)+F(X-3).因为F(X ...
- 【Linux高频命令专题(14)】nl
概述 nl命令在linux系统中用来计算文件中行号.nl 可以将输出的文件内容自动的加上行号!其默认的结果与 cat -n 有点不太一样,nl 可以将行号做比较多的显示设计,包括位数与是否自动补齐 0 ...
- python 时间处理(time和datetime介绍)
python的有关时间的有哪几种呢?今天我们介绍两个:time和datetime time模块提供各种操作时间的函数 datetime模块定义了下面这几个类: datetime.date:表示日期的类 ...
- WCF入门(五)---创建WCF服务
使用Microsoft Visual Studio2012创建WCF服务,理解如下所有必要的编码,更好地创建WCF服务的概念,这里做一个简单的任务. 启动Visual Studio 2012. 单击新 ...