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