ffmpeg 程序再開發

ffmpeg項目集成了大量的音視頻協議,非常優秀。

爲了將該項目和另外一個項目對接,需要對ffmpeg項目進行再開發,儘量不要動ffmpeg項目的源碼,本來打算使用 ffmpeg 庫 + ffmpeg_2 程序的方式再開發。

結果ffmpeg程序對ffmpeg項目依賴太大,不好分離,不能像 ffplay 那樣。

不能把事情弄得太複雜,所以我打算在源項目基礎上做,我複製了一個ffmpeg_2.c 文件,打算在工程上添加一個 ffmpeg_2 的可執行文件的編譯過程。

  • 拷貝文件:

    cp fftools/ffmpeg{,_2}.c 
    cp doc/ffmpeg{,_2}.texi 
    
  • 修改./configure文件,感覺不太需要,不過工程管理在configure文件上,這裏修改也是應該的。

  1.   --disable-ffmpeg         disable ffmpeg build
    # 在 disable-ffmpeg 下面 添加一個 
      --disable-ffmpeg_2       disable ffmpeg_2 build
    
  2. PROGRAM_LIST="
        ffplay
        ffprobe
        ffmpeg
    "
    # 改爲
    
    PROGRAM_LIST="
        ffplay
        ffprobe
        ffmpeg
        ffmpeg_2
    "
    
  • 修改 fftools/Makefile
  1. AVPROGS-$(CONFIG_FFMPEG)   += ffmpeg
    # 這句下面添加
    AVPROGS-$(CONFIG_FFMPEG_2)   += ffmpeg_2
    
  2. AVBASENAMES  = ffmpeg ffplay ffprobe 
    # 改爲
    AVBASENAMES  = ffmpeg ffplay ffprobe ffmpeg_2
    
  3. OBJS-ffmpeg                        += fftools/ffmpeg_opt.o fftools/ffmpeg_filter.o fftools/ffmpeg_hw.o
    # 這句下面添加
    OBJS-ffmpeg_2                        += fftools/ffmpeg_opt.o fftools/ffmpeg_filter.o fftools/ffmpeg_hw.o
    
  • 然後運行
    ./configure
    make -j8
    

就會生成一個 ffmpeg_2 的程序,問題不大了。

可以在ffmpeg_2.c 中根據自己的項目進行修改了。

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