Біографії Характеристики Аналіз

Протокол rtmp порт 1935. Онлайн мовлення через Nginx-RTMP: кілька готових рецептів

Ініціативно, RTMP (Real Time Messaging Protocol) був створений Adobe Systems for transmitting audio and video streams, text messages, and other data across the web. Головним принципом його робіт є введення в ініціативу між сервером і user's Flash Player. RTMP є базованим на TCP, які методи того, що його високі priority є в поєднанні стабільного зв'язку і сприяння low-latency interaction. У повідомленні про broadcast smooth streams and to transmit as mount data as possible RTMP server divides information in fragments. Then, fragments’ size is defined due до формату interaction між user і a server.

What is more interesting about RTMP is that it involves different virtual channels, which transmit data packets during one media session. Ці канали можуть включати: канали для RPC потреб і їхніх результатів, один для керування повідомленнями, канали для аудіо- та відео streaming. Більше, вони можуть працювати одночасно безвідповідно до будь-яких технічних питань для однієї іншої.

RTMP vs RTSP

У термінах передачі даних, є ще інший добре-відомий протокол називається RTSP. So, let's take a look at the differences між RTMP і RTSP protocols.

Головною думкою RTSP (Real Time Streaming Protocol) є майнові можливості діяльності streaming servers. Більше, цей протокол включає в себе interface між клієнтом і сервером. RTSP enables end users до control media session за допомогою simple commands така як play, pause, and stop. Більше того, це дозволяє клієнтам перевірити відео з будь-якого фрагмента без заборони для повного download.

RTMP, в його turn, as sustains обумовлені features. Як, RTMP-сервер, за допомогою RTMP-протоколу, може керувати будь-якою діяльністю, якою клієнтом починають з часу, або його ініціатів, що беруть участь у роботі, і вона буде заблокована. У такій мірі, це робить reports within RTMP більш важливим і забезпечує повне зображення user's activity при particular media session. Як RTMP, RTSP є здатним до живого streaming як добре. Хоча, streaming data transmission не є основним завданням для RTSP, що це, для цього витрачається, що потрібні деякі інші протоколи.

How it works

Принцип RTMP work is simple. In order to start RTMP stream, it's enough to establish interaction між RTMP server and client RTMP player. Одначе ця комунікація є налаштованою, сервер starts transmitting the media as constant flow of bytes. Ці процеси продовжують цілковито для їхнього сервера або гравця, що продовжують роботу.

Добре, що це RTMP-протокол є дуже flexibility і розгортання аудіо, відео і тексту інформації в різних форматах до його можливостей. For instance, RTMP protocol enables video streaming в форматах MP4 і FLV, audio streaming – в MP3 і AAC. Більше, що до цього протоколу, RTMP server sends media до веб-застосунків як добре, як до мобільних пристроїв. Для цього потрібний користувач потребує того, що Flash Player налаштований в браузері або на мобільному пристрої залежно від. Там, swf файл, який містить всі загальні відомості про stream, буде грав у Flash Player. However, один з найбільших benefits RTMP protocol є те, що він може бути застосований до життя і на потребу streaming. Let’s таке a look at each of these streaming processes.

Live streaming

Live video streaming belongs to key features of RTMP protocol. З її help, ви можете broadcast вашого відео live протягом процесів його запису. Головним чином, live broadcasting is used для sports events, shows, concerts etc. У цьому випадку, RTMP протокол є абсолютно недоступним. Це має низьку стійкість від реального часу в streaming, в comparison with HTTP protocol and its delay of more than seconds, which is no appropriate for professional live streaming.

Let’s review one more vivid example of RTMP exceptional functionality for live streaming. Для прикладу, популярні IP-камери, які підтримують RTMP-протокол, мають будівлю в людяхспіваків, так що ви не можете бачити відео-відео, а також бути впроваджено в процесах обміну текстом і express our opinion to streamers.

On demand streaming

На вимогу streaming дозволяють користувачам, щоб знайти, коли використовується вибраний вміст вмісту, який є більш сприятливим для їх останнього, якщо він необхідний вміст в часі його broadcast. Як керування, відео на вимогу (VOD) використовується для незначної згоди: тому що гравці плавно допоможуть з низьким підключенням до Інтернету, коли кількість користувачів онлайн не є суцільною, для завантаження HD quality. З RTMP protocol even VOD is more efficient. Перш за все, це забезпечує multicast support. Якщо ви хочете, щоб один stream всередині вашої робочої мережі і забезпечує її багаторазових користувачів, з RTMP вам буде потрібно, щоб створити окремі зв'язки для кожного користувача. Інші протоколи можуть бути HTTP або CDN, що не має цього значення. Also, RTMP надійні users для перемикання на stream video в разі підключення до них. Під час приладів з підключенням, відео є грати з buffer і, коли user reconnects buffer starts filling і в такій мірі avoids frequent pauses в video stream.

RTMP implementations

Очевидно, всі ці відомості роблять вам суворо дослідити implement RTMP. Це cross-platform protocol and it works on Windows, Mac, Linux, Android, Windows Mobile, iOS. Do you has console and enjoy playing games? Ви можете легко використовувати RTMP послуги для таких пристроїв як Xbox One, PlayStation і PS Vita.

Так, є різноманіття platforms suitable for RTMP protocol, there are many options for its implementation. Вони можуть варіювати з команда-line implementation до повного поширеного Open Source implementation.

Command-line implementation

RTMPDump tool використовується для команда-line implementation, як це добре копіювання з записом RTMP streams, живої broadcasting and video on demand. Besides, RTMPDump є відкритим джерелом інструменту, який можна використовувати на Linux, Android, Mac OS X, і Microsoft. Цей інструмент є дуже популярним завдяки своєму малому розміру і здатності до запису RTMPE, який є надрукованим RTMP, і RTMPS – надійний RTMP.

Package RTMPDump має три програми: rtmpdump, rtmpsrv, і rtmpsuck. Всі ці програми виконують особливі функції. Для прикладу, rtmpdump використовується для встановлення підключення до RTMP серверів і capturing the stream itself; rtmpsuck може зробити stream, як добре, або він може отримувати в gathering key parameters для rtmpdump. Main function of rtmpsrv is to keep track of connections and streams.

Full implementation

Якщо ви більше зацікавлені в повному виконанні, ви потребуєте ці три елементи: software live video encoder, media streaming server and video client application. You don't know which live video encoder to install? Там, ви можете вибрати між Flash Media Live Encoder, FFmpeg, WireCast, Wowza Transcoder, Nimble Streamer Transcoder. However, please take into account that theНайпопулярнішим є Flash Media Live Encoder, який є доступним для безкоштовного download on Adobe website.

Як для програмного забезпечення для клієнта програми, Adobe Flash Player є найбільш пристосованим варіантом. Це вільний RTMP player і works є plug-in від браузера або навіть мобільного пристрою. Flash Player використовується для Windows, OS X, Chrome OS, і Linux. Додаткові варіанти є Gnash і VLC Media Player. Both them є open source media players. Gnash має всі зміни до substitute Flash Player в RTMP streaming on Linux. VLC media player, в його turn, не є універсальним, як це може позбавитися RTMP streams only partially.

RTMP-сервери так само, як Adobe Flash Media Server, Wowza Streaming Engine, Flussonic Media Server вважаються дуже приємними. Хоча, ви можете налаштувати безкоштовний RTMP-сервер як Nginx з RTMP-модулем або Red5, який є також відкритим джерелом RTMP-сервер на Java.

How to tackle the most frequent issues with RTMP protocol

RTMP protocol, загрожує всім своїм особливим відхиленням, має також деякі відхилення. Це робить факт, що він відрізняється від HTTP-протоколу, це не відповідає HTML5. Більше, RTMP протоколи роботи поступово на iDevices and it affects the quality of video streaming. In such case, it's better для використання HLS protocol on Apple gadgets. Принципи HLS і RTMP працюють як подібні, але в випадках з HLS, stream є відокремленим в серії статей HTTP-базованих файлів. Початково, цей протокол був розроблений для Quicktime, iOS і Safari browser. However, тепер HLS protocol може бути використаний на багатьох інших платформах як добре. Protocol copes дуже добре з широкими обмеженнями і adaptations video quality відповідно. Considering the speed of video delivery, HLS won’t be the bestВаріант, як його послідовність є двадцять секунд.

Ще один drawback RTMP protocol is that it's vulnerable to bandwidth issues. Деякий час, низька широта може призвести до розриву в streaming media або навіть stream може не запустити, якщо Internet connection speed is not enough. У альтернативному способі обмінюватися з обмеженою широтою є використання Dash. Dash is adaptive bitrate streaming technology which provides high quality media broadcasting. Ця технологія є здатною до diagnose bandwidth of particular user and adapt video quality accordingly to connection speed. У додатку, він можене йти з без вказівок, що вказує на відео на багато bit rates. Там, різні encodings є switched by the player due to suitable resources. Як результат, маленький буфfering є achieved і велике video experience is gained. Це є hard to estimate all benefits of this technique for streaming major events in the national level, for example.

Ще більше внизу RTMP протоколів, які потрібні для того, щоб встановити Flash Player plug-in, без якого RTMP media transmitting буде неможливо. Also, є деякі правила при використанні RTMP для CDN streaming services.

Do you still have questions regarding RTMP protocol або його implementation? and we'll help you with it and demonstrate all its benefits in practice.

Нещодавно я натрапив на топік "Сервер онлайн-мовлень на базі nginx" про чудовий модуль Романа Арутюняна (@rarutyunyan) для nginx: nginx-rtmp-module . Модуль дуже простий у налаштуванні та дозволяє на основі nginx створити сервер публікації відеозаписів та живого мовлення.

Про сам модуль можна прочитати на його сторінці на GitHub, я хочу навести кілька простих прикладів використання. Сподіваюся, топік допоможе новачкам у відеосправах (таким як я).

Коротко про RTMP

RTMP (Real Time Messaging Protocol) – пропрієтарний протокол мовлення від Adobe. Як транспорт за замовчуванням використовується TCP (порт 1935). Також можна інкапсулювати RTMP у HTTP (RTMPT). Клієнт RTMP – це в першу чергу Adobe Flash Player.
Кодек відео - H.264, кодек аудіо AAC, nellymoser або MP3, контейнери MP4 або FLV.

Публікація відеозапису

Інакше кажучи, відео на запит (VOD). Просто додайте nginx.conf до секції rtmp ( server (… )).
application vod ( play /var/videos; )

(Прим.: звичайно, секцію не обов'язково називати vod)
Тепер можна покласти в папку /var/videos відеофайл у правильному форматі та "годувати" плеєру джерело, наприклад rtmp://server/vod/file.flv. Наскільки я зрозумів, MP4 нативно підтримує перемотування відео, а FLV доведеться індексувати окремо.

Онлайн трансляція

Ми можемо відправити потік відео та аудіо на сервер, використовуючи той самий протокол RTMP для публікації. А наші клієнти зможуть дивитися трансляцію. Для цього на сервері треба додати секцію:

Application live ( allow publish 1.2.3.4; allow publish 192.168.0.0/24; deny publish all; allow play all; live on; )

На машині, з якою ми будемо мовити, спочатку потрібно отримати список пристроїв DirectShow. Пуск - Виконати - cmd, переходимо до папки ffmpeg/bin і запускаємо:
ffmpeg -list_devices true -f dshow -i dummy

Якщо в назві вашого джерела є російські літери, вони можуть відобразитися кракозябрами. Тру' адміни заюзають iconv, а прості хлопці на кшталт мене розкодують бяку на сайті Лебедєва. FFmpeg"у потрібно згодувати читабельний напис.

Тепер, знаючи ім'я відео та аудіо джерела, можна захопити його за допомогою ffmpeg та відправити на сервер.

Веб камера

Як мінімум потрібно вказати джерело відео, кодек та сервер:
ffmpeg -f dshow -i video="Webcam C170" -c:v libx264 -an -f flv "rtmp://1.2.3.4/live/test.flv live=1"

Замість «Webcam C170» потрібно підставити назву камери зі списку.
Ключ -an говорить про те, що ми не передаємо потік аудіо. Якщо потік аудіо потрібен, то рядок запуску буде виглядати приблизно так:
ffmpeg -f dshow -i video="Webcam C170" -f dshow -i audio="Мікрофон..." -c:v libx264 -c:a .3.4/live/test.flv live=1"
Тут ми використовуємо кодек libfaac, частота дискретизації 44100, 2 канали (стерео). Можна замість AAC використовувати MP3 (кодек libmp3lame).

Аналогова камера

Якщо у вашої камери аналоговий вихід, її можна підключити до комп'ютера за допомогою пристрою захоплення. Я використовую дешеву PAL камеру та USB плату захоплення з Dealextreme.

Ffmpeg -r pal -s pal -f dshow -i video="USB2.0 ATV" -c:v libx264 -an -f flv "rtmp://1.2.3.4/live/test.flv live=1"

Захоплення екрану

Тут є два варіанти: встановити FFSplit або використовувати screen-capture-recorder із FFmpeg.
FFSplit використовувати простіше, т.к. він має зручний GUI, але він не працює під XP/2003.

Якщо ви вирішили вибрати другий спосіб, то рядок запуску FFmpeg виглядатиме приблизно так:
ffmpeg -f dshow -i video="screen-capture-recorder" -c:v libx264 -an -r 2 -f flv "rtmp://1.2.3.4/live/test.flv live=1"
Аудіо поток можна захопити з virtual-audio-capturer.


Приклад захоплення екрана у програмі

Ретрансляція

Природно, можна ретранслювати відео або аудіо файл (або потік) FFmpeg на сервер. У прикладі нижче ми передаємо MJPEG відео з віддаленої камери:
ffmpeg -f mjpeg -i video="http://iiyudana.miemasu.net/nphMotionJpeg?Resolution=320x240&Quality=Standard" -c:v libx264 -f flv "rtmp://1.2.3.4/live/test.flv live =1"
Але для таких цілей розумніше використовувати опцію push на самому RTMP-сервері, щоб виключити проміжну ланку та витягувати потік на сервері.


Якась веб-камера у Японії

Тюнінг, вирішення проблем

-preset ім'яУ H.264 є кілька наборів налаштувань співвідношення компресія/швидкість: ultrafast, superfast, veryfast, faster, fast, medium, slow, slower, veryslow. Тому якщо ви хочете підвищити продуктивність, варто використати:
-preset ultrafast
-crf число безпосередньо впливає на бітрейт та якість. Приймає значення від 0 до 51 – чим більше, тим нижча якість картинки. Типово 23, 18 - losless якість. Бітрейт приблизно подвоюється за зменшення CRF на 6.

-r число задає вхідний та вихідний FPS. Для джерел, з яких ви захоплюєте картинку, можна встановити замість -r -re, щоб використовувати "рідний" FPS.

-rtbufsize число розмір буфера реального часу Якщо у вас постійно з'являються повідомлення про переповнення буфера та відкидання кадрів, можна поставити великий буфер (наприклад, 100000k), однак це може збільшити затримку передачі.

-pix_fmtзадає колірну модель. Якщо у вас замість картинки з'являється чорний квадрат, а звук працює, спробуйте поставити yuv420pабо yuv422p.

-s ширинаxвисота вхідний та вихідний розмір картинки.

-g число наскільки я зрозумів, це максимальна кількість кадрів між ключовими. Якщо у вас FPS дуже маленький, то можна поставити це менше, щоб зменшити затримку початку трансляції.

-keyint_min число мінімальна кількість кадрів між ключовими.

-vf "crop=w:h:x:y"обрізати відео

-tune zerolatency"чарівна" опція зменшення затримки трансляції. Що вона конкретно робить я так і не знайшов (-:

-analyzeduration 0відключає аналіз тривалості, що допомагає знизити затримку трансляції

Крім наведених вище параметрів аудіо вам може знадобитися -acodec copyу тому випадку, якщо ваш аудіо потік не вимагає додаткового перекодування MP3/AAC.

Приклад: ведемо мовлення з веб-камери з низькою затримкою без звуку, малюємо у верхній частині картинки поточний час

Ffmpeg -r 25 -rtbufsize 1000000k -analyzeduration 0 -s vga -copyts -f dshow -i video="Webcam C170" -vf "drawtext=fontfile=verdana.ttf: [email protected]:fontsize=48:box=1: [email protected]:text=%(localtime)" -s 320x240 -c:v libx264 -g 10 -keyint_min 1 -preset UltraFast -tune zerolatency -crf 25 -an -r 3 -f flv "rtmp://1.2.3.4:1935/ live/b.flv live=1"

Плеєр на сайті

Тут усе просто. Поставте на свій сайт один із популярних плеєрів, наприклад

Live video streaming є дійсно великим thing. What can be easier than instantly running a live streaming app on your smartphone? Це буде directly broadcast you or event taking place around you… And while you’re streaming a video, friends are watching it from their mobile devices. And all you need to make it happen is the camera and a built-in microphone on your smartphone… Isn’t this fun?

Live streaming ha introduced different manner for users для з'єднання з їхніми хлопцями та для штанів до огорожі та долучити до своїх клієнтів.

Але як може ваш бізнес або startup легко реалізувати live streaming для Android без dedication lots of resources and hours of developers’ work to do it? What technology stands behind live broadcast and makes it real?

Let's dig в topic до find comprehensive answers до цих клопотів і також вивчити більше про ready-to-use solutions, що зроблено і speed up the process adding a live video streaming feature into your app.

What are characteristics of live streaming

Неможливо форматувати відео на вимогу, які вважають, що користувач може вибирати і переміщати відео в будь-який час, live broadcast videos are tied to a specific moment in time andє displayed while being recorded.

And here’s how live streaming process looks like. Video and audio є both transfered через messages that the video player і the media server exchange. Video player connects to the media server first. Server transfers до порту відео до гравця. Це video fragment corresponds to the current playing time. Буффер з кількома секундами відтворення відео playback без усунення або розриву. Цей процес є постійно repeated whole time the web broadcast lasts.

Але живі streaming never transfers media files as whole (thus saving bandwidth). Instead, it's enabled through media servers responsible for transferring і streaming digital video, audio and data. Live streaming provides protection to source video files because they can't get copied to a viewer's computer. З допомогою додаткового software, live streaming as supports live chatting and Q&A.

Там не є єдиним єдиним форматом, що існує до transmit media data. Instead, ви можете вибрати одну, що обслуговує свої технічні потреби.

What video streaming technologies exist?

Там є багато способів, щоб насолодитися живою broadcast в вашому app. We'll briefly overview the existing технології below. Цей спосіб може бути різним для своїх key features і типом вмісту, які's best made to deliver:

  • RTMP Protocol

Real-Time Messaging Protocol (або just RTMP) був розроблений для високої ефективності transfer of video і audio streams і real-time data messages over the web. Real-time streaming is enabled by establishing a 2-way connection between the Flash server and Flash player.

Adobe Flash Player є найбільшим RTMP клієнтом, що підтримує відео та відео playback. Це є поточно доступним як відкритого джерела специфічності для розвитку продуктів і технологій, що розрізняють відеозаписи в форматах AMF, SWF, FLV і F4V (здатність з Adobe Flash Player форматами) і відео в AAC і MP3.

  • HTTP-базовані streaming protocols (HLS and HDS)

Формат HLS базується на MPEG2-TS і програмах для streaming до iOS пристроїв. It isn't part of HTML5. HLS з'єднує багаторазові streams with themetadata information and easily switches between different media data.

HDS використовує Adobe's format for videos and delivers fragments of MPEG-4 files. MPEG формат дозволяє скачати metadata і audio and video streams в різних місцях. HTTP Dynamic Streaming є надійною технологією для великої libraries. Це helps redukce bandwidth, saves battery life and provides better user experience compared to HLS.

  • Silverlight streaming protocol

Цей відео streaming формат використовувався для rich Internet apps так само як Adobe Flash and для running movies. Despite Microsoft Silverlight не тривалий час роботи в Chrome браузері, він є доступним в Internet Explorer і Mozilla Firefox.

  • MPEG-DASH

MPEG-DASH забезпечує високу якість live і on-demand video streaming for media coming from HTTP servers. У форматі можуть бути зроблені повідомлення в між video segments для всіх типів streaming. Media content is encrypted once and delivered to client client with help different DRM (Digital Rights Management) schemes.

  • Progressive download streaming

З progressive download, media content transferred from a server to client computer through HTTP protocol. Це не потребує будь-якого streaming server for file hosting або downloading a media file to watch it. Progressive download enables video playback до повного відео download.

Збільшення 4K-відео, висока кількість користувачів розпізнавання якості стандартів і простий досвід, розробка нових ефективних платформ і простий підключення до Інтернету, пов'язаних з video streaming formats stricter. Незначна різниця в технологіях можлива, ми фокусуємося на RTMP як один з найбільш широких шляхів і favorite streaming protocols серед розробників.

So, what is RTMP protocol and why it’s so good

Created by Macromedia (current Adobe), Real-Time Messaging Protocol ensures adaptive bitrate streaming (ABS). Якщо змінити зміни, відео якість автоматично скидаються на це. RTMP є основою на Transmission Control Protocol (TCP), який prioritizes maintenance of stable connection and low latency. Знижка типу типу вмісту, RTMP дозволяє переміщувати аркуш попереднього і живого медіа-дана і тексту інформації.

Moreover, RTMP може бути використаний не тільки для мобільного streaming. RTMP-сервер може отримувати медіа-дані для веб-застосунків як добре, як для мобільних пристроїв.

It is most often praised for the following advantages it provides:

  • It is specifically optimized for live streaming

Великою швидкістю, що RTMP забезпечується optimization of video і audio data transmission. Для streaming, it uses the exclusive 1935 port that is suitable for low-latency content transmission which is vital for live streaming and requires no buffering.

  • It is a mature technology

RTMP має бути використаний для живого streaming для більше 10 років. Для developer, setting up RTMP Server is easy task. For user, video streaming is enabled in different formats at the same time. Залежно від того, як Player check applied too.

  • You can watch any part of the video being broadcasted

Всі RTMP-сервери дозволяють записувати за допомогою медіа-програм і підтримувати здатність до відтворення відео з початку. Використання користувача може скипа частин відео till поточний момент в broadcast. Ця особливість є особливо корисною для тривалих відео (більше 10 хвилин), дозволяючи до можливого перемикання до будь-якої частини цього.

  • It is the most popular real-time streaming protocol

RTMP є platform-незалежним протоколом, що потребує не hardware dependences і is compatible with Windows, Mac, Linux, Android, iOS і Windows mobile. Це також широко використовуваний в gaming devices, так як PlayStation, Xbox One, і PS Vita.

How RTMP works

У simple words, RTMP streaming consists of the following three entities:

  • Client має те, що створюють медіа-програми та broadcasts з RTMP protocol to a server. Як клієнт “publishers”, ви можете використовувати безліч apps на різних платформах, так само як FFMPEG заснованих гравців, VLC Player, YouTube клієнтів, і AVLib заснований рішучості.
  • На сервері, що handles an incoming stream and performs processing and recording as necessary. The server також забезпечує broadcasts до інших клієнтів. У багатьох серверах, кращі можливості будуть Wowza Media Server, Flussonic Media Server, і Simple RTMP Server.
  • Viewers represent any client that can watch published streams. Для відтворення таких media streams, ви можете використовувати будь-який гравець, який підтримує протокол RTMP. Good news is that all currently used players for all existing platforms support RTMP streams. Ви можете вибрати Flash Player, VLC, або Media Player Classic.

Найбільшим комплексом і ресурсом-ідентичним є broadcaster apps. 'Broadcasting flow' включає media processing, mixing, encoding and further streaming over RTMP protocol to a server. Це залежить значною мірою на платформі і hardware і потребує безліч supporting resources.

Для того, щоб перевести як багато даних, як можна з RTMP-протоколом, відео та звуком, є складені в фрагментах різних розмірів. Більше розмірів є 64 байт для відео і 128 байт для відео. Video chunk sizes determined by interaction format between a user and a server.

Fragments of media є взаємно розповсюджені і multiplexed over single connection while correlating with channel’s bandwidth and latency. Створення від broadcaster до сервера містить мініатюрні дані блоків, які включають різні типи даних (i.e., video, audio service, etc.). RTMP streaming може currently transfer several different data blocks, thus encapsulating both video and audio і enabling remote procedure calls.

Якщо клієнт отримає stream в RTMP Player, request is sent to RTMP Server. A session is initialized and service data exchange occurs. Після клієнта RTMP гравця отримувати необхідну частину служби даних пакетів про ongoing stream, його starts decoding, buffering і displaying RTMP media stream.

З RTMP, медіа не вимагається будь-який stored в будь-якому temporary storage. Це покликане до stream безпосередньо між клієнтами і серверами. Якщо Bandwidth capacity allows, той самий stream directed до численних клієнтів, що send requests. Здоров'я напруги підтримується, якщо several media servers є похід в мережу. Streaming process continues until either the server or the player finishes the session.

Як можна використовувати RTMP для stream video в вашому Android app?

Ви можете перейти RTMP stream на будь-яку платформу з допомогою будь-якого гравця, який підтримує RTMP protocol. Для Android, найбільш популярні тридцятирічні гравці є MX, VLC, і BS Players є добре, як будь-який інший гравець, що підтримує FFMPEG. Для перемикання RTMP від ​​взаємного застосування, розробники потребують integrate any player library, що може виконати RTMP streams. Ці є ijkPlayer and VLC SDK.

Onix team має свою технологічну contribution до fining easy and beautiful solution for video streaming and have created AVLib , Onix own external library for Android RTMP streaming.

Let’s see how it works with live broadcast for Android apps and how the idea originated.

How AVLib solves the basic problem for Android RTMP streaming

https://rtmplib-android.com/

Наші Android team developers мають приєднатися до думки AVLib майже accidentally, але з великими outcome and effect. При працюючих на вирішенні питання про broadcast video та audio для Android пристроїв до RTMP серверів, вони оголошені серйозним питанням. customer's requirements встановлений, що app should be able до stream video and audio data at його максимальний capacity через Android camera. Вона була також потрібна для забезпечення підтримки Android 4.0 як мінімальна версія, для користувачів з іншими мобільними пристроями можна використовувати це, і постачати число зручних можливостей встановлення для користувача.

Onix team має здійснено глибоке дослідження і побудови існуючих комерційних і спільних джерел streaming libraries. But with no satisfying result. Це оголошено, що там не було такої згоди на ринку, що могло б зробити наші технічні потреби в повному manner. team members quickly came для вирішення створення своїх власних external library, що може викликати RTMP streaming for Android. І тому є власне число Android пристроїв і OS версій, які використовуються в даний час, ця книга була побудована для підтримки streaming потреб всіх поточних Android користувачів.

Але це не здавалося, що не вийде на проміжок часу, створюючи один раз інструмент, що вирішує один особливий спосіб strictly to required extent. What if a similar situation is repeated? Чи не буде використано велику технологію, яку ви можете зробити і побудувати well-tested software product?

Буде розроблений для розкішного, елегантного і надійного рішення, будь-який інший третій-партійний Android team або розробник, який був пристосований для RTMP library, можна легко включити його в app без того, щоб змінити wheel. And we did it! AVLib поєднує всі риси, які виражаються і досконало вирішують основний спосіб відео broadcast.

How AVLib був розроблений і why it’s a reliable RTMP library

AVLib is RTMP library that we’re truly proud of. It is a software product that solves a customer's requirements for live streaming of any complexity level. Це ready-to-use tool for Android Studio, що є вбудованим в мобільний app straight away.

AVLib репрезентує достовірне і стабільне рішення, що ґрунтується на наступних принципах:

  • An easy integration with the app

Для Android developer, it would take about an hour to complete theпроцеси integration of AVLib and add a live streaming feature into an app.

  • Maximum capacity

Для implementation RTMP library і empower it з високою кваліфікацією потенційного, нашим team chose the C programming language. Більшість функцій, що включаються в AVLib, переходять від конвеєра логіки, coding, роботи з RTMP і введення в процес, були побудовані за допомогою C. C.

  • UI custom-built library

AVLib є flexibility і може бути легко адаптований до customer потреби в UI design (i.e., buttons, text) і video settings (i.e., frame resolution, audio, codec quality, bitrates).

  • Support of all existing types of Android devices

Цей RTMP library comes as .aar file with no dependencies. AVLib була випробувана для того, щоб зробити це зразкове з різними Android пристроями і підтримкою Android OS version 4.0 and higher.

You can find more details про AVLib's features .

Розвиток процесів AVLib був реально повною часткою і необхідною мірою і ефектом від нашого Android team.

  • Streaming from action cameras? Yes!

Один з peculiar features of AVLib є його здатність до stream video and audio від дії камери на літі. Для того, щоб дати цей характер, вам потрібно працювати одночасно з двома мережевими interfaces на стороні модуля в C. Зображення було зроблено успішно, але згодом було згодом розглянути джерело коду Android OS і продовжувати розблоковувати.

  • Building the broadcast life cycle

Інші важливі ходи, які були визначені при розробці фази, були сприятливі приємної роботи з камерою і процесування життя cycle on different devices. Це був другий time-consuming and required lots of scrutinizing work.