abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
eParkomat, startup z ČR, postoupil mezi finalisty evropského akcelerátoru ChallengeUp!
Robot na pivo mu otevřel dveře k opravdovému byznysu
Internet věcí: Propojený svět? Už se to blíží...
dnes 00:10 | Nová verze

Byla vydána verze 4.7 redakčního systému WordPress. Kódové označením Vaughan bylo vybráno na počest americké jazzové zpěvačky Sarah "Sassy" Vaughan. Z novinek lze zmínit například novou výchozí šablonu Twenty Seventeen, náhledy pdf souborů nebo WordPress REST API.

Ladislav Hagara | Komentářů: 0
včera 12:00 | Zajímavý projekt

Projekt Termbox umožňuje vyzkoušet si linuxové distribuce Ubuntu, Debian, Fedora, CentOS a Arch Linux ve webovém prohlížeči. Řešení je postaveno na projektu HyperContainer. Podrobnosti v často kladených dotazech (FAQ). Zdrojové kódy jsou k dispozici na GitHubu [reddit].

Ladislav Hagara | Komentářů: 13
včera 11:00 | Bezpečnostní upozornění

Byly zveřejněny informace o bezpečnostní chybě CVE-2016-8655 v Linuxu zneužitelné k lokální eskalaci práv. Chyba se dostala do linuxového jádra v srpnu 2011. V upstreamu byla opravena minulý týden [Hacker News].

Ladislav Hagara | Komentářů: 1
5.12. 22:00 | Komunita

Přibližně před měsícem bylo oznámeno, že linuxová distribuce SUSE Linux Enterprise Server (SLES) běží nově také Raspberry Pi 3 (dokumentace). Obraz verze 12 SP2 pro Raspberry Pi 3 je ke stažení zdarma. Pro registrované jsou po dobu jednoho roku zdarma také aktualizace. Dnes bylo oznámeno, že pro Raspberry Pi 3 je k dispozici také nové openSUSE Leap 42.2 (zprávička). K dispozici je hned několik obrazů.

Ladislav Hagara | Komentářů: 5
5.12. 06:00 | Zajímavý software

OMG! Ubuntu! představuje emulátor terminálu Hyper (GitHub) postavený na webových technologiích (HTML, CSS a JavaScript). V diskusi k článku je zmíněn podobný emulátor terminálu Black Screen. Hyper i Black Screen používají framework Electron, stejně jako editor Atom nebo vývojové prostředí Visual Studio Code.

Ladislav Hagara | Komentářů: 49
5.12. 06:00 | Zajímavý článek

I letos vychází řada ajťáckých adventních kalendářů. QEMU Advent Calendar 2016 přináší každý den nový obraz disku pro QEMU. Programátoři se mohou potrápit při řešení úloh z kalendáře Advent of Code 2016. Kalendáře Perl Advent Calendar 2016 a Perl 6 Advent Calendar přinášejí každý den zajímavé informace o programovacím jazyce Perl. Stranou nezůstává ani programovací jazyk Go.

Ladislav Hagara | Komentářů: 10
3.12. 16:24 | Nová verze

Byla vydána Mageia 5.1. Jedná se o první opravné vydání verze 5, jež vyšla v červnu loňského roku (zprávička). Uživatelům verze 5 nepřináší opravné vydání nic nového, samozřejmě pokud pravidelně aktualizují. Vydání obsahuje všechny aktualizace za posledního téměř půldruhého roku. Mageia 5.1 obsahuje LibreOffice 4.4.7, Linux 4.4.32, KDE4 4.14.5 nebo GNOME 3.14.3.

Ladislav Hagara | Komentářů: 17
3.12. 13:42 | Pozvánky

V Praze probíhá konference Internet a Technologie 16.2, volné pokračování jarní konference sdružení CZ.NIC. Konferenci lze sledovat online na YouTube. K dispozici je také archiv předchozích konferencí.

Ladislav Hagara | Komentářů: 0
2.12. 22:44 | Komunita

Joinup informuje, že Mnichov používá open source groupware Kolab. V srpnu byl dokončen dvouletý přechod na toto řešení. V provozu je asi 60 000 poštovních schránek. Nejenom Kolabu se věnoval Georg Greve ve své přednášce Open Source: the future for the European institutions (SlideShare) na konferenci DIGITEC 2016, jež proběhla v úterý 29. listopadu v Bruselu. Videozáznam přednášek z hlavního sálu je ke zhlédnutí na Livestreamu.

Ladislav Hagara | Komentářů: 26
2.12. 15:30 | Zajímavý projekt

Společnost Jolla oznámila v příspěvku Case study: Sailfish Watch na svém blogu, že naportovala Sailfish OS na chytré hodinky. Využila a inspirovala se otevřeným operačním systémem pro chytré hodinky AsteroidOS. Použita je knihovna libhybris. Ukázka ovládání hodinek na YouTube.

Ladislav Hagara | Komentářů: 18
Kolik máte dat ve svém domovském adresáři na svém primárním osobním počítači?
 (32%)
 (24%)
 (29%)
 (7%)
 (5%)
 (3%)
Celkem 777 hlasů
 Komentářů: 50, poslední 29.11. 15:50
Rozcestník
Reklama

Dotaz: Kompilace FFMPEG knihovny na Linuxu pro Android

14.7.2015 22:10 Pepa
Kompilace FFMPEG knihovny na Linuxu pro Android
Přečteno: 643×

Dobrý den,

chtěl bych se zeptat, jestli nemáte někdo zkušenosti s kompilací FFMPEG knihovny?

 

V mobilní aplikaci využíváme tuto knihovnu, ale bohužel máme problém s Androidem 5.0.

Dostaneme tento error: "error: only position independent executables (PIE) are supported."

Takže knihovna kterou využíváme nemá tyto flagy: "-fPIE -pie".

 

Zkoušel jsem stáhnout zkompilovanou knihovnu z:

 

https://github.com/guardianproject/android-ffmpeg-java a z https://github.com/hiteshsondhi88/ffmpeg-android (omlouvám se, nejdou mi vložit linky)

 

ale tato knihovna zase nemá zapnutý libmp3lame encoder (parametr --enable-libmp3lame).

Bohužel se nám tu knihovnu po mnoha útrapách nedaří zkompilovat.

 

Byl by někdo ochotný provést kompilaci této knihovny jak s parametry "-fPIE -pie", tak i s "--enable-libmp3lame". Klidně i za finanční odměnu!

Děkuji za každou radu!

Odpovědi

15.7.2015 12:27 chrono
Rozbalit Rozbalit vše Re: Kompilace FFMPEG knihovny na Linuxu pro Android
Jeden fork pre ten ffmpeg-android repozitár obsahuje aj podporu pre lame (takže sa tam dá inšpirovať), každopádne ja osobne by som si urobil klon toho originálneho repozitára a nechal by som tam len to, čo by som potreboval (a pridal by som tam tú podporu pre lame).
15.7.2015 12:59 Pepa
Rozbalit Rozbalit vše Re: Kompilace FFMPEG knihovny na Linuxu pro Android
Díky za odpověď, ale nedaří se nám tam přidat právě tu podporu pro lame. Dokázal byste to udělat? Klidně i za nějakou odměnu.
15.7.2015 17:07 chrono
Rozbalit Rozbalit vše Re: Kompilace FFMPEG knihovny na Linuxu pro Android
Čiže ten fork https://github.com/guofengzh/ffmpeg-android, ktorý obsahuje aj podporu pre lame, sa nedá skompilovať? (a ako som už napísal, ideálne by bolo dať tam len to, čo je potrebné, pretože, okrem lame, tam ten fork pridáva kopec iných knižníc)
15.7.2015 18:53 Pepa
Rozbalit Rozbalit vše Re: Kompilace FFMPEG knihovny na Linuxu pro Android

Ten člověk zkoušel tento fork: https://github.com/guofengzh/ffmpeg-android/tree/feature/feature-libmp3 a ten mu nešel. Můžeš to zkusit ty? Klidně ať to obsahuje další knihovny, ať se to zbytečně nekomplikuje.

15.7.2015 20:42 chrono
Rozbalit Rozbalit vše Re: Kompilace FFMPEG knihovny na Linuxu pro Android
To, že to nešlo nie je nikdy dobrý popis chyby a tie zbytočné knižnice (a rôzne veci, ktoré by sa v tej knižnici mohli zakázať) to zbytočne komplikujú). ;)

Každopádne prvý problém s tým repozitárom je ten, že sa zmenila adresa, na ktorej sa nachádza libvpx (stačí tú adresu opraviť a synchronizovať submoduly).

Druhý problém je, že cieľom toho projektu je vyprodukovať ffmpeg program, takže je tam zakázané generovanie knižníc (stačí zmeniť --disable-shared na --enable-shared). Ďalší problém z toho vyplývajúci je, že sa tam požíva prepínač -pie (a ten má zmysel len pri programoch, knižnica sa kvôli tomu nebude dať zlinkovať) a stačí v súbore settings.sh upraviť CFLAGS a LDFLAGS (treba tam pridať -fPIC a odstrániť -pie).

Potom sa to už bude dať skompilovať, ale ako som už písal, treba povoliť len to, čo sa naozaj používa, údržba tak bude jednoduchšia.

Mimochodom je možné vygenerovať len statické knižnice a z nich potom urobiť jednu zdielanú knižnicu, ktorá ich bude obsahovať (podobne, ako to urobili napr. tu)
16.7.2015 09:18 Pepa
Rozbalit Rozbalit vše Re: Kompilace FFMPEG knihovny na Linuxu pro Android
Já jsem to bohužel nezkoušel (v Linuxu nedělám), psalo nám to několik lidí co se o to pokoušelo. Vám se to tedy povedlo zkompilovat? I s parametrem --enable=libmp3lame? Mohl byste tu zkompilovanou knihovnu někam nahrát? Kdyby to fungovalo, tak bychom se Vám mohli alespoň nějak peněžně odměnit :)
16.7.2015 10:57 chrono
Rozbalit Rozbalit vše Re: Kompilace FFMPEG knihovny na Linuxu pro Android
Ak sa použije tá vetva feature/feature-libmp3 stačí upraviť settings.sh (treba tam do CFLAGS a LDFLAGS pridať -fPIC a z LDFLAGS treba odstrániť -pie) a vo ffmpeg_build.sh stačí zmeniť --disable-shared na --enable-shared a skompiluje sa to bez problémov. V settings.sh sa dá nastaviť, pre aké architektúry sa to má kompilovať (kompiluije sa to pre všetky architektúry, ktoré sú v premennej SUPPORTED_ARCHITECTURES).

Mimochodom tá vetva feature/feature-libmp3 môže byť dosť stará (je pre ANDROID_API 9 a NDK_TOOLCHAIN_ABI 4.8) master je pre novšiu verziu (ANDROID_API 19 a NDK_TOOLCHAIN_ABI 4.9), takže možno budete chcieť práve master verziu (tam ale treba opraviť odkaz na libvpn repozitár a použiť git submodule sync)

PS: Ffmpeg štandardne nie je jedna knižnica (ak sa kompilujú všetky, tak ich je tuším 8), ale je možné urobiť to, čo urobili v tom repozitári, na ktorý som odkazoval v predchádzajúcom príspevku (a teda, že sa skompilujú len statické verzie tých knižníc a z nich sa potom urobí jedna zdielaná knižnica, v tom odkazovanom súbore ide o funkciu build_one, samozrejme to treba upraviť).
16.7.2015 12:15 Pepa
Rozbalit Rozbalit vše Re: Kompilace FFMPEG knihovny na Linuxu pro Android
Díky za info! Ale já bohužel nemám teď kde to zkompilovat a zase tak se v tom nevyznám. Mohl bys to zkusit zkompilovat tedy, aby z toho byla jedna knihovna? Výsledná knihovna by měla běžet pro Android 4.0 a výše. ANDROID_API 19 je myslím ok, nebo zkusit 21. Architektura stačí pouze ARM. Oni tam jsou už dostupné prebuilt binaries a tam je složka armeabi-v7a a v tom je zkompilovaná tak knihovna. Když to zkusím na Androidu, tak je to ok (i na Androidu 5.0), ale chybí tam ten encoder libmp3lame. Mohl bys to tedy zkusit zkompilovat i s tím parametrem (--enable=libmp3lame) a možná tedy pro tu nejnovější verzi (z master?). Seš jeden z mála co tomu opravdu rozumí a dokáže s tím něco udělat :) A určitě by se ta knihovna hodila více lidem. Díky moc!
16.7.2015 16:03 chrono
Rozbalit Rozbalit vše Re: Kompilace FFMPEG knihovny na Linuxu pro Android
Vy potrebujete program ffmpeg, alebo knižnice libavcodec,libavdevice...? (pretože tá chybová hláška v pôvodnej otázke by ukazovala na to, že ide o program a nie knižnice, pretože, ako som už písal, pri knižnici sa PIE nepoužíva)

Ak potrebujete program, tak stačí opraviť ten odkaz na libvpx a prípadne zmeniť architektúru (momentálne tam je len armeabi, ale nie je problém to v tom settings.sh zmeniť na armeabi-v7a, ,rozdiel je ten, že armeabi podporuje aj staršie arm architektúry).

Mimochodom kompiloval som to v KVM a použil som minimálnu verziu Debian (bez grafického prostredia). Stačí potom len nainštalovať tie balíky, na ktoré odkazuje návod k FFmpeg-Android, stiahnuť a nainštalovať ANDROID-NDK a nastaviť premennú prostredia (ako sa píše v tom návode).
16.7.2015 16:24 Pepa
Rozbalit Rozbalit vše Re: Kompilace FFMPEG knihovny na Linuxu pro Android
Potřebujeme program ffmpeg (takže pouze soubor "ffmpeg"). Architektura může být klidně armeabi-v7a (nebo je problém to udělat pro obě pro jistotu? Aby to prostě fungovalo i na Androidech 4.0). Můžeš tedy někam nahrát ten zkompilovanej program ffmpeg? Že bych to tedy vyzkoušel, jestli se mi ta konverze s tím libmp3lame podaří na Androidu. Moc díky!
16.7.2015 16:42 mankind_boost | skóre: 4 | Hliněná chýše, 5482/3
Rozbalit Rozbalit vše Re: Kompilace FFMPEG knihovny na Linuxu pro Android
No to je pak těžký, když v dotazu se ptáte na knihovnu :D
16.7.2015 16:57 Pepa
Rozbalit Rozbalit vše Re: Kompilace FFMPEG knihovny na Linuxu pro Android
to bylo myšleno jako program ffmpeg :-D povedlo se Vám tedy program ffmpeg zkompilovat s tou podporou mp3lame? :)
16.7.2015 17:10 chrono
Rozbalit Rozbalit vše Re: Kompilace FFMPEG knihovny na Linuxu pro Android
Skompilovať to ako program je jednoduché, tu je skompilovaný program ffmpeg, každopádne je potrebné to skompilovať len s tým, čo sa použije (pretože teraz má ten program 19MB).
16.7.2015 19:12 Pepa
Rozbalit Rozbalit vše Re: Kompilace FFMPEG knihovny na Linuxu pro Android
Super! Jste bůh :-D Jen teda ještě jeden problém. Na Androidu 5.0 to funguje, ale na Androidu 4.2 ne. Dostanu tento error:

soinfo_relocate(linker.cpp:975): cannot locate symbol "log2" referenced by "/app_bin/ffmpeg"...CANNOT LINK EXECUTABLE

Trošku jsem Googlil a asi to bude potřeba zkompilovat s menším ANDROID API (15 nebo 16 nejlépe). Můžete to zkusit? Případně zkusit ještě něco vygooglit jestli jsem to našel správně.

(P.S: Nahrál jsem pro srovnání (třeba se bude hodit) na Pastebin původní konfiguraci, která nám funguje na Androidech 4.0 - 4.4, ale ne právě na Androidu 5.0 http://pastebin.com/5N5svnxy )

Mělo by ale stačit tedy to zkompilovat s menším API snad, můžete to ještě zkusit? Mockrát děkuji.
16.7.2015 20:35 chrono
Rozbalit Rozbalit vše Re: Kompilace FFMPEG knihovny na Linuxu pro Android
api 14 pre Android 4.0 a api 17 pre Android 4.2
16.7.2015 21:46 Pepa
Rozbalit Rozbalit vše Re: Kompilace FFMPEG knihovny na Linuxu pro Android
Nechci už otravovat, ale bohužel to nepomohlo. Zkoušel jsem to na Androidu 5.0 a 4.4 (to funguje, takže by to mělo jít od API 19), ale 4.2 ne. Našel jsem toto: http://stackoverflow.com/questions/25932791/error-executing-native-application-compiled-with-ndk-in-android-cannot-locate , což by mohlo řešit ten problém. Jakou verzi NDK používáte? Můžete zkusit použít verzi 14 (případně v tom příspěvku mají android-3, takže možná to bude nejlepší). Omlouvám se, že pořád otravuji :)
16.7.2015 22:02 chrono
Rozbalit Rozbalit vše Re: Kompilace FFMPEG knihovny na Linuxu pro Android
Nefunguje ani tá api 14 verzia? (pretože práve také api bolo použité v tom príkaze na pastebin)
16.7.2015 22:08 chrono
Rozbalit Rozbalit vše Re: Kompilace FFMPEG knihovny na Linuxu pro Android
Inak ani api-14 a ani api-17 verzia neobsahuje odkaz na log2 funkciu (overiť sa to dá napr. pomocou objdump -T ffmpeg | grep log2), takže ak to stále píše tú chybu, problém nie je ten program (možno sa stále používa tá api-19 verzia).
17.7.2015 09:15 Pepa
Rozbalit Rozbalit vše Re: Kompilace FFMPEG knihovny na Linuxu pro Android
Sorry, asi jsem už večer udělal chybu a zkoušel nějakou jinou verzi. Teď jsem to rychle zkoušel a zdá se, že ta API-14 verze funguje dobře! Super:) Ještě vyzkouším na nějakých zařízeních a dám vědět, jak jsem dopadl :)
17.8.2015 16:05 Pepa
Rozbalit Rozbalit vše Re: Kompilace FFMPEG knihovny na Linuxu pro Android
Dobrý den,

chci se zeptat, jestli máte pořád v PC repozitář s Ffmpeg knihovnou spolu s nastavením pro předchozí komplikaci? Bylo by možné tu knihovnu zkompilovat i pro architekturu Intel Atom (x86)? Případně někam nahrát celý ten repozitář s nastavením, abychom se o kompilaci mohl pokusit? Mockrát děkuji!
17.8.2015 19:47 chrono
Rozbalit Rozbalit vše Re: Kompilace FFMPEG knihovny na Linuxu pro Android
Tie súbory už nemám (mal som pre to urobený virtuálny stroj KVM s Debian, ale som si nepamätal, na čo ten Debian mám, tak som ho pred pár dňami vymazal). :)

Každopádne, ako som som už písal, skompilovať to ako program je jednoduché, stačí opraviť ten odkaz na repozitár s libvpx.

Príkazy na naklonovanie toho repozitára a opravu libvpx:
git clone https://github.com/guofengzh/ffmpeg-android.git
cd ./ffmpeg-android
git config --file=.gitmodules submodule.libvpx.url https://chromium.googlesource.com/webm/libvpx
git submodule sync
git submodule update --init
Potom už len stačí nastaviť architektúru v súbore settings.sh do premennej SUPPORTED_ARCHITECTURES (podporované sú architektúry armeabi, armeabi-v7a, armeabi-v7a-neon a x86). Tých architektúr tam môže byť aj viac, postupne sa skompilujú všetky (pri testovaní by som tam ale mal len jednu, skompiluje sa to tak rýchlejšie). V tom súbore settings.sh sa tiež nastavuje Android ABI.

Keď je všetko nastavené, stačí spustiť ./android_build.sh a všetko sa to skompiluje.
18.8.2015 08:21 Pepa
Rozbalit Rozbalit vše Re: Kompilace FFMPEG knihovny na Linuxu pro Android
Díky! Vyzkouším to podle toho Vašeho návodu a dám vědět. Ještě se chci zeptat, jestli to bude obsahovat libmp3lame encoder? Nebo budu muset využít tento fork https://github.com/guofengzh/ffmpeg-android/tree/feature/feature-libmp3 a postup bude stejný?
18.8.2015 12:20 chrono
Rozbalit Rozbalit vše Re: Kompilace FFMPEG knihovny na Linuxu pro Android
Priamo ten repozitár, obsahuje podporu pre lame, zabudol som ale, že treba spustiť aj ./init_update_libs.sh (ten skript stiahne lame a niekoľko ďalších knižníc).
18.8.2015 19:39 Pepa
Rozbalit Rozbalit vše Re: Kompilace FFMPEG knihovny na Linuxu pro Android
Zkoušel jsem to zkompilovat dle Vašeho návodu, vše prošlo, ale při kompilaci jsme dostal error: http://pastebin.com/8EAHDKwa . Netušíte, kde může být problém?

Nemohu, ale na Linuxu co zde mám provést tento příkaz z instrukcí na webu:

sudo apt-get --quiet --yes install build-essential git autoconf libtool pkg-config gperf gettext yasm

Je možné, že je problém v tom? Jinak jsem do CFLAGS a LDFLAGS přidal -fPIC a odstranil -pie. Změnil --disable-shared na --enable-shared. Využívám tedy master repozitář https://github.com/guofengzh/ffmpeg-android/tree/master . Všechny Vámi popsané příkazy prošli korektně.
18.8.2015 20:14 chrono
Rozbalit Rozbalit vše Re: Kompilace FFMPEG knihovny na Linuxu pro Android
Áno, treba nainštalovať tie nástroje.

Ak je jediným cieľom vygenerovanie toho programu, tak netreba meniť vôbec nič, -pie je v takom prípade tá správna voľba.

Ten návod o pár príspevkov vyššie je presne to, čo treba urobiť, len tam chýba to spustenie skriptu ./init_update_libs.sh (pred samotnou kompiláciou).
19.8.2015 21:40 Pepa
Rozbalit Rozbalit vše Re: Kompilace FFMPEG knihovny na Linuxu pro Android
Pořád se mi nedaří zkompilovat program pro x86. Pro ARM je vše OK (všechny ty architektury), ale u x86 dostanu tuto chybu: http://pastebin.com/8jxKqRn9 asi netušíte čím by to mohlo být? Mám právě distribuci Mageia 32-bitová. Už jsem začal stahovat Debian, tak to zkusím vše v něm, ale aby to nedopadlo podobně. Jestli se pro to x86 nemusí ještě někde něco změnit?

Myslíte, že to bude kompilátorem? U té Mageie není právě "build essentials", takže jsem musel provést jiné příkazy. Asi ten Debian bude nejjistější že?
19.8.2015 22:47 chrono
Rozbalit Rozbalit vše Re: Kompilace FFMPEG knihovny na Linuxu pro Android
Problém je, že sa to pokúša kompilovať neon verziu a tá má zmysel len pri arm architektúre.
19.8.2015 22:56 chrono
Rozbalit Rozbalit vše Re: Kompilace FFMPEG knihovny na Linuxu pro Android
Mimochodom nie je prekvapujúce, že to kompiluje arm verziu, kedže, z nejakého dôvodu, sa to pokúša kompilovať pre armv7-android-gcc.
19.8.2015 23:03 Pepa
Rozbalit Rozbalit vše Re: Kompilace FFMPEG knihovny na Linuxu pro Android
Aha. Díky za info. Máš tušení co s tím? Jak to změnit? Nebo zkusit nějaký jiný repozitář?
19.8.2015 23:27 chrono
Rozbalit Rozbalit vše Re: Kompilace FFMPEG knihovny na Linuxu pro Android
Problém je libvpx.sh. Možno pomôže upraviť to na:
#!/bin/bash

. abi_settings.sh $1 $2 $3

pushd libvpx

make clean

case $1 in
  armeabi | armeabi-v7a | armeabi-v7a-neon)
    TARGET=armv7-android-gcc
  ;;
  x86)
    TARGET=x86-android-gcc
  ;;
esac

./configure \
  --target="$TARGET" \
  --disable-examples \
  --sdk-path=${ANDROID_NDK} \
  --disable-runtime-cpu-detect \
  --prefix="${TOOLCHAIN_PREFIX}" || exit 1

make -j${NUMBER_OF_CORES} install || exit 1

popd
(každopádne pre armeabi by sa asi malo použiť armv6, konfiguračný skript pre libvpx ale nepodporuje armv6-android-gcc; pravdepodobne to ali príliš nevadí, keďže takmer vždy sa aj tak kompiluje pre armeabi-v7a)
19.8.2015 23:29 chrono
Rozbalit Rozbalit vše Re: Kompilace FFMPEG knihovny na Linuxu pro Android
A toto je presne ten dôvod, kvôli ktorému som písal, že sa má upraviť kompilácia tak, aby sa tam kompilovalo len to, čo sa používa (bolo by to menšie, rýchlejšie by sa to kompilovalo a nebol by problém so zbytočnými knižnicami). ;)
20.8.2015 00:10 chrono
Rozbalit Rozbalit vše Re: Kompilace FFMPEG knihovny na Linuxu pro Android
Treba tam urobiť ešte jednu zmenu (inak sa pri x86 bude používať nesprávny kompilátor pre assembler)
#!/bin/bash

. abi_settings.sh $1 $2 $3

pushd libvpx

make clean

case $1 in
  armeabi | armeabi-v7a | armeabi-v7a-neon)
    TARGET=armv7-android-gcc
    AS_BIN=auto
  ;;
  x86)
    TARGET=x86-android-gcc
    AS_BIN=yasm
  ;;
esac

./configure \
  --target="$TARGET" \
  --as="$AS_BIN" \
  --disable-examples \
  --sdk-path=${ANDROID_NDK} \
  --disable-runtime-cpu-detect \
  --prefix="${TOOLCHAIN_PREFIX}" || exit 1

make -j${NUMBER_OF_CORES} install || exit 1

popd
a v systéme musí byť nainštalovaný yasm
20.8.2015 09:22 Pepa
Rozbalit Rozbalit vše Re: Kompilace FFMPEG knihovny na Linuxu pro Android
Díky za info. Dneska to vyzkouším. Jinak Vám se to povedlo tedy zkompilovat? Mohl byste mi zase někam nahrát ten výstup?
20.8.2015 11:23 chrono
Rozbalit Rozbalit vše Re: Kompilace FFMPEG knihovny na Linuxu pro Android
Kompiloval som len tú knižnicu libvpx.
20.8.2015 12:33 Pepa
Rozbalit Rozbalit vše Re: Kompilace FFMPEG knihovny na Linuxu pro Android
Ta úprava pomohla. Ale dostal jsem ještě jeden error: http://pastebin.com/a5WrLFQJ . Zkoušel jsem něco hledat:

http://stackoverflow.com/questions/28010753/android-ndk-returns-an-error-undefined-reference-to-rand http://stackoverflow.com/questions/27338318/cannot-load-library-reloc-library1285-cannot-locate-rand http://stackoverflow.com/questions/27091001/how-to-use-mkfifo-using-androids-ndk/27093163#27093163

Ale nevím co přesně kde upravit. Nechci tam udělat nějakou chybu. Tušíš co s tím? Co upravit?
20.8.2015 12:51 Pepa
Rozbalit Rozbalit vše Re: Kompilace FFMPEG knihovny na Linuxu pro Android
Možná zkusit starší NDK? Nebo Android API?
20.8.2015 13:54 chrono
Rozbalit Rozbalit vše Re: Kompilace FFMPEG knihovny na Linuxu pro Android
To je ďalší problém s libvpx. Malo by stačiť zmeniť libvpx_build.sh na:
#!/bin/bash

. abi_settings.sh $1 $2 $3

pushd libvpx

make clean

case $1 in
  armeabi | armeabi-v7a | armeabi-v7a-neon)
    TARGET=armv7-android-gcc
    AS_BIN=auto
    ASFLAGS=""
  ;;
  x86)
    TARGET=x86-android-gcc
    AS_BIN=yasm
    ASFLAGS="-D__ANDROID__"
  ;;
esac

ASFLAGS="$ASFLAGS" ./configure \
  --target="$TARGET" \
  --as="$AS_BIN" \
  --disable-examples \
  --sdk-path=${ANDROID_NDK} \
  --disable-runtime-cpu-detect \
  --prefix="${TOOLCHAIN_PREFIX}" || exit 1

make -j${NUMBER_OF_CORES} install || exit 1

popd
PS: Ak nie je potrebné, aby ten program podporoval aj vpx, tak stačí zakázať kompilovanie tej knižnice a jej používanie pre ffmpeg (stačí vymazať spúšťanie kompilovania tej knižnici v android_build.sh a, hlavne, treba zmeniť --enable-libvpx na --disable-libvpx v súbore ffmpeg_build.sh).
18.8.2015 21:45 mankind_boost | skóre: 4 | Hliněná chýše, 5482/3
Rozbalit Rozbalit vše Re: Kompilace FFMPEG knihovny na Linuxu pro Android
Vždyť to tam samo přesně píše, co udělat! Bez instalace těch nástrojů to prostě nejde.

"Nemohu, ale na Linuxu co zde mám provést tento příkaz z instrukcí na webu: "
Nejsem si jist, co tahle věta znamená; předpokládám, že ho nelze provést. Pro řešení potřebujeme víc info (co to vypíše).
18.8.2015 22:24 Pepa
Rozbalit Rozbalit vše Re: Kompilace FFMPEG knihovny na Linuxu pro Android
Ano, jen jsem v Linuxu nedělal x let, tak jsem nevěděl jak to sudo (nebo přesněji instalace balíčku) funguje a zrovna mám distribuci, která nepodporuje apt-get a je to potřeba udělat jinak. A ještě mi tam chyběl balíček build-essential a pkg-config, tak jsem musel hledat, jak to zase dostat do distribuce co mám na testy atd.

Ale jinak se mi podařilo zkompilovat ffmpeg pro ARM architekturu. Teď zkusím x86. Díky za přesný návod a popis! Snad se to bude hodit více lidem.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267   www.czech-server.cz
© 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.