轉載請注明出處:
http://m.itdecent.cn/p/78f005e80d3b
你還在為開發(fā)中頻繁切換環(huán)境打包而煩惱嗎?快來試試 Environment Switcher 吧!使用它可以在app運行時一鍵切換環(huán)境,而且還支持其他貼心小功能,有了它媽媽再也不用擔心頻繁環(huán)境切換了。https://github.com/CodeXiaoMai/EnvironmentSwitcher
這篇文章不是對 MP4 Parser 怎樣使用的介紹,而是記錄下修改它的源碼并生成 jar 包的過程。
MP4 Parser 是什么
A Java API to read, write and create MP4 container. Manipulating containers is different from encoding and decoding videos and audio.
這是 GitHub 上對它的介紹。
為什么要改 MP4 Parser 的源碼
當然是為了加密~~~MP4 Parser可以對標準的視頻和音頻進行編碼和解碼,那么如果我們把 MP4 Parser 對音視頻的編碼過程修改為一個只有自己知道的過程,別人就沒辦法用正常的解碼器來播放了。這樣就達到了加密的目的。
下載 MP4 Parser源碼
先將源碼從 git 庫中 clone 到本地(直接下載.zip再解壓也可以)
git clone https://github.com/sannies/mp4parser.git
IDE選擇
因為 MP4 Parser 是依賴 Maven 庫的,所以我用的是 Eclipse Neon,下載地址:
安裝好后,自帶 Maven 插件。
安裝并配置 Maven
下載 Maven 并解壓到本地(我的是在D:\maven),下載地址:
http://apache.fayea.com/maven/maven-3/3.5.0/binaries/apache-maven-3.5.0-bin.zip
配置環(huán)境變量
打開解壓到本地的 maven 目錄,復制當前路徑,在系統(tǒng)變量中添加變量名:“MAVEN_HOME”,變量值:“D:\maven”(注意你的變量值)。在Path中添加:“%MAVEN_HOME%\bin;”。
打開 CMD,輸入 mvn -version,不提示“‘mvn’ 不是內部或外部命令,也不是可運行的程序或批處理文件?!本驼f明配置成功。
導入工程
打開 Eclipse,按如下操作:File->New->Project->General->Project,輸入Project name,點擊 finish 結束。
打開 clone 或解壓到本地的 mp4parser 文件夾,將所有文件復制到剛才新建的工程目錄下,目錄結構如下圖:

Build 工程
我們需要的修改的源碼主要在 isoparser 和 muxer 這兩個目錄下。
右擊 isoparser 目錄下的 pom.xml,Debug As->Maven Install,開始構建。構建過程中如果遇到下面的問題:

就打開 pom.xml 文件,在<build><plugins>標簽中添加如下代碼:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.12</version>
<dependencies>
<dependency>
<groupId>org.apache.maven.surefire</groupId>
<artifactId>surefire-junit47</artifactId>
<version>2.12</version>
</dependency>
</dependencies>
</plugin>
保存文件后,再次右擊 isoparser 目錄下的 pom.xml,Debug As->Maven Install,開始構建。
如果看到 BUILD SUCCESS 則說明構建成功,如果在 isoparser 目錄下看不到 target 目錄就刷新一下,打開 target 目錄isoparser-1.9.27.jar 就是我們要的 jar 包。
muxer 目錄和 streaming 目錄生成 jar 包的過程和 isoparser 是一樣的。
這樣,我們生成的 jar 包和官方提供的 jar 包就是一樣的了。拉下來修源改代碼,并打包。
修改源代碼再次打包
重復上面的打包步驟,如果失敗,那么很可能是你改對了地方,但是mp4parser 的測試沒有通過,因為這個測試是針對標準的視頻文件的,這里我們修改后已經不符合標準了,那么測試當然無法通過。
怎么辦呢?很簡單,把src目錄下的 test 文件夾刪除再打包就Ok了。