轉發自白狼棧:檢視原文
很多小夥伴私下裡留言說,之前沒接觸過音視訊,對於ffmpeg可以做什麼還是有些懵。
今天我們一起看下我們究竟可以用 ffmpeg 做什麼?
很多小夥伴應該都玩過抖音,你在“拍同款”的時候,有沒有留意過“正在合成中”的提示,視訊越長合成的時間越長,少則幾秒多則幾十秒,這個其實就是app本地在做視訊合成。
讓使用者等這麼久,感覺體驗很差。服務端可以合成嗎,答案是“可以”。
但其實ffmpeg在編碼的時候,非常吃cpu和記憶體,尤其是cpu,伺服器cpu100%都是家常便飯。那增加cpu不就完事了嗎?我們後面會實際測試8核8G、16核16G的機器,發現依然會爆,所以這是一個無底洞,消耗不起。
所以抖音能讓服務端做嗎?肯定不能,使用者量大,app本地能做,最關鍵都是免費使用者。
所以從技術的成本考慮,這也是為什麼抖音上很多特效都是短視訊,有的甚至只有10秒鐘,起碼這樣不會讓使用者等太久。
在學習音視訊相關的知識之前,我們先簡單看兩個應用場景。如果你剛巧有一些音視訊的基礎,順便可以練練手。
場景1、公司有很多原視訊,想以某種效果(比如電視機播放)更好的展示給使用者
期望效果如圖所示
素材比較難找,圖片是百度的,電視機中間顯示視訊的部分已經被ps處理了,略微粗糙;視訊是抖音下載的,原視訊也做了區域性模糊。
相信每個公司都有好的UI,當前案例僅作為學習。
需要注意的點:
- 視訊可以裁剪,可以縮放,不能變形
- 注意電視機內屏的四個角是圓形的
- 原視訊只取了中間部分,沒有高斯模糊的背景
- 原視訊尾部含有抖音的部分同樣也被裁剪了
素材已經上傳到github,請點選連結獲取。
場景2、公司有很多素材視訊以及對應的標題和字幕,想開放給使用者配音,合成自己的作品
期望效果如圖所示
素材同樣來源於抖音,左側視訊是使用者視訊,右側視訊的中間部分是視訊素材,底部是該素材的高斯模糊視訊,此外還有標題,字幕,字型都是事先準備好的。
素材已經上傳至github,請點選連結獲取。
同一效果可能有多種不同的做法,如果你花費了一些時間都做出來了,先恭喜你。
為了降低伺服器資源和合成的時間,請思考這兩個視訊效果如何各用一條命令完成。
第一次接觸音視訊的小夥伴可能會對這樣的合成效果感到驚訝,學完ffmpeg基礎部分,你至少應該會用一條命令解決以上甚至更復雜的音視訊需求。