海思MP 4開発シリーズ(一)GPACクロスコンパイル(Hi 3559+H 265+gpac+MP 4)


リファレンス
  • Hi 3559 AV 100下gpacクロスコンパイル
  • 海思3516 Aはmp 4 boxツールを実行し、gpac 0.4を移植した.0
  • gpacパッケージmp 4
  • を使用
  • R_を解決できませんAARCH64_ADR_PREL_PG_HI 21は符号__にリダイレクトするstack_chk_guard@GLIBC_2.17

  • 背景
    従来のMP 4パッケージは、ほとんどがlibmp 4 v 2ライブラリを使用しているだけで、H 264+libmp 4 v 2のオンラインチュートリアルも多いが、8012年にH 265と一緒に来て、技術はより良い互換性を持って後続の拡張を行うべきで、Mp 4 v 2は現在無人メンテナンスの状態でもH 265をサポートしていない.
    コンパイル環境
    ホスト:Ubuntu-16.04ターゲットマシン:海思3559 Aコンパイルツールチェーン:aarch 64-himix 100-linux-
    zlibクロスコンパイル
    zlibは圧縮ライブラリで、gpacはzlibに依存して、私たちはまずlibzをコンパイルします.a
    ダウンロード
    最新バージョン:zlib-1.2を使用します.11 zlib官网下载地址:点我
    クロスコンパイルzlib
  • フォルダzlib-1.2に解凍する.11
  • 指定コンパイラ
    export CC=aarch64-himix100-linux-gcc 
  • 構成生成Makefile
    ./configure --prefix=$PWD/_install 
  • コンパイル生成
    make -j$(nproc)
    make install
  • ディレクトリの生成
    このディレクトリで_installでは、次の3つのディレクトリが生成されます.
    include lib share

    gpacクロスコンパイル
    ダウンロード
    git clone [https://github.com/gpac/gpac.git](https://github.com/gpac/gpac.git)

    zlibの追加
    zlib-1.2.11/_install/libディレクトリの下libz.a gpac/extra_にコピーlib/lib/gcc/ディレクトリの下
    クロスコンパイルgpac
  • 構成生成Makefile
  • ./configure --prefix=$PWD/_install --cc=aarch64-himix100-linux-gcc --cxx=aarch64-himix100-linux-g++ --extra-cflags=-fPIC -I$PWD/extra_lib/include/zlib --extra-ldflags=-L$PWD/extra_lib/lib/gcc --use-zlib=local --disable-x11 --disable-x11-shm --disable-x11-xv

    --cc、--cxxは指定コンパイラ--extra--use-zlib指定zlibライブラリ--disableこれはインタフェース関連で、私は使えないで先に取り除くことができて、自分の状況によって、残して勝手にします
  • configを修正する.makのこのステップは必ずしも必要ではありません.一部のツールが変更されていないので、安全のためにconfigを修正したほうがいいです.makのいくつかのツールはすべてクロスコンパイルチェーンツール
  • に置き換えられた.
    CC=@aarch64-himix100-linux-gcc
    AR=@aarch64-himix100-linux-ar
    RANLIB=@aarch64-himix100-linux-ranlib
    STRIP=@aarch64-himix100-linux-strip
  • コンパイル生成
    make -j$(nproc)
    make install
  • ディレクトリの生成
    このディレクトリで_installでは、次のディレクトリが生成されます.
    bin include lib man share

    bin下MP 4 Boxでテストできます
    ターゲットボードテスト
    環境変数追加ライブラリパス検索
    zlibの下のlibとgpacの下のlibライブラリをnfsディレクトリの同じフォルダに配置gpacの下のbinディレクトリもnfsディレクトリにコピー
    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/root/nfs_share/gpac/lib 

    MP 4パッケージテスト
    gpac/binディレクトリに入り、MP 4 Boxツールテストを使用してH 265データをMp 4にカプセル化
    ~/nfs_share/gpac/bin # ./MP4Box -add ../../video_hayson.h265 test.mp4
    HEVC import - frame size 1280 x 720 at 25.000 FPS
    HEVC Import results: 103 samples (115 NALUs) - Slices: 4 I 99 P 0 B - 0 SEI - 4 IDR
    Saving to test.mp4: 0.500 secs Interleaving

    再生
    chmod 777 test.mp4

    VLCもffplayも再生可能
     
    創作は容易ではありません.いいですね.海星出品、転載は出典を明記してください!