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í
×
včera 21:32 | Nasazení Linuxu

Canonical představuje nejnovější verzi chytré helmy DAQRI s Ubuntu pro rozšířenou realitu. K vidění bude příští týden v Barceloně na veletrhu Mobile World Congress 2017.

Ladislav Hagara | Komentářů: 0
včera 21:31 | Pozvánky

Pro zájemce o hlubší znalosti fungování operačních systémů připravila MFF UK nový předmět Pokročilé operační systémy, v rámci něhož se vystřídají přednášející nejen z řad pracovníků fakulty, ale dorazí také odborníci ze společností AVAST, Oracle, Red Hat a SUSE. Tento předmět volně navazuje na kurz Operační systémy ze zimního semestru, ale pokud máte praktické zkušenosti odjinud (například z přispívání do jádra Linuxu) a chcete si

… více »
Martin Děcký | Komentářů: 0
včera 21:30 | Pozvánky

Czech JBoss User Group Vás srdečně zve na setkání JBUG v Brně, které se koná ve středu 1. března 2017 v prostorách Fakulty Informatiky Masarykovy Univerzity v místnosti A318 od 18:00. Přednáší Tomáš Remeš a Matěj Novotný na téma CDI 2.0 - New and Noteworthy. Více informací na Facebooku a na Twitteru #jbugcz.

mjedlick | Komentářů: 0
20.2. 23:45 | Zajímavý software

Na blogu Qt bylo představeno Qt 3D Studio. Jedná se o produkt dosud známý pod názvem NVIDIA DRIVE™ Design Studio. NVIDIA jej věnovala Qt. Jedná se o několik set tisíc řádků zdrojového kódu. Qt 3D Studio bude stejně jako Qt k dispozici jak pod open source, tak pod komerční licencí. Ukázka práce s Qt 3D Studiem na YouTube.

Ladislav Hagara | Komentářů: 10
20.2. 17:50 | Komunita

Nadace The Document Foundation (TDF) zastřešující vývoj svobodného kancelářského balíku LibreOffice slaví 5 let od svého oficiálního vzniku. Nadace byla představena 28. září 2010. Formálně byla založena ale až 17. února 2012.

Ladislav Hagara | Komentářů: 0
20.2. 12:50 | Komunita

Mozilla.cz informuje, že dosud experimentální funkce Page Shot z programu Firefox Test Pilot (zprávička) se stane součástí Firefoxu. Page Shot je nástroj pro vytváření snímků webových stránek. Umí výběr oblasti, prvku stránky (např. odstavce), nebo uložení snímku celé stránky. Snímky lze ukládat na disk nebo nahrávat na server Mozilly. Nedávno bylo oznámeno, že se součástí Firefoxu stane Activity Stream.

Ladislav Hagara | Komentářů: 31
20.2. 04:10 | Nová verze

Po 10 týdnech vývoje od vydání Linuxu 4.9 (zprávička) oznámil Linus Torvalds, mj. již 20 let žijící v USA, vydání Linuxu 4.10 (LKML). Přehled nových vlastností a vylepšení například na Kernel Newbies a v Jaderných novinách (1, 2 a 3). Kódové jméno Linuxu 4.10 je Fearless Coyote.

Ladislav Hagara | Komentářů: 22
19.2. 15:55 | Zajímavý projekt

Vyzkoušet si příkazy a vyřešit několik úkolů lze na stránkách Commandline Challenge (CMD Challenge). Úkoly lze řešit různými způsoby, důležitý je výsledek. Zdrojové kódy jsou k dispozici na GitHubu pod licencí MIT.

Ladislav Hagara | Komentářů: 18
18.2. 17:35 | Bezpečnostní upozornění

Německá Bundesnetzagentur (obdoba českého ČTU) zakázala na německém území prodej panenky Cayla kvůli „špionáži“ dětí. Tato elektronická hračka obsahuje mikrofon, reproduktor a kameru a bezdrátové komunikační rozhraní, pomocí kterého se hračka připojuje na servery výrobce. Takovýmto způsobem může hračka pomocí umělé inteligence „odpovídat“ na dotazy dítěte. Hlavní problém bude ale asi někde jinde, podle prvotních zpráv může

… více »
Petr Tomášek | Komentářů: 34
17.2. 15:30 | Bezpečnostní upozornění

CSIRT.CZ upozorňuje, že bezpečnostní experti objevili nový typ malwaru, jenž cílí na open source e-commerce platformu Magento. Malware je zajímavý tím, že se jedná o první svého druhu, jehož kód zůstává skrytý v SQL databázi zasaženého e-shopu. Škodlivý kód je volán pomocí tzv. SQL trigerru, který je spouštěn při každém vytvoření objednávky v systému.

Ladislav Hagara | Komentářů: 6
Jak se stavíte k trendu ztenčování přenosných zařízení (smartphony, notebooky)?
 (13%)
 (2%)
 (72%)
 (3%)
 (10%)
Celkem 679 hlasů
 Komentářů: 61, poslední včera 13:06
Rozcestník

Dotaz: Kompilace FFMPEG knihovny na Linuxu pro Android

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

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.