日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

FFmpeg 和自由软件社区的更新

發布時間:2024/4/11 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 FFmpeg 和自由软件社区的更新 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

▲掃描上圖二維碼了解音視頻技術大會更多信息

來源:Demuxed 2021
主講:Jean-Baptiste Kempf @ Videolan
翻譯:鐘宏成
談談 FFmpeg 社區的變化,以及 FFmpeg 項目中發生的事情。FFmpeg 5.0 發布、CoC 和其他一些東西。

目錄

  • FFmpeg history

  • Work together

  • Work better

  • FFmpeg releases

  • FFmpeg 5.0 changes

  • Dav1d 狀態

FFmpeg 在各種場景下被用于各種處理。大多數在線視頻生態依賴于 FFmpeg,許多開源、非開源應用使用 FFmpeg,FFmpeg 也用于許多云上的服務,比如編碼、在線轉碼等。許多人圍繞 FFmpeg 創建解決方案,因此 FFmpeg 是整個視頻工業里的一個關鍵部分。很奇怪的是,大多數開發者不知道 FFmpeg 被如何使用,因為許多 FFmpeg 的用戶并不與他人交流。FFmpeg 作為關鍵部分被應用在成百上千的應用中,但其核心社區成員缺只有幾十個,并且他們不知道應用場景是什么。

大多數為 FFmpeg, x264 等社區貢獻的成員都是志愿勞動,沒有任何報酬,大多數開源項目也是這樣,這很難。

FFmpeg history

FFmpeg 社區的發展有過很多不順,過去幾年的狀況并不理想,我們希望能解決問題,與下游的 FFmpeg 用戶一起解決這些問題:

  • libav 與 FFmpeg 分離幾乎十年,現在基本解決了;

  • 主要維護者 Michael Niedermayer 在幾年前辭職;

  • 郵件列表中的語氣比較緊張;

  • 很多人害怕提交 patch,因為他們不相信自己的代碼能被合并,reviewer 都很嚴格;

  • 下游有很多分支,它們固定在特定的版本上,工作在不同場合,并且在其上有很多 patch。這導致了許多重復工作,并且不更新的 FFmpeg 會有一些安全問題。

Work together

對于 FFmpeg 的社區架構,我們現在有:

  • General Assembly:由全部活躍開發者組成,負責重要決策;

  • Technical Committee:解決技術問題,裁決技術討論;

  • Community Committee:規范人們在郵件列表與 IRC 頻道上的行為,維持工作環境。

Work better

我們同樣需要改變開發模式,這些都在討論中,也許可以有固定的發布周期?或者可以維護一些長期維護版本 LTS release?我們同樣在討論提升開發工具,如何幫助持續繼承。人們也在討論遷移到 GitLab,但目前沒什么結果,如果您有好的意見,歡迎參與討論。最后,code of conduct,其他的一些工具和規則也需要更新。在你看到這個視頻的同時,也許一些討論已經有了進展,但我們還不確定。

如果您有任何反饋,任何建設性的意見,請聯系我們,我們來將 FFmpeg 做得更好。

FFmpeg releases

FFmpeg 4.4 在 FFmpeg 4.3 幾乎一年后推出,主要有以下更新:

  • AV1 硬件解碼,SVT-AV1 編碼器;

  • AVS3 解碼器, Linux VP9/HEVC 10bit;

  • Cineform HD, SpeedHQ, OpenEXR, TTML 編碼器;

  • RIST 與 Gopher 支持;

  • 許多新 filter。

FFmpeg 5.0 的發布(January 17th, 2022, FFmpeg 5.0 "Lorentz"):

  • 包含 FFmpeg 歷史中最大的 API 改變,大約有 90 個 commit 用于刪除廢棄的 API 與數據結構;

  • swscale threading;

  • 新 filter。

FFmpeg 5.0 changes

  • FFmpeg 5.0 最大的變化主要是在 avcodec 的 encoding,decoding:

    • 現在音頻、視頻使用同一個 API;

    • 編碼的輸入、輸出解耦。

  • 新的回調函數允許編碼器輸出數據到用戶管理的 buffer;

  • swscale 中的 AVFrame based API;

  • 分離 avformat 與 avcodec,demuxer 不再嵌入整個 decoder context;

  • 新的 bitstream filtering API,可以用于編碼包頭分析;

  • codec/format 注冊 API 被去除了,現在所有格式總是注冊的;

  • 類型安全:在許多 API 中 int 替換為 size_t;

  • 一個 API 變化的舉例:

//?decoding?single?video?packet?in?old?API while?(pkt->size?>?0)?{//?decode?pkt?into?frame,?comsumes?<ret>?bytets?from?pktint?ret?=?avcodec_decode_video2(decoder,?pkt,?frame,?&got_output);if?(got_output)<process?frame>//?need?to?manually?offset?the?bufferpkt->data?+=?ret;pkt->size?-=?ret; } ------- //?decoding?single?video?packet?in?new?API avcodec_send_packet(decoder,?pkt); ret?=?0; while?(ret?>=?0)?{ret?=?avcodec_receive_frame(decoder,?frame);if?(ret?<?0)break;<process?frame> }

Dav1d 狀態

Dav1d 的手寫匯編代碼已經超過 150k 行,現在支持的匯編有:

  • ARM32 & ARM64;

  • x86 32bit;

  • x86 64bit (SSSE3 & AVX2)。

在單線程,幾乎所有能做的優化都已經實現了,但在多線程優化上還有提升空間,現在使用的自動多線程模型可以在給定線程數的情況下自動設定 Frame-threads、Slice-threads、Filter-threads。Dav1d 的 1.0 版本即將發布,接下來的工作可能是在 AVX512,PPC 上,或是使用 GPU 加速。

最后,特別需要提到的是,最近 FFmpeg 社區的進展主要有 YouTube 和 Facebook 贊助,許多 dav1d 上的進展由 Netflix 贊助。許多人在他們自己的時間為 FFmpeg 工程貢獻,很多時候維護與更新是不容易的,所以對這些開源項目的贊助非常有用!

附上演講視頻:

點擊“閱讀原文”了解音視頻技術大會更多信息!

總結

以上是生活随笔為你收集整理的FFmpeg 和自由软件社区的更新的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。