# FFmpeg **Repository Path**: yycom0/FFmpeg ## Basic Information - **Project Name**: FFmpeg - **Description**: 基于B站的FFmpeg适配OpenHarmony编译指导教程 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2024-02-26 - **Last Updated**: 2024-02-26 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # ijkffmpeg 基于B站的FFmpeg适配OpenHarmony编译指导教程 ## 说明 基于B站的FFmpeg版本(ff4.0--ijk0.8.8--20210426--001):[FFmpeg源码链接](https://github.com/bilibili/FFmpeg/tags), 由于工具链问题,请使用GN编译,编译教程参考:[OpenHarmony编译构建指导](https://gitee.com/openharmony/docs/blob/master/zh-cn/device-dev/subsystems/subsys-build-all.md). ## 准备编译环境 系统:Ubuntu 20.04 硬盘:不小于100G 下载系统源码OpenHarmony-v3.2-Beta2:[源码链接](https://repo.huaweicloud.com/harmonyos/os/3.2-Beta2/code-v3.2-Beta2.tar.gz). 安装OpenHarmony编译依赖的库: ``` apt-get install -y apt-utils binutils bison flex bc build-essential make mtd-utils gcc-arm-linux-gnueabi u-boot-tools python3.9 python3-pip git zip unzip curl wget gcc g++ ruby dosfstools mtools default-jre default-jdk scons python3-distutils perl openssl libssl-dev cpio git-lfs m4 ccache zlib1g-dev tar rsync liblz4-tool genext2fs binutils-dev device-tree-compiler e2fsprogs git-core gnupg gnutls-bin gperf lib32ncurses5-dev libffi-dev zlib* libelf-dev libx11-dev libgl1-mesa-dev lib32z1-dev xsltproc x11proto-core-dev libc6-dev-i386 libxml2-dev lib32z-dev libdwarf-dev apt-get install -y grsync xxd libglib2.0-dev libpixman-1-dev kmod jfsutils reiserfsprogs xfsprogs squashfs-tools pcmciautils quota ppp libtinfo-dev libtinfo5 libncurses5 libncurses5-dev libncursesw5 libstdc++6 gcc-arm-none-eabi vim ssh locales doxygen apt-get install -y libxinerama-dev libxcursor-dev libxrandr-dev libxi-dev ``` ## 编译操作步骤 1、把ijkffmpeg源码拷贝到OpenHarmony系统源码的third_party目录下 2、配置subsystem_config.json,所在路径/OpenHarmony/build/subsystem_config.json: ``` "ijkffmpeg": { "path": "third_party/ijkffmpeg", "name": "ijkffmpeg" } ``` 配置config.json,所在路径OpenHarmony/vendor/hihope/rk3568: ``` { "subsystem": "ijkffmpeg", "components": [ { "component": "ijkffmpeg" } ] } ``` 3、执行命令 编译32位:./build.sh --product-name rk3568 编译64位:./build.sh --product-name rk3568 --target-cpu=arm64 4、生成的so所在路径:/OpenHarmony/out/rk3568/ijkffmpeg ## 注意点 * 可能会遇到文件格式问题,dos格式,需要转unix:使用vi编辑器打开文件,执行set ff=unix,最好直接在Linux系统中通过git clone的方法拉取ijkffmpeg的源码 * 权限问题,ijkffmpeg下ohos_ijkffmpeg_config.sh、configure 这两个文件需要加入执行权限,例如:chmod 777 ohos_ijkffmpeg_config.sh