FFmpeg
维基百科,自由的百科全书
(重定向自Libav)
FFmpeg |
|
| 開發者 | Libav / FFmpeg team |
|---|---|
| 穩定版本 | 2.2.4 / 2014年6月23日 |
| 預覽版本 | 2.2-rc2 / 2014年3月15日 |
| 開發狀態 | 開發中 |
| 编程语言 | C語言 |
| 操作系统 | 跨平台 |
| 平台 | 多平台 |
| 类型 | 多媒體 |
| 许可协议 | GNU宽通用公共许可证 |
| 網站 | http://libav.org http://ffmpeg.org/ |
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项目原生的编码器‥
●Snow
●FFV1
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 FourCCofFMP4.
格式[编辑]
●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的指令,詳細請參考http://libav.org/ 下方日誌August 09 2011段。Libav/FFmpeg版权[编辑]
由于Libav、FFmpeg是在LGPL、GPL协议下发布的︵如果使用了其中一些使用GPL协议发布的模块则必须使用GPL协议︶,任何人都可以自由使用,但必须严格遵守LGPL、GPL协议。目前有很多播放软件都使用了Libav、FFmpeg的代码,但它们并没有遵守LGPL,GPL协议,没有公开任何源代码。Libav、FFmpeg社區便將這些違反協議的公司、組織、個人的網址貼上“恥辱大廳”︵又叫“恥辱柱”︶上,并與這些公司/組織/個人商討如何解決版權爭議。[15]注釋[编辑]
- ^ 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
- ^ FFmpeg开发者接受采访 - 开源中国社区

