# 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