NDK编译ffmpeg包含硬件加速vulkan和mediacodec

这篇具有很好参考价值的文章主要介绍了NDK编译ffmpeg包含硬件加速vulkan和mediacodec。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

NDK编译ffmpeg包含硬件加速vulkan和mediacodec

flyfish

ffmpeg:ffmpeg-6.0
NDK:android-ndk-r25c
硬件加速:vulkan 和 mediacodec
target CPU:armv8-a
host:Ubuntu 22.04

因为这里要编译硬件加速版本的ffmpeg-6.0,所以需要把vulkan中include下的两个文件夹
vk_videovulkan 拷贝到 android-ndk-r25c/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/

vulkan下载地址
Vulkan视频解码是厂商通用硬件加速视频解码的新规范。
目前,支持以下编解码器 H.264, HEVC, AV1

因为这里用的是android-ndk-r25c,与旧版的NDK有所不同
aarch64-linux-android-nm被llvm-nm替代
aarch64-linux-android-ar 被llvm-ar替代

编译脚本如下

#!/bin/bash
make clean
#配置NDK和TOOLCHAIN路径
export NDK=/media/a/flyfish/android_sdk/android-ndk-r25c
TOOLCHAIN=$NDK/toolchains/llvm/prebuilt/linux-x86_64
AR=$TOOLCHAIN/bin/llvm-ar
NM=$TOOLCHAIN/bin/llvm-nm
RANLIB=$TOOLCHAIN/bin/llvm-ranlib
STRIP=$TOOLCHAIN/bin/llvm-strip

#arm64-v8a 参数配置
ARCH=arm64
CPU=armv8-a
API=28
CC=$TOOLCHAIN/bin/aarch64-linux-android$API-clang
CXX=$TOOLCHAIN/bin/aarch64-linux-android$API-clang++
SYSROOT=$NDK/toolchains/llvm/prebuilt/linux-x86_64/sysroot
CROSS_PREFIX=$TOOLCHAIN/bin/aarch64-linux-android-
PREFIX=$(pwd)/android/$CPU
OPTIMIZE_CFLAGS="-march=$CPU"

 
function build_android
{
./configure \
--prefix=$PREFIX \
--enable-postproc \
--enable-debug \
--disable-asm \
--enable-doc \
--enable-ffmpeg \
--enable-ffplay \
--enable-ffprobe \
--enable-symver \
--disable-avdevice \
--enable-static \
--enable-shared \
--enable-neon \
--enable-hwaccels \
--enable-jni \
--enable-mediacodec \
--enable-decoder=h264_mediacodec \
--enable-decoder=hevc_mediacodec \
--enable-decoder=mpeg4_mediacodec \
--cross-prefix=$CROSS_PREFIX \
--target-os=android \
--arch=$ARCH \
--cpu=$CPU \
--cc=$CC \
--cxx=$CXX \
--ar=$TOOLCHAIN/bin/llvm-ar \
--nm=$TOOLCHAIN/bin/llvm-nm \
--ranlib=$RANLIB \
--strip=$STRIP \
--enable-cross-compile \
--sysroot=$SYSROOT \
--extra-cflags="-Os -fpic $OPTIMIZE_CFLAGS" \
--extra-ldflags="$ADDI_LDFLAGS"
 
make clean
make -j4
make install
 
echo "build complete"
 
}

# 函数调用
build_android

将上述脚本拷贝到build.sh
放置到ffmpeg-6.0中
增加可执行权限后,执行 ./build.sh
编译结果在ffmpeg-6.0/android//armv8-a文件夹中
包括bin include lib share

将ffmpeg和so文件传到target设备
执行

第一句主要让ffmpeg从当前目录下找so文件

export LD_LIBRARY_PATH=./:$LD_LIBRARY_PATH
./ffmpeg -hwaccels

NDK编译ffmpeg包含硬件加速vulkan和mediacodec,# C++,ffmpeg,vulkan,mediacodec,ndk,android
可以看到已经包括vulkan和mediacodec硬件加速文章来源地址https://www.toymoban.com/news/detail-527605.html

到了这里,关于NDK编译ffmpeg包含硬件加速vulkan和mediacodec的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • NDK交叉编译FFmpeg安卓编译ffmpeg

    编译工具下载 参考这个:https://blog.csdn.net/gaoliang0/article/details/81913291 或者官网 NDK编译工具下载: https://developer.android.google.cn/ndk/downloads?hl=zh-cn 官网老版本: https://github.com/android/ndk/wiki/Unsupported-Downloads 或者从我的百度网盘: 链接:https://pan.baidu.com/s/1FEtM6mVNgER_DvC2myHB5Q?pwd=28l9 提

    2024年02月08日
    浏览(37)
  • Android ffmpeg入门(1)—— 使用NDK交叉编译ffmpeg集成到Android项目

    最近在学习android NDK开发相关内容,借ffmpeg练练手。ffmpeg是做音视频方面功能的基础,后面会随着个人的学习更新一系列ffmpeg博客,防止自己遗忘。 这个系列博客主要目的是基于ffmpeg通过NDK开发的方式完成一个基本的视频播放器。 本篇博客主要实现了 ffmpeg编译 以及 引入 a

    2023年04月08日
    浏览(39)
  • android ndk clang交叉编译ffmpeg动态库踩坑

    1.ffmpeg默认使用gcc编译,在android上无法使用,否则各种报错,所以要用ndk的clang编译 2.下载ffmpeg源码 修改configure文件,增加命令 cross_prefix_clang 修改以下命令 修改后 3.新建脚本文件,ffmpeg目录下执行脚本文件即可。 编译32位,则ARCH改为arm,CPU改为armv7-a,TARGET改为armv7a-linux-

    2024年02月13日
    浏览(45)
  • ffmpeg 硬件加速介绍

    参考[2],基于windows的硬件加速都是基于DirectX API,我们可以用ffmpeg -hwaccels查看当前环境支持的硬件加速接口,如下为windows上的执行ffmpeg --hwaccels的结果。 在linux上执行ffmpeg -hwaccels的结果如下: 可以看到windows上支持的硬件加速接口比较多,其中dxva2,d3d11va都为DirectX的硬件加

    2024年02月21日
    浏览(32)
  • ffmpeg 硬件加速视频转码指南

    0. 系统环境 基于 Windows 下演示,Linux 下也可以适用。 所使用 ffmpeg 版本为 BtbN 编译的 win64-gpl 版(非 gpl-share),项目地址:BtbN / FFmpeg-Builds 也可以使用 gyan.dev 编译的 git-full 版,地址:gyan.dev ,都是官方推荐的。 所使用的测试片段是一段相机录制的 h264 编码的100兆码率的

    2024年01月19日
    浏览(37)
  • 使用GPU硬件加速FFmpeg视频转码

    本文内容包括: 在Linux环境下安装FFmpeg 通过命令行实现视频格式识别和转码 有Nvidia显卡的情况下,在Linux下使用GPU进行视频转码加速的方法 在FFmpeg官网https://ffmpeg.org/download.html可以下载到ubunto/debian的发行包,其他Linux发行版需自行编译。同时,如果要使用GPU进行硬件加速的话

    2024年02月08日
    浏览(45)
  • linux NDK交叉编译rtmp 与 ffmpeg+rtmp交叉编译(v7a,v8a) 完成流程

    最近在学RTMP,记录一下完成的编译流程 我是mac 电脑,但是mac上编译一直通过不了,后来才换到服务器上编译, 其实mac也能编译,只是最开始踩到坑里面了… 这里记录一下linux编译完整流程 环境: NDK: android-ndk-r17c Ffmpeg: ffmpeg4.2.2 (高版本也可以编译) system: mac 首先下载 rtmp https://gith

    2024年02月15日
    浏览(44)
  • Ubuntu 18.04 安装ffmpeg(支持GPU硬件加速)

    1:安装前请自行安装nvidia驱动和cudu cudnn 查看cuda版本 2:安装nv-codec-hearers 官网: https://docs.nvidia.com/video-technologies/video-codec-sdk/ffmpeg-with-nvidia-gpu/ 3:安装ffmpeg编码库 4:安装ffmpeg 5:建立软连接 增加安装目录的动态链接库 6 检查硬件加速 7:添加库连接 8 :运行实例检查 9:卸载

    2023年04月18日
    浏览(109)
  • 支持硬件加速的opencv编译

    为了降低cpu的使用率提升系统的接入能力,需要将编解码模块移至GPU处理,opencv默认的发行版中不支持GPU加速,所以需要重新编译opencv使其支持GPU硬件加速。 本文的读者须具备一定的Linux使用经验,如常规软件安装等操作不在本文档中描述。 cuda:统一计算设备架构(Compute

    2024年02月10日
    浏览(42)
  • FFmpeg 在Windows环境下 Intel ,Nvidia ,AMD 硬件加速编解码支持列表

    目录 前言 一. Intel 编解码硬件支持列表   1. Encode 编码硬件支持列表 (1)Intel 独显编码硬件支持列表 (2)第 11,12,13 代 Intel 处理器编码硬件支持列表 (3)第 10 代 Intel 处理器编码硬件支持列表 (4)第 9 代 Intel 处理器编码硬件支持列表 (5)第 5,6,7,8 代 Intel 处理器

    2024年02月03日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包