FMUSER Wirless Video və Səsi Daha Asan ötürür!
es.fmuser.org
it.fmuser.org
fr.fmuser.org
de.fmuser.org
af.fmuser.org -> Afrikaans
sq.fmuser.org -> Alban
ar.fmuser.org -> ərəb
hy.fmuser.org -> Ermənistan
az.fmuser.org -> azərbaycan dili
eu.fmuser.org -> Bask
be.fmuser.org -> Belarus
bg.fmuser.org -> Bulgarian
ca.fmuser.org -> Katalan
zh-CN.fmuser.org -> Çin (Sadələşdirilmiş)
zh-TW.fmuser.org -> Çin (Ənənəvi)
hr.fmuser.org -> Xorvat
cs.fmuser.org -> Çex dili
da.fmuser.org -> Danimarkalı
nl.fmuser.org -> Holland
et.fmuser.org -> Eston
tl.fmuser.org -> Filipin
fi.fmuser.org -> Fin
fr.fmuser.org -> Fransız
gl.fmuser.org -> Qalisian
ka.fmuser.org -> gürcü
de.fmuser.org -> Alman
el.fmuser.org -> Yunan
ht.fmuser.org -> Haiti Kreolu
iw.fmuser.org -> İbrani
hi.fmuser.org -> Hind dili
hu.fmuser.org -> Macar
is.fmuser.org -> İslandiya
id.fmuser.org -> İndoneziya
ga.fmuser.org -> İrlandiyalı
it.fmuser.org -> Italian
ja.fmuser.org -> Yapon
ko.fmuser.org -> Koreyalı
lv.fmuser.org -> Latviya
lt.fmuser.org -> Litva
mk.fmuser.org -> Makedoniya
ms.fmuser.org -> Malay dili
mt.fmuser.org -> Malta
no.fmuser.org -> Norveç
fa.fmuser.org -> Fars dili
pl.fmuser.org -> Polşa
pt.fmuser.org -> Portuqal
ro.fmuser.org -> Roman
ru.fmuser.org -> Rus
sr.fmuser.org -> Serb
sk.fmuser.org -> Slovak
sl.fmuser.org -> Sloveniya
es.fmuser.org -> İspan
sw.fmuser.org -> suahili
sv.fmuser.org -> İsveç
th.fmuser.org -> Thai
tr.fmuser.org -> Türkcə
uk.fmuser.org -> Ukrayna
ur.fmuser.org -> Urdu
vi.fmuser.org -> Vietnamese
cy.fmuser.org -> Uels
yi.fmuser.org -> Azərbaycan
3. kolleksiya
Alınma əsasən iki cəhəti əhatə edir: video əldə etmə və səs əldə etmə. Video, kameranın müvafiq işləməsini və kameranın parametr parametrlərini əhatə edən kamera tərəfindən toplanır. Müxtəlif mobil telefon istehsalçılarının kameralarındakı fərqlərdən ötəri, bu mövzuda kamera ilə əlaqədar məqalədə izah ediləcək bəzi tələlər var. Səs mikrofon vasitəsilə toplanır. Fərqli mobil telefonların mikrofonları fərqli səs seçmə dərəcələrini dəstəkləyir və bəzən mikrofon funksiyasını dəstəkləmək üçün səsin ləğv edilməsi lazımdır.
Video çəkmə texnologiyasının əsas məqamları:
Kameranın istifadə edilə biləcəyini yoxlayın;
Kamera tərəfindən çəkilən şəkil üfüqi vəziyyətdədir və çəkilən görüntünün nümayiş olunmadan əvvəl müəyyən dərəcədə döndürülməsi lazımdır;
Kamera çəkildiyi zaman seçmək üçün bir sıra şəkil ölçüləri var. Çəkilən şəkil ölçüsü mobil telefonun ekran ölçüsü ilə uyğun gəlmədikdə, xüsusi işləmə tələb olunur;
Android telefon kamerasının bir sıra vəziyyəti var və kameranın müvafiq əməliyyatının düzgün vəziyyətdə olması lazımdır;
Android telefon kamerasının bir çox parametrində uyğunluq problemləri var və bu uyğunluq problemləri daha yaxşı həll edilməlidir.
Səs çəkmə texnologiyasının əsas məqamları:
Mikrofonun istifadə edilə biləcəyini yoxlayın;
Müəyyən bir səs seçmə dərəcəsi üçün mobil telefonun dəstəyini aşkarlamaq lazımdır;
Bəzi hallarda, səsdə əks-səda ləğv prosesi aparmaq lazımdır;
Səs çəkmə zamanı düzgün tampon ölçüsünü təyin edin.
Qeyd: Daha sonra kolleksiya haqqında xüsusi bir məqalə olacaqdır
4. emal
Video emal
Gözəllik artıq demək olar ki, mobil telefon canlı yayım proqramının standart bir konfiqurasiyasına çevrilib. Gözəlləşmədən sonra aparıcı daha yüksək bir görkəmə sahibdir və pərəstişkarları üçün daha cəlbedicidir. Ev sahibinin üzünü tanıya və əyləncəli animasiyalar əlavə edə bilən bəzi Android canlı yayım tətbiqləri də var. Xüsusi effektlər, bəzən videoya bir filigran əlavə etməliyik.
Əslində videonu gözəlləşdirmək və xüsusi effektlər əlavə etmək OpenGL vasitəsilə işlənir. Android-də SurfaceView-ə bənzəyən GLSurfaceView var, ancaq Renderer ilə göstərilə bilər. Doku OpenGL vasitəsi ilə, SurfaceTexture toxuma identifikatoru vasitəsi ilə yaradıla bilər və SurfaceTexture Kameraya təhvil verilə bilər və nəhayət, kamera önizləmə ekranı və OpenGL toxuma vasitəsilə birləşdirilir, beləliklə OpenGL vasitəsilə bir sıra əməliyyatlar həyata keçirilə bilər. .
Bütün gözəlləşmə prosesi, Kameranın əvvəlcədən nəzərdən keçirdiyi toxuma əsaslanan OpenGL-də FBO texnologiyası vasitəsilə yeni bir toxuma yaratmaqdan və Renderer-də onDrawFrame () üzərində çəkmək üçün yeni toxuma istifadə etməkdən başqa bir şey deyil. Bir filigran əlavə etmək əvvəlcə bir şəkli bir toxuma çevirmək və sonra rəsm üçün OpenGL istifadə etməkdir. Dinamik asma xüsusi effektlər əlavə etmək daha mürəkkəbdir. Əvvəlcə cari önizləmə şəklinə əsasən insan üzünün uyğun hissələrini müəyyənləşdirmək üçün alqoritmik analiz aparmaq və sonra hər uyğun hissəyə uyğun şəkillər çəkmək lazımdır. Bütün prosesin reallaşması bir qədər çətindir.
Aşağıdakı rəqəm bütün gözəllik prosesinin bir sxemidir:
Gözəllik prosesi
Aşağıdakı şəkil gözəllik və animasiya effektlərini çox yaxşı göstərir.
Gözəllik
Animasiya effektləri və su nişanları
Qeyd: OpenGL və bütün prosesin reallaşması haqqında xüsusi bir məqalə olacaqdır.
Səs emalı
Bəzi hallarda aparıcının canlı yayım atmosferini artırmaq üçün bəzi əlavə səslər əlavə etməsi lazımdır, məsələn alqışlar və s. Bununla məşğul olmağın bir yolu əlavə səsi birbaşa səsləndirməkdir ki, mikrofon toplasın və sonra birlikdə yazsın, lakin lövbər qulaqlıq taxdıqda və ya səs üzərində əks-silmə işləməli olduqda bu cür işləmə işləməyəcəkdir. . Müvafiq funksiya layihəmizə əlavə olunmadığından, hələlik bölüşmək üçün müvafiq bir təcrübə yoxdur, bu funksiyanı daha sonra əlavə edə, sonra da sizinlə paylaşa bilərik.
5. kodlaşdırma
Kamera və mikrofon vasitəsilə müvafiq video və səs məlumatlarını toplaya bilərik, lakin bunlar sabit formatda xam məlumatlardır. Ümumiyyətlə, kamera bir kare kadr toplayır və mikrofon PCM səs məlumatlarını toplayır. Bu məlumatlar birbaşa göndərilirsə, məlumatların miqdarı çox vaxt çox olur və nəticədə böyük bir bant itkisi olur, buna görə göndərmədən əvvəl video və səsi kodlaşdırmaq çox vaxt lazımdır.
Video kodlaşdırma
1. Proqnozlaşdırıcı kodlaşdırma
Hamımızın bildiyimiz kimi, bir şəkil bir çox sözdə pikseldən ibarətdir. Çox sayda statistika eyni görüntüdəki piksellər arasında güclü bir əlaqə olduğunu göstərir. İki piksel arasındakı məsafə nə qədər az olsa, korrelyasiya bir o qədər güclü olur. Sadə dildə desək, iki pikselin dəyərləri nə qədər yaxındır. Buna görə insanlar sıxılma kodlaşdırmasını həyata keçirmək üçün piksellər arasındakı bu əlaqəni istifadə edə bilərlər. Bu sıxılma metoduna kadrdaxili proqnozlaşdırma kodlaşdırması deyilir. Nəinki bitişik kadrlar arasındakı əlaqə ümumiyyətlə bir çərçivədəki piksellər arasındakı əlaqədən daha güclüdür və sıxılma nisbəti də daha böyükdür. Piksellər arasındakı korrelyasiyadan (kadrdaxili) və çərçivələr arasındakı əlaqədən istifadə etməklə, yəni proqnozlaşdırılan dəyər olaraq uyğun istinad pikselini və ya istinad çərçivəsini tapmaqla video sıxılma kodlaşdırmasının həyata keçirildiyi görünə bilər.
2. Transform kodlaşdırma
Çox sayda statistika göstərir ki, video siqnalında ən çox enerji tələb edən DC və aşağı tezlikli komponentlər, yəni görüntünün düz hissəsi və az miqdarda yüksək tezlikli komponentlər, yəni şəkil. Buna görə video kodlama üçün başqa bir metoddan istifadə edilə bilər. Təsvir müəyyən bir riyazi çevrilmədən keçdikdən sonra, çevrilmiş sahədəki şəkil əldə edilir (şəkildə göstərildiyi kimi), burada u və v müvafiq olaraq məkan tezliyi koordinatlarıdır.
Transform kodlaşdırma
3. Dalğa formalı kodlaşdırma
Dalğa formalı kodlaşdırma, proqnozlaşdırma kodlaşdırma və transformasiya kodlaşdırma birləşdirən blok əsaslı hibrid kodlaşdırma metodundan istifadə edir. Kodlaşdırma mürəkkəbliyini azaltmaq və video kodlaşdırma əməliyyatını asanlaşdırmaq üçün hibrid kodlaşdırma metodundan istifadə edərkən əvvəlcə bir görüntüyü 8 × 8 blok kimi sabit ölçülü bloklara bölün (yəni blok başına 8 sıra, 8 satır başına piksel), Blok 16 × 16 (blok başına 16 sətir, sətir başına 16 piksel) və s. və sonra bloku sıxaraq kodlaşdırın.
ITU-T, 261-cu ildə ilk rəqəmsal video kodlaşdırma standartı-H.1989'i buraxdığından, H.263 kimi video kodlama standartlarını və H.320 ve H.323 kimi multimediya terminal standartlarını ardıcıl olaraq yayımladı. ISO altında hərəkət edən şəkil mütəxəssisləri qrupu (MPEG) beynəlxalq standartları kodlayan MPEG-1, MPEG-2, MPEG-4 və digər əyləncə və rəqəmsal televiziya kompressiyalarını təyin etmişdir.
Mart 2003-cü ildə ITU-T, H.264 video kodlaşdırma standartını elan etdi. Video sıxılmasını əvvəlki standartlarla müqayisədə əhəmiyyətli dərəcədə yaxşılaşdırmaqla yanaşı, xüsusən də IP İnternet, simsiz mobil şəbəkə və digər şəbəkə video ötürülməsi performansı üçün səhv edilməsi asan, bloklanması asan və QoS-un zəmanəti asan olmayan şəbəkə yaxınlığına malikdir. . . Bu video kodlaşdırmanın hamısında dalğa formalı kodlaşdırma olan blok əsaslı hibrid kodlaşdırma istifadə olunur.
4. Məzmuna əsaslanan kodlaşdırma
Video çərçivəsinin əvvəlcə müxtəlif obyektlərə uyğun bölgələrə bölündüyü və daha sonra kodlandığı bir məzmuna əsaslanan kodlama texnologiyası da var. Konkret olaraq fərqli obyektlərin formasını, hərəkətini və toxumasını kodlayır. Ən sadə halda, bir cismin formasını təsvir etmək üçün iki ölçülü bir kontur, hərəkət vəziyyətini təsvir etmək üçün bir hərəkət vektoru və bir rəng bir dalğa şəkli ilə təsvir olunur.
Video ardıcıllığındakı obyekt növləri məlum olduqda, bilik əsaslı və ya model əsaslı kodlaşdırma istifadə edilə bilər. Məsələn, insan üzləri üçün üzün xüsusiyyətlərini kodlaşdırmaq üçün əvvəlcədən təyin edilmiş bəzi tel kafellər hazırlanmışdır. Bu anda kodlaşdırma səmərəliliyi çox yüksəkdir və xüsusiyyətlərini təsvir etmək üçün yalnız bir neçə bitə ehtiyac var. Üz ifadələri üçün (qəzəbli, xoşbəxt və s.) Mümkün davranışlar semantik kodlaşdırıla bilər. Bir obyektin mümkün davranışlarının sayı çox az olduğundan çox yüksək kodlaşdırma səmərəliliyi əldə edilə bilər.
MPEG-4 tərəfindən qəbul edilmiş kodlaşdırma metodu həm blok əsaslı hibrid kodlaşdırma, həm də məzmuna əsaslanan kodlaşdırma metodudur.
5. Yumşaq və sərt toxuculuq
Android platformasında video kodlamanı tətbiq etməyin iki yolu var, biri yumşaq kodlaşdırma, digəri isə sərt kodlaşdırma. Yumşaq redaktə üçün tez-tez CPU-ya güvənir və kodlaşdırma aparmaq üçün CPU-nun hesablama gücündən istifadə edir. Məsələn, x264 kodlama kitabxanasını yükləyə, müvafiq jni interfeysini yaza və sonra müvafiq görüntü məlumatlarına ötürə bilərik. X264 kitabxanası tərəfindən işləndikdən sonra orijinal şəkil h264 formatında bir videoya çevrilir.
Sabit kod Android-in özü tərəfindən təqdim olunan MediaCodec-dən istifadə edir. MediaCodec istifadə etmək üçün müvafiq məlumatları ötürməlisiniz. Bu məlumatlar yuv görüntü məlumatları və ya bir Səth ola bilər. Səth ümumiyyətlə daha təsirli olan tövsiyə olunur. Surface, yerli video məlumat tamponlarını xəritə və ya ByteBuffers-ə kopyalamadan birbaşa istifadə edir; bu səbəbdən bu yanaşma daha təsirli olacaqdır. Səthdən istifadə edərkən, ümumiyyətlə orijinal video məlumatlarına birbaşa daxil ola bilməzsiniz, ancaq etibarlı olmayan dekodlanmış (və ya orijinal) video çərçivələrə daxil olmaq üçün ImageReader sinifindən istifadə edə bilərsiniz. Bu, hələ də ByteBuffers istifadə etməkdən daha səmərəli ola bilər, çünki bəzi yerli buferlər ByteBuffers-ı yönləndirmək üçün uyğunlaşdırıla bilər. ByteBuffer rejimindən istifadə edərkən orijinal video məlumat çərçivəsinə daxil olmaq üçün Image sinifindən və getInput / OutputImage (int) metodlarından istifadə edə bilərsiniz.
Qeyd: Aşağıdakı məqalədə video kodlamanın necə aparılacağı xüsusi olaraq təsvir ediləcəkdir
Audio kodlaşdırma
AudioRecord, səs yazmaq üçün Android-də istifadə edilə bilər və qeyd olunan səs PCM səsidir. Səsi kompüter dilində ifadə etmək istəyirsinizsə, səsi rəqəmləşdirməlisiniz. Səsi rəqəmləşdirməyin ən geniş yayılmış yolu Pulse Code Modulation (PCM) vasitəsidir. Səs mikrofondan keçir və gərginlik dəyişikliklərinin bir sıra siqnallarına çevrilir. Belə bir siqnalın PCM formatına çevrilməsinin yolu, səsi təmsil etmək üçün üç parametr istifadə etməkdir. Bunlar: kanalların sayı, seçmə bitlərinin sayı və seçmə tezliyi.
1. Nümunə götürmə tezliyi
Yəni bir səs nümunəsinin saniyədə neçə dəfə əldə olunduğunu ifadə edən seçmə tezliyi. Nümunə götürmə tezliyi nə qədər yüksək olsa, səs keyfiyyəti bir o qədər yaxşı olar və səs çoxalması bir o qədər realdır, eyni zamanda daha çox resurs tutur. İnsan qulağının məhdud rezolyusiyası səbəbindən çox yüksək bir tezlik ayırd edilə bilməz. 22 bit səs kartlarında 44KHz, 16KHz və digər səviyyələr var. Bunların arasında 22KHz adi FM yayımının səs keyfiyyətinə, 44KHz isə CD-nin səs keyfiyyətinə bərabərdir. Mövcud ümumi seçmə tezliyi 48KHz-dən çox deyil.
2. Nümunə götürmə bitlərinin sayı
Yəni seçmə dəyəri və ya seçmə dəyəri (yəni seçmə nümunəsinin amplitudası ölçülür). Səs dalğalanmasını ölçmək üçün istifadə olunan bir parametrdir və səs kartının çözünürlüyü də deyilə bilər. Dəyəri nə qədər böyükdürsə, qətnamə o qədər yüksək olur və səs gücü daha güclüdür.
Kompüterdə, nümunə götürmə bitlərinin sayı ümumiyyətlə 8 bit və 16 bitdir, lakin unutmayın ki, 8 bit ordinatın 8 hissəyə bölünməsi demək deyil, 2 hissə olan 8-dən 256-ci gücə bölünmək deməkdir; eyni 16 bit üçün də doğrudur. Ordinatı 2-nın 16-cı gücünə 65,536-yə bölür.
3. Kanalların sayı
Monofonik və stereofonik olduğunu anlamaq asandır. Monofonik səs yalnız bir hoparlör tərəfindən istehsal edilə bilər (bəziləri eyni kanal səsini çıxarmaq üçün iki hoparlördə işlənir) və stereo pcm iki hoparlör edə bilər Hər iki səsi (ümumiyyətlə sol və sağ kanallar arasında əmək bölgüsü var), beləliklə məkan təsirini daha çox hiss edə bilərsiniz.
Beləliklə, indi pcm sənədinin tutumu üçün düsturu əldə edə bilərik:
Saxlama tutumu = (seçmə tezliyi ✖️ seçmə bit sayı number️ kanal ✖️ vaxt) ➗ 8 (vahid: bayt sayı)
Səsin hamısı PCM formatında ötürülürsə, işğal edilmiş bant genişliyi nisbətən böyükdür, buna görə ötürülmədən əvvəl səsin kodlaşdırılması lazımdır.
Artıq wav, MIDI, MP3, WMA, AAC, Ogg, və s. Kimi geniş yayılmış səs formatları mövcuddur, pcm formatı ilə müqayisədə, bu formatlar səs məlumatlarını sıxaraq ötürmə bant genişliyini azalda bilər.
Səs kodlaması da iki növə bölünə bilər: yumşaq kodlaşdırma və sərt kodlama. Yumşaq redaktə etmək üçün müvafiq kodlaşdırma kitabxanasını yükləyin, müvafiq jni yazın və sonra kodlaşdırma üçün məlumatları ötürün. Sabit kod Android-in özü tərəfindən təqdim olunan MediaCodec-dən istifadə edir.
Qeyd: Aşağıdakı məqalədə audio kodlamanın necə aparılacağı xüsusi olaraq təsvir ediləcəkdir
6, qablaşdırma
Video və səsin ötürülmə prosesi zamanı uyğun formatı təyin etməsi lazımdır ki, əks ucuna ötürüldükdə düzgün təhlil edilsin.
1. HTTP-FLV
Web 2.0 dövründə ən populyar veb saytları təbii olaraq xaricdən Youtube, Çindəki Youku və Tudou veb saytlarıdır. Bu cür saytlar tərəfindən təqdim olunan video məzmununun öz üstünlükləri olduğu söylənə bilər, lakin hamısı istisnasız olaraq Flash-ı video oynatma daşıyıcısı kimi istifadə edirlər. Bu video saytları dəstəkləyən texniki əsas Flash Video (FLV) dır. FLV, videonu Flash animasiyasına inteqrasiya etmək üçün veb səhifələrdə geniş istifadə olunan Flash Player platformasından istifadə edən yeni bir axın mediya video formatıdır. Başqa sözlə, veb saytına daxil olanlar Flash animasiyalarını izləyə bildikləri müddətcə, əlavə video plaginləri quraşdırmağa ehtiyac olmadan təbii olaraq FLV formatlı videoları izləyə bilərlər. FLV videolarının istifadəsi videonun yayılmasına böyük rahatlıq gətirir.
HTTP-FLV audio və video məlumatlarını FLV-yə daxil edir və sonra HTTP protokolu vasitəsilə müştəriyə ötürür. Yükləyici olaraq, yalnız FLV formatında video və səsin serverə ötürülməsi lazımdır.
Ümumiyyətlə, FLV formatındakı video və səs ümumiyyətlə video üçün h264 formatından, səs isə ümumiyyətlə AAC-LC formatından istifadə edir.
FLV formatı əvvəlcə FLV başlıq məlumatlarını ötürmək, sonra video və səs parametrləri (Metadata) ilə meta məlumatları ötürmək, sonra video və səs parametrləri məlumatlarını ötürmək və sonra video və səs məlumatlarını ötürməkdir.
Qeyd: Aşağıdakı məqalədə FLV ətraflı təsvir ediləcəkdir
2. RTMP
RTMP, Real Time Mesajlaşma Protokolunun kısaltmasıdır. Protokol TCP-yə əsaslanır və RTMP əsas protokolu və RTMPT / RTMPS / RTMPE və bir çox digər variant daxil olmaqla bir protokol klasteridir. RTMP, real vaxt məlumat ötürülməsi üçün hazırlanmış bir şəbəkə protokoludur. Əsasən Flash / AIR platforması ilə RTMP protokolunu dəstəkləyən axın mediası / interaktiv server arasında səs, video və məlumat rabitəsi üçün istifadə olunur.
RTMP protokolu, əsasən flv formatına əsaslanan səs və video axınlarının real vaxt ötürülməsi üçün istifadə olunan Adobe tərəfindən başlatılan real vaxt ötürmə protokoludur. Kodlanmış video və səs məlumatlarını əldə etdikdən sonra əvvəl FLV qablaşdırma tələb olunur, sonra rtmp formatında paketlənir və sonra ötürülür.
Göndərmə üçün RTMP formatından istifadə etmək üçün əvvəlcə serverə qoşulmalı, sonra bir axın yaratmalı, sonra yayını yayımlamalı və sonra müvafiq video və səs məlumatlarını ötürməlisiniz. Bütün ötürülmə mesajlarla müəyyən edilir, rtmp müxtəlif mesaj formalarını müəyyənləşdirir və mesajları yaxşı göndərmək üçün mesajlar bloklara bölünür və bu da bütün protokolu daha da mürəkkəbləşdirir.
Qeyd: a Daha sonrakı məqalələrdə RTMP ətraflı təsvir ediləcəkdir
RTP və s. Kimi bir neçə başqa protokol formaları da var. Ümumi prinsiplər bir-birinə bənzəyir, buna görə onları bir-bir izah etməyəcəm.
7. zəif şəbəkə işlənməsi
Video və səs yerli vaxtda video və səs məlumatlarının yığılmasına səbəb olmadan yaxşı bir şəbəkə altında vaxtında göndərilə bilər, canlı yayım təsiri hamar və gecikmə azdır. Pis bir şəbəkə mühitində, səs və video məlumatları göndərilə bilmirsə, səs və video məlumatlarını işləməliyik. Zəif bir şəbəkə mühitində video və səs məlumatları üçün ümumiyyətlə dörd işləmə metodu var: bufer dizaynı, şəbəkə aşkarlanması, kadr itkisi işlənməsi və bit sürətinin azaldılması prosesi.
1. Tampon dizaynı
Video və səs məlumatları buferə ötürülür və göndərən buferdən məlumatları alır və göndərir, beləliklə asinxron istehsalçı-istehlakçı rejimi formalaşdırır. İstehsalçı yalnız toplanmış və kodlanmış video və səs məlumatlarını buferə itələməlidir və istehlakçı buferdən məlumatların çıxarılması və göndərilməsindən məsuldur.
Video və səs tamponu
Yuxarıdakı şəkildə yalnız video çərçivə göstərilir və açıq şəkildə içəridə uyğun səs çərçivələri var. Asenkron bir istehsalçı-istehlakçı modeli yaratmaq üçün Java yaxşı bir sinif təmin etdi. Çərçivə itkisi, yerləşdirmə, qaldırılma və s. Daha sonra işlənməli olduğundan, açıq bir şəkildə LinkedBlockingQueue çox yaxşı bir seçimdir.
2. Şəbəkə aşkarlanması
Zəif bir şəbəkə işləmə prosesində əhəmiyyətli bir proses şəbəkə aşkarlanmasıdır. Şəbəkə zəif olduqda, tez bir zamanda aşkar edilə bilər və sonra müvafiq olaraq işlənə bilər. Bu, şəbəkə cavabını daha həssas edəcək və təsir çox daha yaxşı olacaqdır.
Saniyədə giriş tamponundakı məlumatları və real vaxtda göndərilən məlumatları hesablayırıq. Göndərilən məlumatlar giriş tamponundakı məlumatlardan kiçikdirsə, şəbəkə bant genişliyi yaxşı deyil. Bu zaman buferdəki məlumatlar artmağa davam edəcəkdir. Müvafiq mexanizmi aktivləşdirin.
3. Çərçivə emalını buraxın
Şəbəkə deqradasiyası aşkar edildikdə, çərçivə itkisi yaxşı bir cavab mexanizmidir. Video kodlandıqdan sonra açar kadrlar və açarsız kadrlar var. Əsas çərçivə tam bir şəkildir və açar olmayan çərçivə şəklin nisbi dəyişməsini təsvir edir.
Çərçivə buraxma strategiyası özü tərəfindən müəyyən edilə bilər. Diqqət çəkən bir şey budur: P çərçivələrini (açar olmayan çərçivələr) salmaq istəyirsinizsə, iki açar çərçivə arasındakı bütün açar olmayan çərçivələri atmalısınız, əks halda mozaika meydana çıxacaq. Çərçivə itkisi strategiyasının dizaynı ehtiyaclardan asılı olaraq dəyişir və özünüz dizayn edə bilərsiniz.
4. Kod azaltma dərəcəsi
Android-də, kodlaşdırma üçün sərt kodlaşdırma istifadə olunursa, zəif bir şəbəkə mühitində, canlı yayımı daha hamar etmək üçün sərt kodlamanın bit sürətini real vaxtda dəyişdirə bilərik. Şəbəkə mühitinin zəif olduğu aşkar edildikdə, kadrları atarkən video və səs bit sürətini də azalda bilərik. Android sdk versiyası 19-dan böyük və ya ona bərabər olduqda, məlumatların bit sürətini sabit kodlanmış kodlayıcıdan dəyişdirmək üçün parametrləri MediaCodec-ə ötürə bilərsiniz.
Bundle bitrate = new Bundle (); bitrate.putInt (MediaCodec.PARAMETER_KEY_VIDEO_BITRATE, bps * 1024);
mMediaCodec.setParameters (bitrate);
8. göndərin
Müxtəlif emaldan sonra məlumatların nəhayət göndərilməsi lazımdır, bu addım nisbətən sadədir. İstər HTTP-FLV, istər RTMP olsun, əlaqə qurmaq üçün TCP istifadə edirik. Canlı yayımdan əvvəl, serverə qoşula biləcəyinizi yoxlamaq üçün Socket vasitəsilə serverə qoşulmalısınız. Bağlantıdan sonra, məlumatları serverə göndərmək üçün bu Soketi istifadə edin və məlumat göndərildikdən sonra Soketi bağlayın.
|
Sürpriz almaq üçün e-poçt daxil edin
es.fmuser.org
it.fmuser.org
fr.fmuser.org
de.fmuser.org
af.fmuser.org -> Afrikaans
sq.fmuser.org -> Alban
ar.fmuser.org -> ərəb
hy.fmuser.org -> Ermənistan
az.fmuser.org -> azərbaycan dili
eu.fmuser.org -> Bask
be.fmuser.org -> Belarus
bg.fmuser.org -> Bulgarian
ca.fmuser.org -> Katalan
zh-CN.fmuser.org -> Çin (Sadələşdirilmiş)
zh-TW.fmuser.org -> Çin (Ənənəvi)
hr.fmuser.org -> Xorvat
cs.fmuser.org -> Çex dili
da.fmuser.org -> Danimarkalı
nl.fmuser.org -> Holland
et.fmuser.org -> Eston
tl.fmuser.org -> Filipin
fi.fmuser.org -> Fin
fr.fmuser.org -> Fransız
gl.fmuser.org -> Qalisian
ka.fmuser.org -> gürcü
de.fmuser.org -> Alman
el.fmuser.org -> Yunan
ht.fmuser.org -> Haiti Kreolu
iw.fmuser.org -> İbrani
hi.fmuser.org -> Hind dili
hu.fmuser.org -> Macar
is.fmuser.org -> İslandiya
id.fmuser.org -> İndoneziya
ga.fmuser.org -> İrlandiyalı
it.fmuser.org -> Italian
ja.fmuser.org -> Yapon
ko.fmuser.org -> Koreyalı
lv.fmuser.org -> Latviya
lt.fmuser.org -> Litva
mk.fmuser.org -> Makedoniya
ms.fmuser.org -> Malay dili
mt.fmuser.org -> Malta
no.fmuser.org -> Norveç
fa.fmuser.org -> Fars dili
pl.fmuser.org -> Polşa
pt.fmuser.org -> Portuqal
ro.fmuser.org -> Roman
ru.fmuser.org -> Rus
sr.fmuser.org -> Serb
sk.fmuser.org -> Slovak
sl.fmuser.org -> Sloveniya
es.fmuser.org -> İspan
sw.fmuser.org -> suahili
sv.fmuser.org -> İsveç
th.fmuser.org -> Thai
tr.fmuser.org -> Türkcə
uk.fmuser.org -> Ukrayna
ur.fmuser.org -> Urdu
vi.fmuser.org -> Vietnamese
cy.fmuser.org -> Uels
yi.fmuser.org -> Azərbaycan
FMUSER Wirless Video və Səsi Daha Asan ötürür!
Əlaqə
Ünvan:
No. 305 Otaq HuiLan Bina No.273 Huanpu Yolu Guangzhou Çin 510620
Kateqoriyalar
Newsletter