首页 > 其他分享 >ffmpeg不同平台的一些编译脚本

ffmpeg不同平台的一些编译脚本

时间:2024-04-30 14:55:05浏览次数:22  
标签:脚本 enable TOOLCHAIN ffmpeg -- 编译 disable linux aarch64

build-x86-64.sh:
#!/bin/sh

# 编译后输出目录,在 ffmpeg 源码目录下的 /android/arm64-v8a
OUTPUT=$(pwd)/x86_64-linux/x64

build() {
./configure \
--disable-x86asm \
--prefix=$OUTPUT \
--disable-static \
--disable-debug \
--disable-doc \
--enable-shared \
--enable-cross-compile \
--extra-cflags="-fpic" \
--enable-hwaccels \
--enable-libx264 \
--enable-gpl \

# make clean all
make -j12
# make install
}

build

build-android64.sh:
#!/bin/sh
# NDK 所在的路径
export NDK=/home/a/ndk/android-ndk-r21e
TOOLCHAIN=$NDK/toolchains/llvm/prebuilt/linux-x86_64
# 需要编译出的平台,这里是 arm64-v8a
ARCH=aarch64
# 支持的最低 Android API
API=21
# 编译后安装目录,在 ffmpeg 源码目录下的 ./android/arm64-v8a
OUTPUT=$(pwd)/android/arm64-v8a

build() {
./configure \
--target-os=android \
--prefix=$OUTPUT \
--arch=$ARCH \
--sysroot=$TOOLCHAIN/sysroot \
--disable-static \
--disable-ffprobe \
--disable-debug \
--disable-doc \
--enable-shared \
--enable-cross-compile \
--cross-prefix=$TOOLCHAIN/bin/aarch64-linux-android- \
--cc=$TOOLCHAIN/bin/aarch64-linux-android$API-clang \
--cxx=$TOOLCHAIN/bin/aarch64-linux-android$API-clang++ \
--extra-cflags="-fpic" \
--enable-hwaccels \
--enable-jni \
--enable-mediacodec \
--enable-encoder=h264_mediacodec \
--enable-encoder=hevc_mediacodec \
--enable-encoder=mpeg4_mediacodec \
--enable-decoder=h264_mediacodec \
--enable-decoder=hevc_mediacodec \
--enable-decoder=mpeg4_mediacodec \
--enable-hwaccel=h264_mediacodec \

# make clean all
make -j12
# make install
}

build


build-android32.sh:
#!/bin/sh
# NDK 所在的路径
export NDK=/home/a/ndk/android-ndk-r21e
TOOLCHAIN=$NDK/toolchains/llvm/prebuilt/linux-x86_64
# 需要编译出的平台,这里是 arm64-v8a
ARCH=armv7a
# 支持的最低 Android API
API=21
# 编译后输出目录,在 ffmpeg 源码目录下的 /android/arm64-v8a
OUTPUT=$(pwd)/android/arm64-v7a

build() {
./configure \
--target-os=android \
--prefix=$OUTPUT \
--arch=$ARCH \
--sysroot=$TOOLCHAIN/sysroot \
--disable-static \
--disable-ffprobe \
--disable-debug \
--disable-doc \
--enable-shared \
--enable-cross-compile \
--cross-prefix=$TOOLCHAIN/bin/arm-linux-androideabi- \
--cc=$TOOLCHAIN/bin/armv7a-linux-androideabi$API-clang \
--cxx=$TOOLCHAIN/bin/armv7a-linux-androideabi$API-clang++ \
--extra-cflags="-fpic" \
--enable-hwaccels \
--enable-jni \
--enable-mediacodec \
--enable-encoder=h264_mediacodec \
--enable-encoder=hevc_mediacodec \
--enable-encoder=mpeg4_mediacodec \
--enable-decoder=h264_mediacodec \
--enable-decoder=hevc_mediacodec \
--enable-decoder=mpeg4_mediacodec \
--enable-hwaccel=h264_mediacodec \

# make clean all
make -j12
# make install
}

build


build-aarch-linux.sh:
#!/bin/sh
# 工具链所在的路径
export TOOLCHAIN=/home/a/linux-aarch64-toolchain
# 需要编译出的平台,这里是 aarch64
ARCH=aarch64
# 编译后输出目录
OUTPUT=$(pwd)/aarch-linux

build() {
./configure \
--prefix=$OUTPUT \
--arch=$ARCH \
--sysroot=$TOOLCHAIN/sysroots/aarch64-sdrv-linux \
--disable-static \
--disable-ffprobe \
--disable-debug \
--disable-doc \
--enable-shared \
--enable-cross-compile \
--cc=$TOOLCHAIN/sysroots/x86_64-sdrvsdk-linux/usr/bin/aarch64-sdrv-linux/aarch64-sdrv-linux-gcc \
--cxx=$TOOLCHAIN/sysroots/x86_64-sdrvsdk-linux/usr/bin/aarch64-sdrv-linux/aarch64-sdrv-linux-g++ \
--strip=$TOOLCHAIN/sysroots/x86_64-sdrvsdk-linux/usr/bin/aarch64-sdrv-linux/aarch64-sdrv-linux-strip \
--extra-cflags="-fpic" \
--enable-hwaccels \

# make clean all
make -j12
# make install
}

build


build-aarch-linux-omx.sh:
#!/bin/sh
# NDK 所在的路径
export TOOLCHAIN=/home/a/linux-aarch64-toolchain
# 需要编译出的平台,这里是 arm64-v8a
ARCH=aarch64
# 编译后输出目录,在 ffmpeg 源码目录下的 /android/arm64-v8a
OUTPUT=$(pwd)/aarch-linux

#--extra-cflags="-I./omx/include" 三方库头文件查找路径

build() {
./configure \
--prefix=$OUTPUT \
--arch=$ARCH \
--sysroot=$TOOLCHAIN/sysroots/aarch64-sdrv-linux \
--disable-static \
--disable-ffprobe \
--disable-debug \
--disable-doc \
--disable-avdevice \
--enable-shared \
--enable-cross-compile \
--enable-omx \
--cc=$TOOLCHAIN/sysroots/x86_64-sdrvsdk-linux/usr/bin/aarch64-sdrv-linux/aarch64-sdrv-linux-gcc \
--cxx=$TOOLCHAIN/sysroots/x86_64-sdrvsdk-linux/usr/bin/aarch64-sdrv-linux/aarch64-sdrv-linux-g++ \
--strip=$TOOLCHAIN/sysroots/x86_64-sdrvsdk-linux/usr/bin/aarch64-sdrv-linux/aarch64-sdrv-linux-strip \
--extra-cflags="-fpic -I./omx/include" \
--enable-hwaccels \

# make clean all
make -j12
# make install
}

build

 

标签:脚本,enable,TOOLCHAIN,ffmpeg,--,编译,disable,linux,aarch64
From: https://www.cnblogs.com/linxisuo/p/18168023

相关文章

  • 自动批量实现linux机器ssh免密shell脚本
    要同时指定SSH端口和密码来实现非交互式地使用ssh-copy-id,可以使用sshpass来实现。sshpass是一个用于通过非交互方式输入密码的工具。下面是一个示例脚本,它使用sshpass、ssh-copy-id以及指定的端口号来实现这一目标:1#!/bin/bash23#检查是否提供了目标主机列表文件4i......
  • Shell 脚本(Bash 版)
    0x01概述(1)Shell简介Shell是一个命令行解释器flowchartLR用户输入命令-->接收并将命令传递给内核执行-->将命令执行的结果返回给用户Shell种类丰富,包括sh、csh、ksh、bash、zsh、fish等以下内容使用的是bash(BourneAgainShell)Linux系统中默认安装的是bashW......
  • Could not find module '.../libtorchaudio_ffmpeg.pyd' | RuntimeError: StreamRea
    Windows中使用torchaudio.io.StreamReader时报错:FileNotFoundError:Couldnotfindmodule'D:\software\miniconda3\envs\pytorch\Lib\site-packages\torchaudio\lib\libtorchaudio_ffmpeg.pyd'(oroneofitsdependencies).Tryusingthefullpathwith......
  • python脚本获取当前浏览器客户端的公共ip以及其详细信息
    python脚本获取当前客户端的公共ip以及其详细信息importrequestsfromflaskimportFlask,request,make_response,send_from_directoryfromdatetimeimportdatetimeimportasynciofromhypercorn.asyncioimportservefromhypercorn.configimportConfigimportos......
  • Qt Creator + MSVC2017编译器配置指南
    QtCreator+MSVC2017编译器配置指南下载和安装MSVC2017编译器下载下载MSVC编译器安装工具:https://docs.microsoft.com/zh-tw/previous-versions/visualstudio/visual-studio-2017/install/use-command-line-parameters-to-install-visual-studio?view=vs-2017安装安......
  • LD链接脚本
    LinkerScripts语法解析本文主要翻译自Top(LD)(sourceware.org)第三章,链接脚本。因此下面目录均以3开头目录LinkerScripts语法解析3前言3.1BasicLinkerScriptConcepts3.2LinkerScriptFormat3.3SimpleLinkerScriptExample3.4SimpleLinkerScriptCommands3.4.1......
  • 在Linux系统下用命令行编译调试C++
    在Linux系统下用命令行编译调试C++目录在Linux系统下用命令行编译调试C++一、编译1.单文件编译2.多文件编译3.链接第三方动态库二、调试1.启动和退出2.查看源代码:list/l3.断点:breakpoint/br、watchpoint4.单步、步入、跳出5.计算表达式命令:expression/expr、p、po6.操作......
  • curl多请求脚本
    #!/bin/bash#定义请求URL和数据url="https://api-adservices.apple.com/api/v1"data=""output_file="requests_log.txt"#清空或创建输出文件>"$output_file"#函数用于发送POST请求并记录日志send_post_request(){localrequest_number=$1local......
  • openGauss MOT查询原生编译_JIT
    MOT查询原生编译(JIT)MOT使您可以在执行之前以原生格式(使用PREPARE语句)准备并分析预编译的完整查询。这种本机格式以后可以更有效地执行(使用EXECUTE命令)。这种类型的执行效率要高得多,因为在执行期间,本机格式绕过了多个数据库处理层。这种分工避免了重复的解析分析操作。LiteExecu......
  • openGauss 查询原生编译
    查询原生编译MOT的另一个特性是,在预编译的完整查询需要执行之前,能够以原生格式(使用PREPARE语句)准备并解析这些查询。这种原生格式方便后续更有效地执行(使用EXECUTE命令)。这种执行类型速度要快得多,因为原生格式在执行期间绕过多个数据库处理层,从而获得更好地性能。这种分工避免......