ffmpeg實戰-音視訊合成案例

白狼棧發表於2021-06-17

轉發自白狼棧:檢視原文

很多小夥伴私下裡留言說,之前沒接觸過音視訊,對於ffmpeg可以做什麼還是有些懵。

今天我們一起看下我們究竟可以用 ffmpeg 做什麼?

很多小夥伴應該都玩過抖音,你在“拍同款”的時候,有沒有留意過“正在合成中”的提示,視訊越長合成的時間越長,少則幾秒多則幾十秒,這個其實就是app本地在做視訊合成。

讓使用者等這麼久,感覺體驗很差。服務端可以合成嗎,答案是“可以”。

但其實ffmpeg在編碼的時候,非常吃cpu和記憶體,尤其是cpu,伺服器cpu100%都是家常便飯。那增加cpu不就完事了嗎?我們後面會實際測試8核8G、16核16G的機器,發現依然會爆,所以這是一個無底洞,消耗不起。

所以抖音能讓服務端做嗎?肯定不能,使用者量大,app本地能做,最關鍵都是免費使用者。

所以從技術的成本考慮,這也是為什麼抖音上很多特效都是短視訊,有的甚至只有10秒鐘,起碼這樣不會讓使用者等太久。

在學習音視訊相關的知識之前,我們先簡單看兩個應用場景。如果你剛巧有一些音視訊的基礎,順便可以練練手。

場景1、公司有很多原視訊,想以某種效果(比如電視機播放)更好的展示給使用者

期望效果如圖所示


素材比較難找,圖片是百度的,電視機中間顯示視訊的部分已經被ps處理了,略微粗糙;視訊是抖音下載的,原視訊也做了區域性模糊。

相信每個公司都有好的UI,當前案例僅作為學習。

需要注意的點:

  1. 視訊可以裁剪,可以縮放,不能變形
  2. 注意電視機內屏的四個角是圓形的
  3. 原視訊只取了中間部分,沒有高斯模糊的背景
  4. 原視訊尾部含有抖音的部分同樣也被裁剪了

素材已經上傳到github,請點選連結獲取

下載圖片素材

下載視訊素材

下載合成效果

場景2、公司有很多素材視訊以及對應的標題和字幕,想開放給使用者配音,合成自己的作品

期望效果如圖所示


素材同樣來源於抖音,左側視訊是使用者視訊,右側視訊的中間部分是視訊素材,底部是該素材的高斯模糊視訊,此外還有標題,字幕,字型都是事先準備好的。

素材已經上傳至github,請點選連結獲取

下載左側使用者視訊

下載右側素材視訊

下載右側的字幕檔案1字幕檔案2

下載字型

最終合成的視訊效果

同一效果可能有多種不同的做法,如果你花費了一些時間都做出來了,先恭喜你。

為了降低伺服器資源和合成的時間,請思考這兩個視訊效果如何各用一條命令完成。

第一次接觸音視訊的小夥伴可能會對這樣的合成效果感到驚訝,學完ffmpeg基礎部分,你至少應該會用一條命令解決以上甚至更復雜的音視訊需求。

相關文章