iT邦幫忙

0

編譯PJSIP+FFmpeg時checking for enum AVPixelFormat... no

  • 分享至 

  • xImage

小弟最近再研究Android上的SIP視訊通話,但編譯上一直出現問題。
PJSIP使用官方的編譯包
FFmpeg使用GitHub上的編譯包

編譯工具:MacBook Pro
PJSIP版本:2.12.1
FFMpeg版本:5.1

FFmpeg編譯指令
export ANDROID_SDK_HOME=/Users//Library/Android/sdk/

export ANDROID_NDK_HOME=/Users//Library/Android/sdk/ndk/21.4.7075529

<ffmpeg編譯包路徑>/ffmpeg-android-maker.sh -abis=arm64-v8a -android=24

編譯完成後會產生arm64-v8a的lib內容如下
https://ithelp.ithome.com.tw/upload/images/20230131/20150361mvjh8ffXwg.png

PJSIP編譯設定(config_site.h)
https://ithelp.ithome.com.tw/upload/images/20230131/20150361lQeA8urOgw.png

PJSIP編譯指令
export ANDROID_NDK_ROOT=/Users//Library/Android/sdk/ndk/21.4.7075529

NDK_TOOLCHAIN_VERSION=clang TARGET=arm64-v8a APP_PLATFORM=android-24 ./configure-android --use-ndk-cflags --with-ffmpeg=<ffmpeg編譯後產生的lib路徑>

make dep && make clean && make

錯誤訊息
https://ithelp.ithome.com.tw/upload/images/20230131/20150361X5z2mTCnag.png
後來發現在.configure-andorid時就判斷avpixelformat為no了
https://ithelp.ithome.com.tw/upload/images/20230131/20150361aeuvZKURmE.png

這問題找了好一陣子,想請問有沒有大大有遇到類似的問題?是如何排除的?
跪求大大指點。
/images/emoticon/emoticon41.gif/images/emoticon/emoticon41.gif/images/emoticon/emoticon41.gif

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

0
JamesDoge
iT邦高手 1 級 ‧ 2023-02-24 09:27:37

這個問題可能是由於編譯FFmpeg時沒有包含AVPixelFormat所在的lib文件導致的。你可以嘗試在FFmpeg編譯時增加以下選項來解決此問題:

--enable-avresample

這個選項會包含libavresample lib文件,這個庫文件包含了AVPixelFormat。

如果仍然無法解決問題,你可以嘗試使用pkg-config命令檢查是否有缺少的lib文件。輸入以下命令:

pkg-config --modversion libavutil

如果顯示版本號,表示已安裝。否則,你需要安裝它。

pkg-config --list-all | grep avcodec

如果顯示類似以下的結果:

libavcodec libavcodec - FFmpeg audio/video codec library

則表示已安裝libavcodec lib文件。

你可以透過這個方法,檢查是否有缺少lib文件,進而找到解決辦法。

我要發表回答

立即登入回答