FMUSER Wirless lähettää videota ja ääntä helpommin!
es.fmuser.org
it.fmuser.org
fr.fmuser.org
de.fmuser.org
af.fmuser.org -> Afrikaans
sq.fmuser.org -> albania
ar.fmuser.org -> arabia
hy.fmuser.org -> Armenian
az.fmuser.org -> azerbaidžanilainen
eu.fmuser.org -> baski
be.fmuser.org -> valkovenäläinen
bg.fmuser.org -> Bulgaria
ca.fmuser.org -> katalaani
zh-CN.fmuser.org -> kiina (yksinkertaistettu)
zh-TW.fmuser.org -> Kiina (perinteinen)
hr.fmuser.org -> kroatia
cs.fmuser.org -> tšekki
da.fmuser.org -> tanska
nl.fmuser.org -> Dutch
et.fmuser.org -> viro
tl.fmuser.org -> filippiiniläinen
fi.fmuser.org -> suomi
fr.fmuser.org -> French
gl.fmuser.org -> galicialainen
ka.fmuser.org -> Georgian
de.fmuser.org -> saksa
el.fmuser.org -> Greek
ht.fmuser.org -> Haitin kreoli
iw.fmuser.org -> heprea
hi.fmuser.org -> Hindi
hu.fmuser.org -> Unkari
is.fmuser.org -> islanti
id.fmuser.org -> indonesia
ga.fmuser.org -> irlantilainen
it.fmuser.org -> Italian
ja.fmuser.org -> japani
ko.fmuser.org -> korea
lv.fmuser.org -> latvia
lt.fmuser.org -> Liettua
mk.fmuser.org -> makedonia
ms.fmuser.org -> malaiji
mt.fmuser.org -> maltalainen
no.fmuser.org -> Norja
fa.fmuser.org -> persia
pl.fmuser.org -> puola
pt.fmuser.org -> portugali
ro.fmuser.org -> Romania
ru.fmuser.org -> venäjä
sr.fmuser.org -> serbia
sk.fmuser.org -> slovakki
sl.fmuser.org -> Slovenian
es.fmuser.org -> espanja
sw.fmuser.org -> swahili
sv.fmuser.org -> ruotsi
th.fmuser.org -> Thai
tr.fmuser.org -> turkki
uk.fmuser.org -> ukraina
ur.fmuser.org -> urdu
vi.fmuser.org -> Vietnam
cy.fmuser.org -> kymri
yi.fmuser.org -> Jiddiš
Äskettäin tehnyt Android-projektin käyttämään koodaus- ja dekoodaustoimintoa. Yleiset vaatimukset ovat: ota video kameran läpi, poimi sitten kehykset, luo lyhyt video ja käännä video. Alussa se käyttää suoraan H.264-koodausmuotoa käyttämättä MP4-pakkauspakkauksia. Näiden toimintojen suorittamisen jälkeen minusta MP4-muoto on yhteensopivampi kaikkien mallien kanssa ja vähentää virheitä. Otetaan ilmeinen esimerkki: kun Android on kovakoodattu, käytetään usein mediacodecin ja mediaextractorin yhdistelmää. Jos kuitenkin käytät H.264-alastonta videotiedostoa, mediaextractorin setSource-toiminto ilmoittaa poikkeuksesta. Se ei voi jäsentää videotiedostoa joissakin malleissa (kuten Meizu Note2, järjestelmä on 5.1).
Saatuaan yleiset vaatimukset, käytimme aluksi ffmpegiä videokoodekin, ns. Ohjelmistokoodekin tekemiseen. Hitaasta käsittelynopeudesta ja nopean näytön tarpeesta dekoodauksen jälkeen järjestelmällä ei voida saavuttaa haluttua vaikutusta (ffmpeg-videodekoodaus ja tallennettu JPEG-esimerkkinä: https://github.com/xiaoxiaoqingyi/ffmpeg-android-video-decoder )。 Mutta sillä on myös joitain etuja, kuten hyvä yhteensopivuus ja värinmuunnos. Loppujen lopuksi se ei ole laitteistokoodekki (niin monta mallia Kiinassa, tiedätkö). Toiseksi, ffmpeg voi lähettää määritetyn kehyksen, kun taas mediacodec ei voi antaa määritettyä kehystä. Yhden kehyksen purkamiseksi sinun on syötettävä useita kehyksiä dekooderiin. Tällä hetkellä en ole vieläkään löytänyt järjestelmää kehyksen syöttämiseksi ja kehyksen ratkaisemiseksi, jota Jumala tietää ohjaavan.
Jos ohjelmistokoodekki ei sovi, voimme harkita vain laitteistokoodekin käyttöä. Muutama päivä sitten osallistuin Tencent 2017live live -kehittäjien konferenssiin ja sain tietää, että suurin osa suorasta lähetyksestä käyttää nyt laitteistoa koodaamiseen ja purkamiseen. Juuri sanottu, jotkut mallit eivät voi käyttää mediaextractoria jäsentämään H.264-tiedostoja. Jotta ne olisivat yhteensopivia useimpien mallien kanssa, heidän on jäsennettävä ne itse. Analysoimalla H.264-tiedoston jokaisen tavun, he voivat erottaa kunkin kehyksen sijainnin ja minkä tyyppisen kehyksen se on. Tämän vaatimuksen saavuttamiseksi ensinnäkin kameralta saadut tiedot asetetaan nv21-muotoon, jos kameraa käytetään, mutta jotkut ihmiset käyttävät Camera2: ta ja muoto on kuva. Riippumatta siitä, mikä muoto se on, se on muunnettava yuv420sp- tai yuv420p-muotoon (Huomaa: transkoodauksessa on parempi käyttää JNI: tä, käyttää C / C + + muodon muuntamiseen, tehokkuus on monta kertaa suurempi), jotta se voidaan koodata mediacodecilla ja tallentaa sitten H.264-tiedosto. Kun luot mediacodec-esiintymää, sinun on kiinnitettävä tarvittavien parametrien asettamisen lisäksi huomiota myös joihinkin näkökohtiin, kuten mikä kooderi valitaan. Yleensä valitset seuraavat:
MediaCodec.createEncoderByType ("video / avc");
Tämä ei näytä olevan ongelma. Perusperiaatteena on saada paras kooderi, ensimmäinen Android-järjestelmän kooderirekisteristä, joka on yleensä laitteiston dekoodaus (mediacodec voi myös soittaa ohjelmistokoodekille). Itse asiassa kooderin luominen tällä tavalla ei ole kovin luotettavaa. Vaikka virallisilla verkkosivustoilla sitä suositellaan, monissa kotimaisissa Android-malleissa joillakin matkapuhelimilla on ongelmia, joillakin koodeilla on sininen näyttö ja joillakin vilkkuu suoraan. On olemassa vieras esimerkki, joka tarkoittaa karkeasti "video / AVC" -tyyppisen kooderin hankkimista ensin ja sitten testaamista yksitellen kokeilun avulla. Jos ongelmaa ei ole, valitse tämä kooderi. Lähdekoodi: mediacodec_ rtsp_ h264
Toinen ongelma on, että kun I-kehysväli on asetettu, jotkut matkapuhelimet eivät toimi. Asetukset ovat seuraavat:
mediaFormat.setInteger (MediaFormat.KEY_ I_ FRAME_ INTERVAL, aikaväli);
Tämän tilanteen vuoksi meidän on käytettävä toista tapaa asettaa I-kehys, joka on pakollinen asetus:
Bundle-parametrit = uusi Bundle ();
params.putInt (MediaCodec.PARAMETER_ AVAIN_PYYNTÖ_SYNKRONOINTI, 0);
mMediaCodec.setParameters (parametrit);
Kun kaikki tiedot syötetään koodekiin koodauksessa ja dekoodauksessa, muista syöttää loppumerkki, sitten koodekki tuottaa kaikki kehykset.
On myös kehyksen purkamisongelma. Jos kehysten purkamiseen käytetään mediacodecia, luodaan uusi video. Voinko vain poistaa kehyksen H.264-tiedostosta? Se ei toimi näin. Siellä on yleensä roiskunäyttö. Tämän on syötettävä H.264-tiedosto uudelleen dekooderiin ja haettava sitten haluamasi kehys, ja syötettävä se sitten uuteen kooderiin halutun H.264-tiedoston luomiseksi. Tässä on myös muoto-ongelma. Ei ole, että dekooderista dekoodattu data voidaan koodata suoraan kooderilla. Jotkut matkapuhelimet voivat, ja joillakin on sininen näyttö tai jopa salama. Tässä tapauksessa meidän on yhtenäistettävä dekooderin muoto. Jos käytät tätä lomaketta saadaksesi:
mMediaCodec.getOutputBuffer ()
Siellä on kaikenlaisia formaatteja, ja sinun on vaikea olla yhteensopiva. Google on julkaissut uuden muodon:
mMediaCodec.getOutputImage (outIndex)
Tuloksena on kuvaobjekti, joka voidaan tallentaa JPEG-kuvana tai muuntaa nv21: ksi, kuten yllä oleva kuvausosa, muuntaa YUV422-muotoon ja syöttää sitten kooderiin. Joten mikä malli voi olla yhteensopiva (yritän yli 10 erilaista matkapuhelinten valmistajaa), vaikka paljon kiertoteitä.
|
Kirjoita sähköpostiosoite saadaksesi yllätyksen
es.fmuser.org
it.fmuser.org
fr.fmuser.org
de.fmuser.org
af.fmuser.org -> Afrikaans
sq.fmuser.org -> albania
ar.fmuser.org -> arabia
hy.fmuser.org -> Armenian
az.fmuser.org -> azerbaidžanilainen
eu.fmuser.org -> baski
be.fmuser.org -> valkovenäläinen
bg.fmuser.org -> Bulgaria
ca.fmuser.org -> katalaani
zh-CN.fmuser.org -> kiina (yksinkertaistettu)
zh-TW.fmuser.org -> Kiina (perinteinen)
hr.fmuser.org -> kroatia
cs.fmuser.org -> tšekki
da.fmuser.org -> tanska
nl.fmuser.org -> Dutch
et.fmuser.org -> viro
tl.fmuser.org -> filippiiniläinen
fi.fmuser.org -> suomi
fr.fmuser.org -> French
gl.fmuser.org -> galicialainen
ka.fmuser.org -> Georgian
de.fmuser.org -> saksa
el.fmuser.org -> Greek
ht.fmuser.org -> Haitin kreoli
iw.fmuser.org -> heprea
hi.fmuser.org -> Hindi
hu.fmuser.org -> Unkari
is.fmuser.org -> islanti
id.fmuser.org -> indonesia
ga.fmuser.org -> irlantilainen
it.fmuser.org -> Italian
ja.fmuser.org -> japani
ko.fmuser.org -> korea
lv.fmuser.org -> latvia
lt.fmuser.org -> Liettua
mk.fmuser.org -> makedonia
ms.fmuser.org -> malaiji
mt.fmuser.org -> maltalainen
no.fmuser.org -> Norja
fa.fmuser.org -> persia
pl.fmuser.org -> puola
pt.fmuser.org -> portugali
ro.fmuser.org -> Romania
ru.fmuser.org -> venäjä
sr.fmuser.org -> serbia
sk.fmuser.org -> slovakki
sl.fmuser.org -> Slovenian
es.fmuser.org -> espanja
sw.fmuser.org -> swahili
sv.fmuser.org -> ruotsi
th.fmuser.org -> Thai
tr.fmuser.org -> turkki
uk.fmuser.org -> ukraina
ur.fmuser.org -> urdu
vi.fmuser.org -> Vietnam
cy.fmuser.org -> kymri
yi.fmuser.org -> Jiddiš
FMUSER Wirless lähettää videota ja ääntä helpommin!
Ota yhteyttä
Osoite:
Nro 305 huone HuiLan-rakennus nro 273 Huanpu Road Guangzhou Kiina 510620
Kategoriat
Uutiskirje