Filmr : 3 歲小孩也會用的視頻剪輯 App,現在andorid版本開源了!

Filmr - 輕鬆的視頻編輯」是一款爲業餘愛好者設計的視頻編輯軟件,你不需要專業的攝影知識,也能創造出獨一無二的視頻。在 Filmr,你能直接拖動進度條來裁剪素材,長按某條素材,你可以改變該素材的播放順序。另外,右劃還能刪除、複製或者倒序播放視頻素材,
iOS版本在appStore中可以直接下載,但是沒有android版本,現在剛好有時間就把filmr的android版本寫了出來,可供參考。
整個app主要有的功能就是:視頻裁切,視頻合成,視頻中添加文字,語音,圖片,塗鴉等功能,使用起來也是超級的方便,直接秒殺其他收費類app。

下面只要對整個項目的一些難點講解一下:

  • 1,這裏裁切其實很大部分使用的是七牛短視頻sdk,七牛裁切使用的是GLSurfaceView。而他在acivitiy中只能存在一個,並且需要渲染器,所以後面決定了使用fragment,在fragment裏面渲染,後面再把PLShortVideoEditor傳人到mianActivity
  • 2.切換fragment的時候,需要 mShortVideoEditor.stopPlayback(); 停止視頻播放,不然切換會有聲音繼續
  • 3.需求要求連續播放不同視頻,不能使用多個播放器,影響性能,但是可是使用fragment各自有各自的生命週期
  • 4.因爲視頻有裁切,合成是在最後執行,如果需要判斷獲取播放的時間點,以及裁切起始結束都應該使用秒爲單位,防止偏移
  • 5.需要注意的地方,activty裏面添加fragment,他們的生命週期是分開的,並行,並不會說執行了fragment之後再繼續往下執行
  • 6.如果有多個狀態需要判斷,使用枚舉比int整型,更加直觀
  • 7.視頻有多個,每一個需要需要單獨判斷,不能相加後再判斷,比如說總時間 (int)4.5+5.2+5.8)和(int)4.8+(int)5.2+(int)5.8
  • 8.mShortVideoEditor.startPlayback();執行了之後再去執行其他添加編輯方法,七牛那邊要求
  • 9.刪除recyclerView一個item,再添加一個新的item,會出現舊的item的緩存,記得 mMenuRecyclerView.removeViewAt(position);
  • 10.關於在播放的時候,獲取視頻播放的時間,是以ms爲單位還是以s單位,以ms 單位進度條會流暢很多,但是需要在指定時間點做多重判斷,所以最後衡量了一下,使用了0.1秒
  • 11.視頻合成的時候,需求要求是能夠在指定的點插入音頻,而且可以插入多段音頻(需要用到ffmpeg混音)

這裏用到了好幾個開源項目:

好了最後把開源的項目地址貢獻出來,如果喜歡請記得在github中star哦,

github鏈接地址

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章