視頻編輯SDK---咱們只提供API,任你自由設計炫酷的功能


面對相對複雜的視頻編輯處理技術,你是否一籌莫展?java

在短視頻應用中,有必定技術難度的視頻編輯技術中,咱們提出了一種全新的解決方法:畫板和畫筆。
短視頻處理,用畫板和畫筆,就夠了!linux


咱們設計了極其簡單易懂的架構, 畫板和畫筆, 用畫筆在畫板上做畫, 就能夠獲得您要的視頻。
1,你用 【視頻畫筆 VideoPen】在 畫板 DrawPad上做畫, 就獲得 調整後的視頻
2,你用 【圖片畫筆 BitmapPen】在畫板上做畫, 就獲得 動態的照片影集。
3,你用 【UI畫筆 ViewPen】在畫板上做畫, 就是把精美的UI界面轉換爲視頻, 固然咱們的設計,也能夠後臺處理。
4, 你用 【視頻畫筆】+ 【圖片畫筆】 在畫板上做畫, 就獲得動態的視頻圖片效果。
5, 你用 【視頻畫筆】 + 【MV畫筆】 在畫板上做畫, 就是在視頻中疊加MV的效果。
6, 固然: 畫板 能夠在前臺工做, 也能夠在後臺處理。android

咱們只作視頻處理, 只是爲您豐富的想象力、創做力提供 畫板和畫筆, 各類個性,炫酷,文藝的視頻效果,任您自由發揮。git

demo演示地址: https://github.com/LanSoSdk/LanSoEditor_advancegithub

 

視頻編輯SDK---咱們只提供API,任你自由設計炫酷的功能編程

 

 

作視頻APP, 在於差別化,個性的APP; 你作一個別人同樣功能的APP, 很難佔領市場.windows

基於此.咱們的SDK徹底以API的形式,至於界面和操做炫酷的功能,任你自由發揮,網絡

 

視頻編輯:即相似秒拍,美拍,快手,小影等APP中對音視頻作剪切/裁剪/分離/合併/標記/貼紙/疊加/濾鏡等操做.架構

 

咱們有Android版本基本視頻編輯SDK:ide

https://github.com/LanSoSdk/LanSoEditor_common

主要功能有:

       1,使用在音視頻的: 裁剪,剪切,分離,合併,轉換,拼接,水印,疊加,混合,轉碼等場合;

       2,咱們是針對android平臺對ffmpeg作了硬件加速優化,通過多款手機的測試,優化性能大概提高4倍左右

       3,咱們在項目中提供了大約30個經常使用的方法並寫了詳細的說明註釋,基本知足通常視頻編輯的需求

       4,咱們另外提供了擴展接口,您徹底能夠根據強大的ffmpeg命令來擴展您須要的功能

       

高級視頻編輯SDK:

         https://github.com/LanSoSdk/LanSoEditor_advance

         主要功能: 包括基本基本版本的全部功能.

          1,覆蓋了秒拍,美拍,快手等視頻編輯的大部分功能.

          2,增長了44種濾鏡,基本覆蓋市面上大部分APP中的濾鏡效果.

          3,能夠實現視頻和視頻, 視頻和圖片,視頻和您的UI界面疊加.

          4,在疊加的過程當中:支持任意時間點的加入,隱藏,顯示,退出.支持同時獲取媒體來任意疊加,支持疊加過程當中的各類調節,支持實時保存.

          5,能夠實現 圖片和圖片的疊加,來實現多張圖片合併成影集的效果.

          6,能夠實現當視頻播放中,手指滑動畫面,即出現一個箭頭,來實時的標註.後期咱們會舉例塗鴉的功能.

          7,支持聲音混合,音量調節.

          

    咱們是杭州藍松科技有限公司, 專業的移動平臺視頻SDK開發團隊. 

    若是您的項目更好有這方面的需求, 正在尋求這方面的資料知識,能夠從咱們這裏開始.

    歡迎你的測試使用, 更多瞭解,請隨時聯繫咱們(連接中有聯繫方式), 謝謝!

提示一: 各位看官,這裏分享的是視頻編輯,即剪切/拼接/分離/合併/塗鴉/標記/疊加/濾鏡等對視頻的編輯操做.不是流媒體網絡播放等功能,請注意.

 

提示二: 這些文字90%的爲普及知識,10%爲宣傳咱們的SDK,由於分享別人,有利自已,纔是良性循環,纔可讓咱們持續分享,畢竟只分享,不有益很難持續下去.要養家餬口啊^_^.

 

提示三:咱們是android視頻編輯的專業團隊,如下分享的文字,徹底實際經驗總結,每個知識點您均可以在咱們的SDK或開源的工程中驗證.
咱們的SDK:https://github.com/LanSoSdk/LanSoEditor_common(收費的,但寫了30個詳細註釋,適合初學者學習,能夠用來練手)
開源的工程:https://github.com/WritingMinds/ffmpeg-android(免費的,須要本身編譯,需懂linux和ndk)
這兩個工程您均可以測試,學習後, 而後再決定採用何種方式對您的項目最有利。

正文: 

1, 作 Android 上的視頻編輯,必定要從編輯ffmpeg開始嗎? 

徹底不是。需求是最重要的,android從4.1開始提供了MediaCodec類,你要作視頻提取圖片,用mediacodec或mediaextractor就能夠;你作視頻裁剪,用MediaCodec也能夠;你要作視頻縮放,用MediaCodec+ Opengl是最好的選擇;徹底不必定用ffmepg來作。

2,那麼爲何不少用ffmpeg來完成?
由於ffmpeg封裝了不少的格式,使用起來比較靈活,簡單,兼容性好,他的命令行能夠幫你節省大量的時間,好比視頻裁剪 ffmpeg -ss 10 -t 20 -i INPUT -acodec copy -vcodec copy OUTPUT;這樣就完成了,再也不須要您本身去編寫大量的代碼。
3,ffmpeg能夠幫我完成大部分的視頻編輯功能嗎?
沒有優化的ffmpeg在功能能夠,但性能不行。因爲手機CPU的性能的限制,有些命令處理起來比較慢,好比overlay命令,colorchannelmixer命令 eq命令,libx264編碼功能,這樣你功能上雖然實現了,但處理一個10秒的視頻,要花費2分鐘,這樣的功能,估計很難在APP裏使用。咱們的SDK針對這樣的狀況,作了硬解碼器和硬編碼器,徹底加速ffmpeg的執行,這個也是咱們SDK的核心所在。
4,ffmpeg我怎麼開始作呢?
    若是您是初學者,建議不要一上來就編譯ffmpeg,由於網上github上編譯好的工程太多了,你的目的是學習使用到你項目中。再說了,若是你要用ffmpeg實現一些複雜的運算,即便你花費一週時間編譯好了,結果發現功能能夠知足,但處理起來太慢了,根本沒法使用,事倍功半,也是沒意義的。建議用上面推薦的兩個連接,先學習了再說,即便收費的版本,但ffmpeg的命令代碼是公開的,運行是不變的,只是有時間和其餘限制而已,學習ffmepg是沒有阻礙的。建議先學習起來再說,畢竟熟悉了,才能夠靈活的使用。
5,ffmpeg哪些功能執行較快,而且免費工程裏也能夠實現?
         像普通的音視頻剪切,分離,合成,拼接,封裝,格式轉換這些是能夠的。由於沒有用到視頻數據解碼和編碼操做,執行起來很快;好比秒拍中音樂那個功能,他用到的命令有: 音頻裁剪,把視頻中的音頻分離,而後把新的音頻在和視頻合併;用到音量調節,也能夠用ffmpeg的amixer來實現;再好比秒拍中的視頻截取,其實就是用ffmpeg的截取命令來實現的;再好比你直接把MediaCodec編碼好的H264裸碼流保存成文件,你想封裝成mp4格式,讓別的播放器也能夠播放,則用ffmpeg的封裝命令就能夠實現,不須要本身去封裝。若是您的項目中只用到這些,則免費版本就能夠知足,徹底不須要收費的SDK。
6,普通的ffmpeg哪些功能較慢,不適合使用?
         在一些須要用到操做視頻畫面像素的場合,好比用overlay作疊加,colorchannelmixer或eq作濾鏡,用scale縮放,用到視頻解碼-->處理-->再編碼的場合。
         這些功能的大概工做流程是:
         第一步解碼,若是採用硬件解碼,則會快不少,若是用軟解碼,即便通過NEON批處理優化,處理速度仍是不夠理想;
         第二步處理,假如您用到的是colorchannelmixer這個命令,他的工做原理是事先把255個像素值根據您的設置所有放到一個表裏,在處理一個像素時,利用查表法來獲得處理後的值,雖然快一些,但和用opengl比較起來仍是很慢,畢竟這個是一個像素一個像素的去作,而opengl則採用矢量並行處理,速度上徹底不能比;
         第三步:視頻編碼,ffmpeg自己不帶H264視頻編碼器,須要使用外部的,好比libx264,libopenh264這些,但也是軟編碼。
         你的視頻每幀都須要通過這三步來作,解碼,處理,再編碼。這樣下來,假如20秒的視頻,每秒25幀,則是500幀,若是不用硬件加速來作,速度上估計很難完成。
         咱們的SDK針對這樣的狀況,作了硬解碼和硬編碼,加速ffmpeg的執行,讓它跑快一些,這個也是咱們SDK的核心所在。
 7,有沒有好的辦法,又想實現功能,又想用免費版本的?
      有。 用MediaCodec+ OpenGL的形式來作,把ffmpeg一些處理慢的操做,通通用MediaCodec+OpenGL來實現,好比濾鏡,好比疊加,好比縮放等,咱們高級版本中的大部分操做也是用opengl來作的,咱們作了大量的工做,讓你像操做一個ArrayList類同樣,增長一個媒體,刪除一個媒體,簡單易用。
      
 8,若是咱們本身作,須要懂得哪些知識:
     首先你要從戰略上輕視它^_^,畢竟又不是讓你去搞科研,去搞高精尖,去得到諾貝爾獎。這是一項技術,一項已經很成熟的技術,相似學習android的UI,學習java的編程同樣的一項技術,須要的是在這方面知識的積累和花時間去作的事情。若是你是初學者,那須要花很長的時間去學習,去摸索的事情,而後精通的過程。
     再者你就要從戰術上重視它^_^, 涉及到的知識點有:
      8.1 linux基本操做,在這裏強烈不推薦在windows下用cygwin來搞,第一很難行通,第二事倍功半。
      8.2 ndk和jni,gcc的知識,由於你要作的最終要封裝成java的一個類和方法,讓作UI的工程師調用,並須要懂得一些java的編程,這樣你調試起來會快一些。
      8.3 視頻的知識。這個必不可少,也不用多說,畢竟作的是視頻編輯,像視頻格式,音頻,pcm,h264的基本知識,視頻碼率,分辨率,幀率,ffmpeg的經常使用命令等等。
      8.4 懂得視頻知識後,強烈推薦徹底精通MediaCodec和視頻播放原理,由於這個能夠幫你節省大量的時間去實現一個功能。

總結:不要一上來就編譯,學以至用才重要,用免費的版本消耗的是人力成本和時間成本,用咱們的SDK能夠加速您項目的開發,再說咱們的SDK的費用遠遠小於您人力成本和時間成本的費用^_^。

相關文章
相關標籤/搜索