FFmpeg開発ノート(11):ffmpegはHiSilicon HI35xxプラットフォームに移植され、ffmpegライブラリがサンプルのデモに導入されています

記事が元の記事である場合は、転載
時に元の記事の出典を示してください。専門家を探すか、Red Fatty(Red Imitation)のブログ投稿を自分で調べてください:開発技術コレクション(Qt実用技術、Raspberry Pi、3Dを含む) 、OpenCV、OpenGL、ffmpeg、OSG、マイクロコントローラー、ソフトウェアとハ​​ードウェアの組み合わせなど)継続的に更新されるミドル...(ポータルをクリック)

FFmpegおよびSDL開発コラム(ポータルをクリック)

前:「FFmpeg開発ノート(10):ubuntuでのffmpegのクロスコンパイルとHiSilicon HI35xxプラットフォームへの移植
次:お楽しみに...


序文

  前回の記事では、ffmpegのHiSiliconバージョンをクロスコンパイルし、クロスコンパイルされたqt ffmpegプレーヤーを使用してHiSiliconで再生しました。このフィルムは、ffmpeg環境をHiSiliconサンプル環境に追加します。


HiSiliconサンプルにffmpegライブラリを導入する

ステップ1:以前にクロスコンパイルされたインストールファイルを表示する

  ここに画像の説明を挿入

ステップ2:コンパイルされたパラメーターファイルを開き、ヘッダーファイルとライブラリファイルを追加します

   ここに画像の説明を挿入

##### add by yangjiong 2022-03-12 start
INC_FLAGS += -I/home/yang/work/ffmpeg-hi3559av100/include
MPI_LIBS += /home/yang/work/ffmpeg-hi3559av100/lib/libavcodec.a
MPI_LIBS += /home/yang/work/ffmpeg-hi3559av100/lib/libavdevice.a
MPI_LIBS += /home/yang/work/ffmpeg-hi3559av100/lib/libavfilter.a
MPI_LIBS += /home/yang/work/ffmpeg-hi3559av100/lib/libavformat.a
MPI_LIBS += /home/yang/work/ffmpeg-hi3559av100/lib/libavutil.a
MPI_LIBS += /home/yang/work/ffmpeg-hi3559av100/lib/libswresample.a
MPI_LIBS += /home/yang/work/ffmpeg-hi3559av100/lib/libswscale.a
##### add by yangjiong 2022-03-12 stop

  以下に示すように:
  ここに画像の説明を挿入

ステップ3:vencの別のサンプルにffmpegテストを追加する

  (HiSiliconのサンプルサブディレクトリでは、フォルダに含めることができるメイン機能は1つだけです。つまり、サブフォルダ内のすべてのヘッダーファイルとソースファイルがアプリケーションとして共同でコンパイルされます。)
  元の.cを変更します。サフィックス.bakについて、次にacファイルを再作成します。
  ここに画像の説明を挿入
  ここに画像の説明を挿入

ステップ4:ボード上でターゲットアプリケーションを実行します

  (注:最初にライブラリを実行環境に追加する必要があります。最も簡単な方法は、前のライブラリを直接コピーするか、ライブラリをHiSiliconシステムの/ libファイルディレクトリに配置するか、パスをカスタマイズして、実行時に最初に追加するスクリプト。パスしてからアプリケーションを実行します。さまざまな方法があります。すべての道路がローマに通じています)。
  HI3559AV100で実行した結果は次のとおりです。
  ここに画像の説明を挿入


デモソースコード

#ifdef __cplusplus
#if __cplusplus


extern "C" {
    
    
#endif
#endif /* End of #ifdef __cplusplus */

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <pthread.h>
#include <signal.h>
#include <sys/socket.h>
#include <sys/un.h>
#include <unistd.h>
#include <netinet/in.h>
#include<arpa/inet.h>
#include <sys/types.h>

#include "sample_comm.h"

// ffmepg
#include <libavcodec/avcodec.h>
#include <libavformat/avformat.h>
#include <libswscale/swscale.h>
#include <libavdevice/avdevice.h>
#include <libavformat/version.h>
#include <libavutil/time.h>
#include <libavutil/mathematics.h>

#define LOG printf("%s:%d\n", __FILE__, __LINE__);


int main(int argc, char *argv[])
{
    
    
	printf("%s\n", avcodec_configuration());
	return 0;
}

#ifdef __cplusplus
#if __cplusplus
}
#endif
#endif /* End of #ifdef __cplusplus */

前:「FFmpeg開発ノート(10):ubuntuでのffmpegのクロスコンパイルとHiSilicon HI35xxプラットフォームへの移植
次:お楽しみに...


記事が元の記事である場合は、再版するときに元の記事の出典を示してください
。この記事のブログアドレス:https ://blog.csdn.net/qq21497936/article/details/123446550

おすすめ

転載: blog.csdn.net/qq21497936/article/details/123446550