博客 / 列表

aqi00 - FFmpeg開發筆記(九十六)採用Kotlin+Compose的視頻編輯器OpenVideoEditor

​《FFmpeg開發實戰:從零基礎到短視頻上線》一書的“第 12 章 FFmpeg的移動開發”介紹瞭如何使用FFmpeg在手機上播放視頻,基於FFmpeg的國產播放器開源框架也有很多了,前有嗶哩嗶哩的ijkplayer,後有小紅書的RedPlayer,參見之前的文章《使用國產的ijkplayer播放器觀看網絡視頻》和《使用國產的RedPlayer播放器觀看網絡視頻》。 除此以外,OpenVideo

Kotlin , 音視頻 , jetpack , Android , ffmpeg

aqi00 - FFmpeg開發筆記(九十五)國產的開源視頻美顏工具VideoEditorForAndroid

​《FFmpeg開發實戰:從零基礎到短視頻上線》一書的“第 12 章 FFmpeg的移動開發”介紹瞭如何使用FFmpeg在手機上剪輯視頻,方便開發者更好地開發類似剪映那樣的視頻剪輯軟件。那麼在Android系統上還有一款國產的開源視頻美顏框架VideoEditor-For-Android,通過該框架可以更方便地給視頻添加各種濾鏡,下面就來介紹如何在App工程中使用VideoEditor-For-A

音視頻 , Android , 直播 , 流媒體 , ffmpeg

aqi00 - FFmpeg開發筆記(九十四)基於Kotlin的國產開源推拉流框架anyRTC

​《FFmpeg開發實戰:從零基礎到短視頻上線》一書的“10.2.2 FFmpeg向網絡推流”介紹了輕量級流媒體服務器MediaMTX,通過該工具可以測試RTSP/RTMP等流媒體協議的推拉流。可是在此之前,得先有一個推流工具向MediaMTX推送視頻流,這樣末端的拉流程序才能從MediaMTX源源不斷地拉取視頻流。那麼Android手機可使用anyRTC從攝像頭實時採集視頻信號,並向後端的Med

Kotlin , 音視頻 , Android , 直播 , ffmpeg

aqi00 - FFmpeg開發筆記(九十三)國產的Android開源視頻編輯器EpMedia

​《FFmpeg開發實戰:從零基礎到短視頻上線》一書的“第 12 章 FFmpeg的移動開發”介紹瞭如何使用FFmpeg在手機上剪輯視頻,方便開發者更好地開發類似剪映那樣的視頻剪輯軟件。那麼在Android系統上還有一款國產的開源視頻裁剪框架EpMedia,通過該框架可以更方便地加工視頻片段,下面就來介紹如何在App工程中使用EpMedia。 EpMedia是一款基於FFmpeg開發的國產視頻處理

音視頻 , Android , 直播 , 流媒體 , ffmpeg

aqi00 - FFmpeg開發筆記(九十二)基於Kotlin的開源Android推流器StreamPack

​《FFmpeg開發實戰:從零基礎到短視頻上線》一書的“10.2 FFmpeg推流和拉流”提到直播行業存在RTSP和RTMP兩種常見的流媒體協議。除此以外,還有於2017年推出的SRT協議,相比常見的RTMP協議,SRT協議具有更低的延遲,並且消除了卡幀、抖動等花屏現象。 因為SRT是個較新的直播協議,所以手機端支持SRT的開源框架比較稀有,比如本文介紹的StreamPack就是屈指可數的SRT開

Kotlin , 音視頻 , Android , 直播 , ffmpeg

aqi00 - FFmpeg開發筆記(九十一)基於Kotlin的Android直播開源框架RootEncoder

​《FFmpeg開發實戰:從零基礎到短視頻上線》一書的“10.2.2 FFmpeg向網絡推流”介紹了輕量級流媒體服務器MediaMTX,通過該工具可以測試RTSP/RTMP等流媒體協議的推拉流。除了國產的推流工具librestreaming能夠向MediaMTX推送視頻流之外,還有開源的RootEncoder也支持Android手機從攝像頭實時採集視頻信號,並向後端的MediaMTX持續推送視頻數

Kotlin , 音視頻 , Android , 直播 , ffmpeg

aqi00 - FFmpeg開發筆記(九十)採用FFmpeg套殼的音視頻轉碼百寶箱FFBox

​FFmpeg是個經典的音視頻處理開源框架,可是FFmpeg僅提供命令行方式,通過FFmpeg剪輯音視頻只能在命令行下面操作,從而限制了普通用户掌握FFmpeg。 雖然《FFmpeg開發實戰:從零基礎到短視頻上線》一書不僅給出了基於FFmpeg函數調用的示例代碼,也給出了具體的ffmpeg操作命令,從而兼具FFmpeg的代碼開發教程與FFmpeg的命令使用手冊兩種用途。但是普通用户並非開發者,用户

音視頻 , 直播 , 流媒體 , ffmpeg

aqi00 - FFmpeg開發筆記(八十九)基於FFmpeg的直播視頻錄製工具StreamCap

​隨着推拉流技術的發展,現在網絡直播應用很普及了,打開許多App都能看到各式各樣的直播節目,包括抖音、快手、虎牙、鬥魚、B站、小紅書、YY、映客等等。 有關視頻推拉流的FFmpeg實現參見《FFmpeg開發實戰:從零基礎到短視頻上線》一書的“10.2 FFmpeg推流和拉流”,使用FFmpeg結合專用的流媒體服務器,可以很方便地實現視頻直播功能。不過常規的拉流操作僅能實現播放功能,未能實現存儲功能

音視頻 , 直播 , 流媒體 , ffmpeg

aqi00 - FFmpeg開發筆記(八十八)基於Compose的國產電視直播開源框架MyTV

​MyTV是一款使用Android原生開發的網絡直播軟件,它的原理是接入網絡上的直播推流鏈接,通過Android提供的ExoPlayer來播放直播節目。有關網絡推拉流的直播技術可參考《FFmpeg開發實戰:從零基礎到短視頻上線》一書的“10.2 FFmpeg推流和拉流”。 MyTV的源碼託管地址為 https://github.com/yaoxieyoulei/mytv-android (星星數0

音視頻 , Android , 直播 , 流媒體 , ffmpeg

aqi00 - FFmpeg開發筆記(八十七)採用Kotlin的手機開源播放器VLC-Android

​《FFmpeg開發實戰:從零基礎到短視頻上線》一書的“3.4.1 通用音視頻播放器”介紹瞭如何在桌面系統上安裝和使用通用音視頻播放器VLC media player,其實VLC是個跨平台的播放器,它也提供了面向Android平台的手機版VLC。 Android版VLC的官網地址是 https://code.videolan.org/videolan/libvlc-android ,源碼託管地址為

音視頻 , Android , 直播 , 流媒體 , ffmpeg

aqi00 - FFmpeg開發筆記(六十一)Linux給FFmpeg集成H.266編碼器vvenc

​《FFmpeg開發實戰:從零基礎到短視頻上線》該書的第一章介紹瞭如何在Linux環境給FFmpeg集成H.264和H.265的編碼器,如今H.266的編碼器vvenc也日漸成熟,從7.1版本開始的最新FFmpeg源碼已經支持H.266的編碼器vvenc。 H.266是H.265的升級版本,H.265的視頻編碼標準為HEVC(High Efficiency Video Coding,高效視頻

音視頻 , Linux , 流媒體 , ffmpeg

aqi00 - FFmpeg開發筆記(六十二)Windows給FFmpeg集成H.266編碼器vvenc

​《FFmpeg開發實戰:從零基礎到短視頻上線》該書的第八章介紹瞭如何在Windows環境給FFmpeg集成H.264和H.265的編碼器,如今H.266的編碼器vvenc也日漸成熟,從7.1版本開始的最新FFmpeg源碼已經支持H.266的編碼器vvenc。 H.266是H.265的升級版本,H.265的視頻編碼標準為HEVC(High Efficiency Video Coding,高效

音視頻 , windows , 流媒體 , ffmpeg

aqi00 - FFmpeg開發筆記(六十三)FFmpeg使用vvenc把視頻轉為H.266編碼

​前面的兩篇文章分別介紹瞭如何在Linux環境和Windows環境給FFmpeg集成H.266的編碼器vvenc,接下來利用ffmpeg把視頻文件轉換為VVC格式,觀察新生成的vvc視頻能否正常播放。 確保Linux系統已經按照《FFmpeg開發實戰:從零基礎到短視頻上線》該書第一章的“1.2 Linux系統安裝FFmpeg”安裝了FFmpeg,並且Windows系統已經按照《FFmpeg開發實戰

音視頻 , 流媒體 , ffmpeg

aqi00 - FFmpeg開發筆記(六十四)使用國產的RedPlayer播放器觀看網絡視頻

​RedPlayer是小紅書基於FFmpeg4.3研發並開源的國產播放器,它可運行於Android和iOS系統,既支持播放本地視頻文件,也支持播放網絡上的流媒體鏈接。有關FFmpeg在Android平台的集成説明參見《FFmpeg開發實戰:從零基礎到短視頻上線》一書的“第12章 FFmpeg的移動開發”。 之前的文章《使用國產的ijkplayer播放器觀看網絡視頻》介紹了另一款由B站研發的國產播放

音視頻 , 播放器 , 流媒體 , ffmpeg

aqi00 - FFmpeg開發筆記(六十五)Linux給FFmpeg集成LC3音頻的編碼器liblc3

​《FFmpeg開發實戰:從零基礎到短視頻上線》一書的第五章介紹了FFmpeg如何處理常見的MP3音頻和AAC音頻,其中MP3格式常用於音樂文件,而AAC格式常用於視頻文件。 除此以外,近年又出現了專用於藍牙音頻的LC3格式,其全稱是低複雜度通信編解碼器(Low Complexity Communications Codec)。2020年9月15日,藍牙技術聯盟正式發佈LC3技術規範,所有的藍牙音

音視頻 , Linux , 流媒體 , ffmpeg

aqi00 - FFmpeg開發筆記(六十六)Windows給FFmpeg集成LC3音頻的編碼器liblc3

《FFmpeg開發實戰:從零基礎到短視頻上線》一書的第五章介紹了FFmpeg如何處理常見的MP3音頻和AAC音頻,其中MP3格式常用於音樂文件,而AAC格式常用於視頻文件。 除此以外,近年又出現了專用於藍牙音頻的LC3格式,其全稱是低複雜度通信編解碼器(Low Complexity Communications Codec)。2020年9月15日,藍牙技術聯盟正式發佈LC3技術規範,所有的藍牙音頻

音視頻 , windows , 流媒體 , ffmpeg

aqi00 - FFmpeg開發筆記(六十七)Windows給FFmpeg集成支持RIST協議的librist

​《FFmpeg開發實戰:從零基礎到短視頻上線》一書的“10.2 FFmpeg推流和拉流”提到直播行業存在RTSP和RTMP兩種常見的流媒體協議。除此以外,還有比較兩種比較新的流媒體協議,分別是SRT和RIST。 其中SRT全稱為Secure Reliable Transport,中文叫做安全可靠傳輸協議。RIST全稱為Reliable Internet Stream Transport,中文叫做

音視頻 , windows , 直播 , 流媒體 , ffmpeg

aqi00 - FFmpeg開發筆記(六十九)Windows給FFmpeg集成AV1編碼器libaom

​AV1是一種新興的免費視頻編碼標準,它由開放媒體聯盟(Alliance for Open Media,簡稱AOM)於2018年制定,融合了Google VP10、Mozilla Daala以及Cisco Thor三款開源項目的成果。據説在實際測試中,AV1標準比H.265(HEVC)的壓縮率提升了大約27%。由於AV1具有性能優勢,並且還是免費授權,因此各大流媒體平台更傾向使用AV1而非HEVC

音視頻 , windows , 直播 , 流媒體 , ffmpeg

aqi00 - FFmpeg開發筆記(七十)Windows給FFmpeg集成AV1編碼器libsvtav1

​AV1是一種新興的免費視頻編碼標準,它由開放媒體聯盟(Alliance for Open Media,簡稱AOM)於2018年制定,融合了Google VP10、Mozilla Daala以及Cisco Thor三款開源項目的成果。據説在實際測試中,AV1標準比H.265(HEVC)的壓縮率提升了大約27%。由於AV1具有性能優勢,並且還是免費授權,因此各大流媒體平台更傾向使用AV1而非HEVC

音視頻 , windows , 直播 , 流媒體 , ffmpeg

aqi00 - FFmpeg開發筆記(七十二)Linux給FFmpeg集成MPEG-5視頻編解碼器EVC

​MPEG-5是新一代的國際音視頻編解碼標準,像我們熟悉的MP3、MP4等音視頻格式就來自於MPEG系列。MP3格式的説明介紹參見《FFmpeg開發實戰:從零基礎到短視頻上線》一書的“5.2 MP3音頻”,MP4格式的説明介紹參見《FFmpeg開發實戰:從零基礎到短視頻上線》一書的“2.1.2 音視頻文件的封裝格式”。 MPEG-5有關視頻編解碼的內容主要有兩部分,一個是Part 1的基本視頻編碼

音視頻 , 流媒體 , ffmpeg

aqi00 - FFmpeg開發筆記(七十三)Windows給FFmpeg集成MPEG-5視頻編解碼器

​MPEG-5是新一代的國際音視頻編解碼標準,像我們熟悉的MP3、MP4等音視頻格式就來自於MPEG系列。MP3格式的説明介紹參見《FFmpeg開發實戰:從零基礎到短視頻上線》一書的“5.2 MP3音頻”,MP4格式的説明介紹參見《FFmpeg開發實戰:從零基礎到短視頻上線》一書的“2.1.2 音視頻文件的封裝格式”。 MPEG-5現已開源MPEG-5 EVC的視頻編解碼器,其中視頻解碼器的開源庫

音視頻 , windows , 直播 , 流媒體 , ffmpeg

aqi00 - FFmpeg開發筆記(七十四)Windows給FFmpeg集成二維碼圖像的編解碼器

​《FFmpeg開發實戰:從零基礎到短視頻上線》一書的“7.1.1 添加圖片標誌”介紹瞭如何給視頻添加圖片標誌,比如給視頻畫面添加一張二維碼圖像。不過前提條件是存在二維碼圖片,因為FFmpeg本身不支持根據文本生成二維碼圖像。幸而從FFmpeg 7.0開始,通過第三方的libqrencode和libquirc庫實現了二維碼的讀寫功能,這樣處理視頻中的二維碼圖像就方便多了。 接下來以微軟的視窗系統為

音視頻 , windows , 直播 , 流媒體 , ffmpeg

aqi00 - FFmpeg開發筆記(七十五)使用qrencode和quirc對視頻畫面讀寫二維碼

上一篇文章《Windows給FFmpeg集成二維碼圖像的編解碼器》介紹了給FFmpeg集成二維碼的編解碼器qrencode和quirc,接下來講解如何利用編碼器qrencode向視頻畫面添加二維碼,以及如何利用解碼器quirc從視頻畫面讀取二維碼。 確保Windows系統已經按照《FFmpeg開發實戰:從零基礎到短視頻上線》第一章“1.3 Windows系統安裝FFmpeg”的説明安裝配置了MSY

音視頻 , 流媒體 , ffmpeg

aqi00 - FFmpeg開發筆記(七十六)使用國產SDK的播放器wlmedia渲染視頻

《FFmpeg開發實戰:從零基礎到短視頻上線》一書的“第 12 章 FFmpeg的移動開發”介紹瞭如何使用FFmpeg在手機上播放視頻,基於FFmpeg的國產播放器開源框架也有很多了,前有嗶哩嗶哩的ijkplayer,後有小紅書的RedPlayer,參見之前的文章《使用國產的ijkplayer播放器觀看網絡視頻》和《使用國產的RedPlayer播放器觀看網絡視頻》。 除此以外,wlmedia也是一

音視頻 , Android , 流媒體 , ffmpeg