fbpx
维基百科

FFmpeg

FFmpeg 是一個開放原始碼自由軟體,可以執行音訊和視訊多種格式的錄影、轉檔、串流功能[6],包含了libavcodec——這是一個用於多個專案中音訊和視訊的解碼器函式庫,以及libavformat——一個音訊與視訊格式轉換函式庫。

FFmpeg
FFmpeg執行影片檔轉檔時的畫面
原作者Fabrice Bellard
開發者FFmpeg team
首次发布2000年12月20日[1],22年前
目前版本
  • 6.0 (2023年2月19日;穩定版本)[2]
源代码库
  • git.ffmpeg.org/ffmpeg.git
编程语言C語言
[3]汇编语言
[4]C++[4]
操作系统GNU/Linux
macOS
Microsoft Windows
Android
[5]伯克利軟件套件作業系統
系統平台x86
ARM架構
PowerPC
MIPS
DEC Alpha
SPARC
类型多媒体框架
许可协议
  • GNU宽通用公共许可证2.1或更高版本
网站ffmpeg.org

「FFmpeg」这个单词中的「FF」指的是「Fast Forward(快速前進)」[7]。「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,同时制定了一套关于项目继续发展和维护的规则。[8][9]

組成元件

此計劃由幾個元件組成:

  • 命令列應用程式
    • ffmpeg:用於對視訊檔案或音訊檔案轉換格式
    • ffplay:一個簡單的播放器,基於SDL與FFmpeg函式庫
    • ffprobe:用於顯示媒體檔案的資訊,見MediaInfo
  • 函數庫
    • libswresample
    • libavresample
    • libavcodec:包含全部FFmpeg音訊/視訊編解碼函式庫
    • libavformat:包含demuxers和muxer函式庫
    • libavutil:包含一些工具函式庫
    • libpostproc:對於視訊做前處理的函式庫
    • libswscale:對於影像作縮放的函式庫
    • libavfilter

參數

FFmpeg可使用眾多參數,參數內容會根據ffmpeg版本而有差異,使用前建議先參考參數及編解碼器的敘述。此外,參數明細可用ffmpeg -h顯示;編解碼器名稱等明細可用ffmpeg -formats顯示。

下列為較常使用的參數:

主要參數

  • -i——設定輸入檔名。
  • -f——設定輸出格式。
  • -y——若輸出檔案已存在時則覆蓋檔案。
  • -fs——超過指定的檔案大小時則結束轉換。
  • -t——指定输出文件的持续时间,以秒为单位。
  • -ss——從指定時間開始轉換,以秒为单位。
  • -ss-t一起使用時代表從-ss的時間開始轉換持續時間為-t的影片,例如:-ss 00:00:01.00 -t 00:00:10.00即從00:00:01.00開始轉換到00:00:11.00
  • -title——設定標題。
  • -timestamp——設定時間戳。
  • -vsync——增減Frame使影音同步。
  • -c——指定输出文件的编码。
  • -metadata——更改输出文件的元数据
  • -help——查看帮助信息。

影像參數

  • -b:v——設定影像流量,預設為200Kbit/秒。(單位請參照下方注意事項
  • -r——設定帧率值,預設為25。
  • -s——設定畫面的寬與高。
  • -aspect——設定畫面的比例。
  • -vn——不處理影像,於僅針對聲音做處理時使用。
  • -vcodec( -c:v )——設定影像編解碼器,未設定時則使用與輸入檔案相同之編解碼器。

聲音參數

  • -b:a——設定每Channel(最近的SVN版為所有Channel的總合)的流量。(單位請參照下方注意事項
  • -ar——設定採樣率。
  • -ac——設定聲音的Channel數。
  • -acodec ( -c:a ) ——設定聲音編解碼器,未設定時與影像相同,使用與輸入檔案相同之編解碼器。
  • -an——不處理聲音,於僅針對影像做處理時使用。
  • -vol——設定音量大小,256為標準音量。(要設定成兩倍音量時則輸入512,依此類推。)

注意事項

  • -b:v-b:a參數設定流量時,根據使用的ffmpeg版本,須注意單位會有kbits/sec與bits/sec的不同。(可用ffmpeg -h顯示說明來確認單位。)
例如,單位為bits/sec的情況時,欲指定流量64kbps時需輸入 -b:a 64k;單位為kbits/sec的情況時則需輸入 -b:a 64
  • -acodec-vcodec所指定的編解碼器名稱,會根據使用的ffmpeg版本而有所不同。例如使用AAC編解碼器時,會有輸入aac與libfaac的情況。此外,編解碼器有分為僅供解碼時使用與僅供編碼時使用,因此一定要利用ffmpeg -formats確認輸入的編解碼器是否能運作。

支援的编码器、格式和协议

编码器

FFmpeg项目原生的编码器:

  • Snow
  • FFV1英语FFV1

FFmpeg已实现的:

The default MPEG-4 codec used by FFmpegs the FourCC of FMP4.

輸出格式

协议

  • 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项目能建立一个健康而友好的开发环境。[20]

隨後Fabrice Bellard等人於2011年3月13日跳出去開新專案,稱作Libav,Libav裡面每位成員的管理權限縮更小(至少不能任意關閉其他人更改程式碼權限)。而Debian血統也響應,宣布2012年要將ffmpeg指令改成avconv[21]

Libav跳槽之後有一定程度上更改FFmpeg的指令[22]

Libav/FFmpeg版权

由于Libav、FFmpeg是在LGPLGPL下发布的(如果使用了其中一些使用GPL协议发布的模块则必须使用GPL协议),任何人都可以在遵守协议的情况下自由使用。目前有很多播放软件都使用了Libav、FFmpeg的代码,但它们并没有遵守LGPL,GPL协议,没有公开任何源代码。Libav、FFmpeg社區便將這些違反協議的公司、組織、個人的網址貼在“恥辱大廳”(又叫“恥辱柱”)上,并與這些公司/組織/個人商討如何解決版權爭議。[23]

參考資料

  1. ^ Initial revision. 
  2. ^ 2.0 2.1 https://git.ffmpeg.org/gitweb/ffmpeg.git/commit/ec9bcf332909b38ea95921172be76c3faad1b32b.
  3. ^ The ffmpeg Open Source Project on Open Hub: Languages Page. Open Hub. [2018年7月14日]. 
  4. ^ 4.0 4.1 The ffmpeg Open Source Project on Open Hub: Languages Page. [2019年1月8日]. 
  5. ^ FFmpeg Media Encoder. 
  6. ^ FFmpeg Documentation. [2009-08-26]. (原始内容于2010-09-18). 
  7. ^ Bellard, Fabrice. . FFmpeg developer mailing list. Mplayer website. 2006-02-18 [2007-03-29]. (原始内容存档于2007-09-30). 
  8. ^ 红薯. FFmpeg项目改名为libav. 开源中国社区. 2011-03-15 [2011-06-14]. (原始内容于2011-09-03). 
  9. ^ libav官方网站. [2011-06-14]. (原始内容于2011-06-05). 
  10. ^ 10.0 10.1 10.2 10.3 10.4 10.5 10.6 banan. Changelog. FFmpeg trunk SVN. FFmpeg website. 17 April 2007 [26 April 2007]. [永久失效連結]
  11. ^ 11.0 11.1 ivo. FFmpeg development mailing list. FFmpeg development. FFmpeg website. 2007-05-07 [2010-12-24]. (原始内容存档于2007-08-11). 
  12. ^ vitor. FFmpeg development mailing list. FFmpeg development. FFmpeg website. 13 April 2008 [14 April 2008]. [永久失效連結]
  13. ^ vitor. FFmpeg development mailing list. FFmpeg development. FFmpeg website. 30 March 2008 [30 March 2008]. [永久失效連結]
  14. ^ benoit. FFmpeg development mailing list. FFmpeg development. FFmpeg website. 14 April 2008 [14 April 2008]. [永久失效連結]
  15. ^ Michael Niedermayer, Timothy Gu. . VideoLAN. 2014-12-05 [2014-12-05]. (原始内容存档于2014-12-08). 
  16. ^ ramiro. . FFmpeg development. FFmpeg website. 18 March 2008 [18 March 2008]. (原始内容存档于2008年8月17日). 
  17. ^ NUT. Multimedia Wiki. 2012 [2014-01-03]. (原始内容于2014-01-03). 
  18. ^ banan. . FFmpeg development. FFmpeg website. 8 June 2008 [8 June 2008]. (原始内容存档于2009年1月14日). 
  19. ^ faust3. . FFmpeg development. FFmpeg website. 21 March 2008 [21 March 2008]. (原始内容存档于2008年4月25日). 
  20. ^ blackhat. . Solidot. 2011-01-20 [2021-10-15]. (原始内容存档于2018-12-18). 
  21. ^ Debian Bug Tracker. [2014-02-04]. (原始内容于2015-02-11). 
  22. ^ . libav.org. [2014-09-08]. (原始内容存档于2014-09-08). 
  23. ^ FFmpeg开发者接受采访 - 开源中国社区. [2011-03-05]. (原始内容于2011-03-19). 

参见

外部連結

  • 官方网站  

ffmpeg, 此條目可参照英語維基百科相應條目来扩充, 2017年2月4日, 若您熟悉来源语言和主题, 请协助参考外语维基百科扩充条目, 请勿直接提交机械翻译, 也不要翻译不可靠, 低品质内容, 依版权协议, 译文需在编辑摘要注明来源, 或于讨论页顶部标记, href, template, translated, page, html, title, template, translated, page, translated, page, 标签, 是一個開放原始碼的自由軟體, 可以執行音訊和視訊多種格式的錄影,. 此條目可参照英語維基百科相應條目来扩充 2017年2月4日 若您熟悉来源语言和主题 请协助参考外语维基百科扩充条目 请勿直接提交机械翻译 也不要翻译不可靠 低品质内容 依版权协议 译文需在编辑摘要注明来源 或于讨论页顶部标记 a href Template Translated page html title Template Translated page Translated page a 标签 FFmpeg 是一個開放原始碼的自由軟體 可以執行音訊和視訊多種格式的錄影 轉檔 串流功能 6 包含了libavcodec 這是一個用於多個專案中音訊和視訊的解碼器函式庫 以及libavformat 一個音訊與視訊格式轉換函式庫 FFmpegFFmpeg執行影片檔轉檔時的畫面原作者Fabrice Bellard開發者FFmpeg team首次发布2000年12月20日 1 22年前目前版本6 0 2023年2月19日 穩定版本 2 源代码库git wbr ffmpeg wbr org wbr ffmpeg wbr git编程语言C語言 3 汇编语言 4 C 4 操作系统GNU LinuxmacOSMicrosoft WindowsAndroid 5 伯克利軟件套件作業系統系統平台x86ARM架構PowerPCMIPSDEC AlphaSPARC类型多媒体框架许可协议GNU宽通用公共许可证2 1或更高版本网站ffmpeg wbr org FFmpeg 这个单词中的 FF 指的是 Fast Forward 快速前進 7 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 同时制定了一套关于项目继续发展和维护的规则 8 9 目录 1 組成元件 2 參數 2 1 主要參數 2 2 影像參數 2 3 聲音參數 2 4 注意事項 3 支援的编码器 格式和协议 3 1 编码器 3 2 輸出格式 3 3 协议 4 社區內部問題 5 Libav FFmpeg版权 6 參考資料 7 参见 8 外部連結組成元件 编辑此計劃由幾個元件組成 命令列應用程式 ffmpeg 用於對視訊檔案或音訊檔案轉換格式 ffplay 一個簡單的播放器 基於SDL與FFmpeg函式庫 ffprobe 用於顯示媒體檔案的資訊 見MediaInfo 函數庫 libswresample libavresample libavcodec 包含全部FFmpeg音訊 視訊編解碼函式庫 libavformat 包含demuxers和muxer函式庫 libavutil 包含一些工具函式庫 libpostproc 對於視訊做前處理的函式庫 libswscale 對於影像作縮放的函式庫 libavfilter參數 编辑FFmpeg可使用眾多參數 參數內容會根據ffmpeg版本而有差異 使用前建議先參考參數及編解碼器的敘述 此外 參數明細可用ffmpeg h顯示 編解碼器名稱等明細可用ffmpeg formats顯示 下列為較常使用的參數 主要參數 编辑 i 設定輸入檔名 f 設定輸出格式 y 若輸出檔案已存在時則覆蓋檔案 fs 超過指定的檔案大小時則結束轉換 t 指定输出文件的持续时间 以秒为单位 ss 從指定時間開始轉換 以秒为单位 ss和 t一起使用時代表從 ss的時間開始轉換持續時間為 t的影片 例如 ss 00 00 01 00 t 00 00 10 00即從00 00 01 00開始轉換到00 00 11 00 title 設定標題 timestamp 設定時間戳 vsync 增減Frame使影音同步 c 指定输出文件的编码 metadata 更改输出文件的元数据 help 查看帮助信息 影像參數 编辑 b v 設定影像流量 預設為200Kbit 秒 單位請參照下方注意事項 r 設定帧率值 預設為25 s 設定畫面的寬與高 aspect 設定畫面的比例 vn 不處理影像 於僅針對聲音做處理時使用 vcodec c v 設定影像編解碼器 未設定時則使用與輸入檔案相同之編解碼器 聲音參數 编辑 b a 設定每Channel 最近的SVN版為所有Channel的總合 的流量 單位請參照下方注意事項 ar 設定採樣率 ac 設定聲音的Channel數 acodec c a 設定聲音編解碼器 未設定時與影像相同 使用與輸入檔案相同之編解碼器 an 不處理聲音 於僅針對影像做處理時使用 vol 設定音量大小 256為標準音量 要設定成兩倍音量時則輸入512 依此類推 注意事項 编辑 以 b v及 b a參數設定流量時 根據使用的ffmpeg版本 須注意單位會有kbits sec與bits sec的不同 可用ffmpeg h顯示說明來確認單位 例如 單位為bits sec的情況時 欲指定流量64kbps時需輸入 b a 64k 單位為kbits sec的情況時則需輸入 b a 64 以 acodec及 vcodec所指定的編解碼器名稱 會根據使用的ffmpeg版本而有所不同 例如使用AAC編解碼器時 會有輸入aac與libfaac的情況 此外 編解碼器有分為僅供解碼時使用與僅供編碼時使用 因此一定要利用ffmpeg formats確認輸入的編解碼器是否能運作 支援的编码器 格式和协议 编辑编码器 编辑 更多信息 libavcodec FFmpeg项目原生的编码器 Snow FFV1 英语 FFV1 FFmpeg已实现的 ITU T视频标准 H 261 10 H 262 MPEG 2 Part 2 H 263 10 和H 264 MPEG 4 AVC 10 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 10 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 10 NTT TwinVQ On2 Duck TrueMotion 1 Duck TrueMotion 2 VP3 VP5 10 VP6 10 和VP8 RAD Game Tools Smacker video和Bink video Truespeech RenderWare TXD 11 The default MPEG 4 codec used by FFmpegs the FourCC of FMP4 輸出格式 编辑 AIFF ASF AVI BFI 12 CAF FLV GIF GXF General eXchange Format SMPTE 360M HLS HTTP Live Streaming IFF 13 ISO base media file format 包括QuickTime 3GP和MP4 M2V Matroska 包括WebM Maxis XA 14 MPEG DASH 15 MPEG program stream MPEG transport stream 包括 AVCHD MXF Material eXchange Format SMPTE 377M MSN Webcam stream 16 NUT 17 Ogg OMA 18 RL2 19 Segment for creating segmented video streams Smooth Streaming TXD 11 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项目能建立一个健康而友好的开发环境 20 隨後Fabrice Bellard等人於2011年3月13日跳出去開新專案 稱作Libav Libav裡面每位成員的管理權限縮更小 至少不能任意關閉其他人更改程式碼權限 而Debian血統也響應 宣布2012年要將ffmpeg指令改成avconv 21 Libav跳槽之後有一定程度上更改FFmpeg的指令 22 Libav FFmpeg版权 编辑由于Libav FFmpeg是在LGPL GPL下发布的 如果使用了其中一些使用GPL协议发布的模块则必须使用GPL协议 任何人都可以在遵守协议的情况下自由使用 目前有很多播放软件都使用了Libav FFmpeg的代码 但它们并没有遵守LGPL GPL协议 没有公开任何源代码 Libav FFmpeg社區便將這些違反協議的公司 組織 個人的網址貼在 恥辱大廳 又叫 恥辱柱 上 并與這些公司 組織 個人商討如何解決版權爭議 23 參考資料 编辑 Initial revision 2 0 2 1 https git ffmpeg org gitweb ffmpeg git commit ec9bcf332909b38ea95921172be76c3faad1b32b The ffmpeg Open Source Project on Open Hub Languages Page Open Hub 2018年7月14日 4 0 4 1 The ffmpeg Open Source Project on Open Hub Languages Page 2019年1月8日 FFmpeg Media Encoder FFmpeg Documentation 2009 08 26 原始内容存档于2010 09 18 Bellard Fabrice FFmpeg naming and logo FFmpeg developer mailing list Mplayer website 2006 02 18 2007 03 29 原始内容存档于2007 09 30 红薯 FFmpeg项目改名为libav 开源中国社区 2011 03 15 2011 06 14 原始内容存档于2011 09 03 libav官方网站 2011 06 14 原始内容存档于2011 06 05 10 0 10 1 10 2 10 3 10 4 10 5 10 6 banan Changelog FFmpeg trunk SVN FFmpeg website 17 April 2007 26 April 2007 永久失效連結 11 0 11 1 ivo FFmpeg development mailing list FFmpeg development FFmpeg website 2007 05 07 2010 12 24 原始内容存档于2007 08 11 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 永久失效連結 benoit FFmpeg development mailing list FFmpeg development FFmpeg website 14 April 2008 14 April 2008 永久失效連結 Michael Niedermayer Timothy Gu RELEASE NOTES for FFmpeg 2 5 Bohr VideoLAN 2014 12 05 2014 12 05 原始内容存档于2014 12 08 ramiro FFmpeg development mailing list FFmpeg development FFmpeg website 18 March 2008 18 March 2008 原始内容存档于2008年8月17日 NUT Multimedia Wiki 2012 2014 01 03 原始内容存档于2014 01 03 banan FFmpeg development mailing list FFmpeg development FFmpeg website 8 June 2008 8 June 2008 原始内容存档于2009年1月14日 faust3 FFmpeg development mailing list FFmpeg development FFmpeg website 21 March 2008 21 March 2008 原始内容存档于2008年4月25日 blackhat FFmpeg發生政變 Solidot 2011 01 20 2021 10 15 原始内容存档于2018 12 18 Debian Bug Tracker 2014 02 04 原始内容存档于2015 02 11 News libav org 2014 09 08 原始内容存档于2014 09 08 FFmpeg开发者接受采访 开源中国社区 2011 03 05 原始内容存档于2011 03 19 参见 编辑影片轉換外部連結 编辑官方网站 取自 https zh wikipedia org w index php title FFmpeg amp oldid 75775931, 维基百科,wiki,书籍,书籍,图书馆,

文章

,阅读,下载,免费,免费下载,mp3,视频,mp4,3gp, jpg,jpeg,gif,png,图片,音乐,歌曲,电影,书籍,游戏,游戏。