You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

树莓派4构建Amazon Kinesis Video Producer SDK遇阻求助

在树莓派4上构建Amazon Kinesis Video Streams Producer SDK的解决方案

问题背景

在树莓派4(Debian Bookworm 32/64位,ARMv8架构)上编译Amazon Kinesis Video Streams Producer C/C++ SDK时,执行make阶段触发OpenSSL汇编指令错误,报错信息如下:

crypto/aes/vpaes-armv8.S:1191: Error: bad instruction `ldp d10,d11,[sp],#16'
crypto/aes/vpaes-armv8.S:1192: Error: bad instruction `ldp d8,d9,[sp],#16'
crypto/aes/vpaes-armv8.S:1193: Error: bad instruction `ldp x29,x30,[sp],#16'
crypto/aes/vpaes-armv8.S:1195: Error: bad instruction `ret'
make[4]: *** [Makefile:833: crypto/aes/vpaes-armv8.o] Error 1
make[3]: *** [Makefile:174: all] Error 2
gmake[2]: *** [CMakeFiles/project_libopenssl.dir/build.make:87: build/src/project_libopenssl-stamp/project_libopenssl-build] Error 2
gmake[1]: *** [CMakeFiles/Makefile2:83: CMakeFiles/project_libopenssl.dir/all] Error 2
gmake: *** [Makefile:91: all] Error 2
CMake Error at CMake/Utilities.cmake:75 (message):
  CMake step for libopenssl failed: 2
Call Stack (most recent call first):
  CMakeLists.txt:142 (build_dependency)

错误原因

SDK默认编译自带的OpenSSL子模块时,自动启用了树莓派4 ARMv8环境不兼容的AES指令集优化,导致汇编指令无法被编译器正确解析。

解决方法

方法1:使用系统预装的OpenSSL替代SDK自带子模块

这是最简便的方案,直接依赖系统已安装的OpenSSL库:

  1. 安装系统OpenSSL开发包:
    sudo apt-get update && sudo apt-get install libssl-dev
    
  2. 清空之前的build目录(如果有),重新执行cmake并指定使用系统OpenSSL:
    mkdir -p build && cd build
    cmake -DBUILD_GSTREAMER_PLUGIN=ON -DUSE_SYSTEM_OPENSSL=ON ..
    
  3. 执行编译和安装:
    make -j$(nproc)
    sudo make install
    

方法2:修改SDK配置,禁用OpenSSL的ARMv8 AES优化

如果必须使用SDK自带的OpenSSL,可通过修改CMake配置禁用相关优化:

  1. 进入SDK根目录,打开CMake/Utilities.cmake文件,找到构建libopenssl的代码段(通常在build_dependency函数中)。
  2. 在编译OpenSSL的CMAKE_ARGS中添加-DOPENSSL_NO_ARMV8_AES=ON,或者修改OpenSSL的Configure命令,添加no-asm参数:
    例如,将原Configure命令修改为:
    ./Configure linux-armv8 no-asm  # 64位系统
    # 或
    ./Configure linux-armv4 no-asm  # 32位系统
    
  3. 清空build目录,重新执行cmake和make:
    rm -rf build && mkdir build && cd build
    cmake -DBUILD_GSTREAMER_PLUGIN=ON ..
    make -j$(nproc)
    sudo make install
    

验证

编译完成后,可通过GStreamer插件测试推流功能:

gst-launch-1.0 v4l2src ! videoconvert ! x264enc ! kvssink stream-name="your-stream-name" access-key="your-access-key" secret-key="your-secret-key"

若能正常启动并推流,说明SDK构建成功。

内容的提问来源于stack exchange,提问作者Hatprob

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 12:37:39