LINUX.ORG.RU

Сборка OpenH264 для Android

 ,


0

1

Пытаюсь собрать OpenH264, чтобы потом использовать в Android приложении. Собираю как-то так:

PATH=~/Apps/AndroidSDK/tools:$PATH make OS=android NDKROOT=~/Apps/AndroidNDK TARGET=28

В итоге получаю ошибку линковки so-библиотеки:

/..//bin/ld: unrecognised emulation mode: armelf_linux_eabi
Supported emulations: elf_x86_64 elf32_x86_64 elf_i386 elf_iamcu elf_l1om elf_k1om i386pep i386pe
clang++: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [Makefile:241: libopenh264.so] Error 1

Насколько я понимаю, NDK зачем-то дёргает системный ld вместо правильного, он, разумеется, не умеет линковать под arm.

Как это исправить?

★★★★★

А linphone для Android собирается? Там можно включить сборку с (ms)openh264 (ms - их MediaStreamer).

gag ★★★★★
()

В рамках gstreamer openh264 собирается. Возьми оттуда либу. Например.

А вообще, лучше заморочиться с omx или ndk media — может быть есть возможность использовать аппаратное ускорение.

a1batross ★★★★★
()
Ответ на: комментарий от a1batross

В моём случае уже оказалось, что нет. Во всяком случае на одном девайсе работает только программный декодер Android (а аппаратный кажет зелёный экран), а на другом вообще ни один не работает.

KivApple ★★★★★
() автор топика
Ответ на: комментарий от KivApple

Ну да.

Попробовал с гстримера вытащить пребилденную либу? Учти, что они там собирают с -Os.

Посмотрел смотрел в твой скрипт, мне кажется такие вещи сначала лучше стоит вручную проверять. То что у тебя за ошибка похоже на сломанный эльф, будто линкер не тот притянулся.

a1batross ★★★★★
()
Ответ на: комментарий от KivApple

Я опять про гстример.

Его система сборки устроена так, что можно собрать конкретную либу(будь то ffmpeg или в твоём случае openh264) без сборки всего гстримера. Да, они там изобрели пакетный менеджер.

a1batross ★★★★★
()
Ответ на: комментарий от KivApple

{из скрипта}

--arch $arch --api 28

Ты уверен, что ты знаешь что делаешь? С такой сборкой у тебя будут проблемы с запуском на всех девайсах <28.

Озвученная проблема очень похоже, что на старом девайсе загружается библиотека.

mono ★★★★★
()
Последнее исправление: mono (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.