1. 程式人生 > >基於ffmpeg和libvlc的視頻剪輯、播放器

基於ffmpeg和libvlc的視頻剪輯、播放器

mage 開發工具 希望 lib 感覺 layer 有時 設置 clas

以前研究的時候,寫過一個簡單的基於VLC的視頻播放器。後來因為各種項目,有時為了方便測試,等各種原因,陸續加了一些功能,現在集成了視頻播放、視頻加減速、視頻剪切,視頻合並(增加中)等功能在一起。有時候看點網上下載的視頻,可以一邊看,一邊能處理視頻前後的廣告,感覺也還可以用,就想把它開源出去,一方面希望有需要的朋友可以參考、借鑒,另一方面也希望可以促進它進一步的豐富功能,最終能實現一款簡單又夠用的視頻剪輯軟件。

程序框架

先上一張程序截圖

技術分享圖片

基本上講,它的播放功能是基於VLC,剪輯功能是基於FFmpeg,現在的功能還比較簡單,當然我的目的也不是想做一個復雜的視頻編輯器,那是專業軟件的事情,就是想做一個簡單又好用的剪輯工具即可。整體框架如下圖所示:

技術分享圖片

源碼簡介

工程

程序目前使用VS2013開發,並通過Qt VS Addin創建QT工程,界面基於QT5來編寫。將來準備改為QtCreator工程,目的是為了方便移植到linux平臺。

主要邏輯是:QT繪制界面,跟用戶交互,通過調用libvlc,實現本地文件播放。在適當的地方設置剪輯參數,然後通過FFMPEG實現視頻文件剪輯,完成後,反饋到QT界面。

和普通播放器類似,程序支持左"<-",右"->"快捷鍵來做視頻的快進後退,也可配合Ctrl和Shift鍵來做。

代碼目錄

技術分享圖片

開發計劃

  • 開發工具由VS2013切換為QtCreator
  • 文件播放部分,由目前的調用libvlc,改為通過FFMPEG解碼後,渲染播放。
  • 剪輯操作,由進程調用FFMPEG程序,改為通過FFMPEG API方式
  • 增加視頻文件合並,以及格式轉換
  • 界面改善

源碼地址

https://github.com/hbstream/hb-cut-player

有興趣的朋友可以看看,現在還比較初級,會慢慢更新,歡迎提交建議和代碼。

基於ffmpeg和libvlc的視頻剪輯、播放器