Nginx-RTMP દ્વારા ઑનલાઇન પ્રસારણ: ઘણી તૈયાર વાનગીઓ.

લાઈવ વિડિયો સ્ટ્રીમિંગ એ ખરેખર મોટી વાત છે. તમારા સ્માર્ટફોન પર તરત જ લાઇવ સ્ટ્રીમિંગ એપ્લિકેશન ચલાવવા કરતાં વધુ સરળ શું હોઈ શકે? તે તમને અથવા તમારી આસપાસ બનતી કોઈ ઘટનાને સીધું પ્રસારિત કરશે... અને જ્યારે તમે કોઈ વિડિયો સ્ટ્રીમ કરી રહ્યાં હોવ, ત્યારે તમારા મિત્રો તેને તેમના મોબાઈલ ઉપકરણો પરથી જોઈ રહ્યાં છે. અને તે કરવા માટે તમારે તમારા સ્માર્ટફોનમાં કેમેરા અને બિલ્ટ-ઇન માઇક્રોફોનની જરૂર છે… શું આ મજા નથી?

લાઇવ સ્ટ્રીમિંગે વપરાશકર્તાઓને તેમના મિત્રો સાથે જોડાવા માટે અને બ્રાન્ડ્સ માટે તેમના ગ્રાહકોને જોડવા અને તેમના સુધી પહોંચવા માટે એક અલગ રીત રજૂ કરી છે.

પરંતુ તમારો વ્યવસાય અથવા સ્ટાર્ટઅપ એન્ડ્રોઇડ માટે લાઇવ સ્ટ્રીમિંગને કેવી રીતે સરળતાથી અમલમાં મૂકી શકે છે, તે કરવા માટે ઘણા બધા સંસાધનો અને વિકાસકર્તાઓના કામના કલાકો સમર્પિત કર્યા વિના? લાઈવ બ્રોડકાસ્ટ પાછળ કઈ ટેકનોલોજી છે અને તેને વાસ્તવિક બનાવે છે?

ચાલો આ પ્રશ્નોના વ્યાપક જવાબો શોધવા માટે આ વિષયમાં ઊંડાણ કરીએ અને ઉપયોગમાં લેવા માટે તૈયાર ઉકેલો વિશે વધુ જાણીએ જે તમારી એપ્લિકેશનમાં લાઇવ વિડિઓ સ્ટ્રીમિંગ સુવિધા ઉમેરવાની પ્રક્રિયાને સરળ બનાવે છે અને ઝડપી બનાવે છે.

લાઇવ સ્ટ્રીમિંગની વિશેષતાઓ શું છે

વિડિયો ઓન ડિમાન્ડના ફોર્મેટથી વિપરીત જે ધારે છે કે વપરાશકર્તા કોઈપણ સમયે વિડિયો પસંદ કરી શકે છે અને જોઈ શકે છે, લાઈવ બ્રોડકાસ્ટ વીડિયો સમયની ચોક્કસ ક્ષણ સાથે જોડાયેલા હોય છે અને રેકોર્ડ કરવામાં આવે ત્યારે પ્રદર્શિત થાય છે.

અને લાઇવ સ્ટ્રીમિંગ પ્રક્રિયા કેવી દેખાય છે તે અહીં છે. વિડિયો અને ઑડિયો બન્ને સંદેશાઓ દ્વારા ટ્રાન્સફર થાય છે જે વિડિયો પ્લેયર અને મીડિયા સર્વર એક્સચેન્જ કરે છે. વિડિયો પ્લેયર પહેલા મીડિયા સર્વર સાથે જોડાય છે. સર્વર વિડિઓનો એક ભાગ પ્લેયરમાં સ્થાનાંતરિત કરે છે. આ વિડિઓ ટુકડો વર્તમાન રમવાના સમયને અનુરૂપ છે. કેટલીક સેકંડનું બફર વિલંબ અથવા વિક્ષેપો વિના વિડિઓ પ્લેબેકની ખાતરી કરે છે. આ પ્રક્રિયા વેબ બ્રોડકાસ્ટ ચાલે તેટલા સમય સુધી સતત પુનરાવર્તિત થાય છે.

પરંતુ લાઇવ સ્ટ્રીમિંગ ક્યારેય સમગ્ર મીડિયા ફાઇલોને સ્થાનાંતરિત કરતું નથી (આમ બેન્ડવિડ્થ બચાવે છે). તેના બદલે, તે ડિજિટલ વિડિયો, ઑડિઓ અને ડેટાના સ્થાનાંતરણ અને સ્ટ્રીમિંગ માટે જવાબદાર મીડિયા સર્વર્સ દ્વારા સક્ષમ છે. લાઇવ સ્ટ્રીમિંગ સ્રોત વિડિઓ ફાઇલોને સુરક્ષા પ્રદાન કરે છે કારણ કે તે દર્શકના કમ્પ્યુટર પર કૉપિ કરી શકાતી નથી. વધારાના સૉફ્ટવેરની મદદથી, લાઇવ સ્ટ્રીમિંગ લાઇવ ચેટિંગ અને પ્રશ્ન અને જવાબને પણ સપોર્ટ કરે છે.

મીડિયા ડેટા ટ્રાન્સમિટ કરવા માટે અસ્તિત્વમાં છે તે માત્ર એક જ ફોર્મેટ નથી. તેના બદલે, તમે પસંદ કરી શકો છો એકજે તમારી તકનીકી જરૂરિયાતોને શ્રેષ્ઠ રીતે અનુકૂળ કરે છે.

કઈ વિડિઓ સ્ટ્રીમિંગ તકનીકો અસ્તિત્વમાં છે?

તમારી એપ્લિકેશનમાં લાઇવ બ્રોડકાસ્ટને સક્ષમ કરવાની બહુવિધ રીતો છે. અમે નીચે હાલની તકનીકોની ટૂંકમાં ઝાંખી કરીશું. આ રીતે તમે તેમની મુખ્ય વિશેષતાઓ અને સામગ્રીના પ્રકારને તેઓ વિતરિત કરવા માટે શ્રેષ્ઠ રીતે બનાવવામાં આવ્યા છે તેમાં તફાવત કરી શકશો:

  • RTMP પ્રોટોકોલ

રીઅલ-ટાઇમ મેસેજિંગ પ્રોટોકોલ (અથવા ફક્ત RTMP) વેબ પર વિડિઓ અને ઑડિયો સ્ટ્રીમ્સ અને રીઅલ-ટાઇમ ડેટા સંદેશાઓના ઉચ્ચ-પ્રદર્શન ટ્રાન્સફર માટે વિકસાવવામાં આવ્યો હતો. ફ્લેશ સર્વર અને ફ્લેશ પ્લેયર વચ્ચે દ્વિ-માર્ગી જોડાણ સ્થાપિત કરીને રીઅલ-ટાઇમ સ્ટ્રીમિંગ સક્ષમ છે.

Adobe Flash Player એ સૌથી સામાન્ય RTMP ક્લાયંટ છે જે વિડિયો અને ઑડિયો પ્લેબેકને સપોર્ટ કરે છે. તે હાલમાં ઉત્પાદનો અને ટેક્નોલોજીના વિકાસ માટે ઓપન-સોર્સ સ્પેસિફિકેશન તરીકે ઉપલબ્ધ છે જે AMF, SWF, FLV અને F4V (Adobe Flash Player ફોર્મેટ સાથે સુસંગત) અને AAC અને MP3માં ઑડિયોના ફોર્મેટમાં વિડિયો સ્ટ્રીમ્સ પહોંચાડે છે.

  • HTTP-આધારિત સ્ટ્રીમિંગ પ્રોટોકોલ્સ (HLS અને HDS)

HLS ફોર્મેટ MPEG2-TS પર આધારિત છે અને iOS ઉપકરણો પર સ્ટ્રીમિંગથી સંબંધિત છે. તે HTML5 નો ભાગ નથી. HLS મેટાડેટા માહિતી સાથે બહુવિધ સ્ટ્રીમ્સને જોડે છે અને વિવિધ મીડિયા ડેટા વચ્ચે સરળતાથી સ્વિચ કરે છે.

HDS વિડિઓઝ માટે Adobe ના ફોર્મેટનો ઉપયોગ કરે છે અને MPEG-4 ફાઇલોના ટુકડાઓ પહોંચાડે છે. MPEG ફોર્મેટ મેટાડેટા અને ઑડિઓ અને વિડિયો સ્ટ્રીમ્સને વિવિધ સ્થળોએ સ્ટોર કરવાની મંજૂરી આપે છે. HTTP ડાયનેમિક સ્ટ્રીમિંગ મોટી મીડિયા લાઇબ્રેરીઓ માટે અનુકૂળ તકનીક છે. તે બેન્ડવિડ્થ ઘટાડવામાં મદદ કરે છે, બેટરી જીવન બચાવે છે અને HLS ની તુલનામાં વધુ સારો વપરાશકર્તા અનુભવ પ્રદાન કરે છે.

  • સિલ્વરલાઇટ સ્ટ્રીમિંગ પ્રોટોકોલ

આ વિડિયો સ્ટ્રીમિંગ ફોર્મેટનો ઉપયોગ સમૃદ્ધ ઈન્ટરનેટ એપ્સ જેમ કે Adobe Flash અને મૂવીઝ ચલાવવા માટે થાય છે. માઈક્રોસોફ્ટ સિલ્વરલાઈટ હવે ક્રોમ બ્રાઉઝરમાં કામ કરતું નથી છતાં, તે ઈન્ટરનેટ એક્સપ્લોરર અને મોઝિલા ફાયરફોક્સમાં ઉપલબ્ધ છે.

  • MPEG-DASH

MPEG-DASH HTTP સર્વર્સથી આવતા મીડિયા માટે ઉચ્ચ-ગુણવત્તાવાળી લાઇવ અને ઑન-ડિમાન્ડ વિડિઓ સ્ટ્રીમિંગ પ્રદાન કરે છે. ફોર્મેટ બંને પ્રકારના સ્ટ્રીમિંગ માટે વિડિઓ સેગમેન્ટ્સ વચ્ચે જાહેરાતો ઉમેરવાની મંજૂરી આપે છે. મીડિયા કન્ટેન્ટ એકવાર એનક્રિપ્ટ કરવામાં આવે છે અને વિવિધ DRM (ડિજિટલ રાઇટ્સ મેનેજમેન્ટ) સ્કીમ્સની મદદથી ક્લાયન્ટ કમ્પ્યુટર પર પહોંચાડવામાં આવે છે.

  • પ્રગતિશીલ ડાઉનલોડ સ્ટ્રીમિંગ

પ્રગતિશીલ ડાઉનલોડ સાથે, મીડિયા સામગ્રી સર્વરથી ક્લાયંટ કમ્પ્યુટર પર HTTP પ્રોટોકોલ દ્વારા સ્થાનાંતરિત થાય છે. તેને જોવા માટે ફાઇલ હોસ્ટિંગ અથવા મીડિયા ફાઇલ ડાઉનલોડ કરવા માટે તેને કોઈપણ સ્ટ્રીમિંગ સર્વરની જરૂર નથી. પ્રોગ્રેસિવ ડાઉનલોડ સંપૂર્ણ વિડિયો ડાઉનલોડ પહેલાં વિડિયો પ્લેબેકને સક્ષમ કરે છે.

4K વિડિયોનો ઉદય, ગુણવત્તાના ધોરણો અને સરળ અનુભવની ઉચ્ચ વપરાશકર્તા અપેક્ષાઓ, નવા અસરકારક પ્લેટફોર્મનો વિકાસ અને ઝડપી ઈન્ટરનેટ કનેક્શન વિડિયો સ્ટ્રીમિંગ ફોર્મેટની માંગને વધુ કડક બનાવે છે. ઉપલબ્ધ વિવિધ તકનીકોને ધ્યાનમાં લીધા વિના, અમે વિકાસકર્તાઓમાં સૌથી વધુ વ્યાપક અને મનપસંદ સ્ટ્રીમિંગ પ્રોટોકોલ તરીકે RTMP પર ધ્યાન કેન્દ્રિત કરીશું.

તેથી, RTMP પ્રોટોકોલ શું છે અને તે શા માટે સારું છે

Macromedia (હાલમાં Adobe) દ્વારા બનાવેલ, રીઅલ-ટાઇમ મેસેજિંગ પ્રોટોકોલ અનુકૂલનશીલ બિટરેટ સ્ટ્રીમિંગ (ABS) સુનિશ્ચિત કરે છે. જ્યારે બેન્ડવિડ્થ બદલાય છે, ત્યારે વિડિયો ગુણવત્તા આપોઆપ તેના પર ટ્યુન થાય છે. RTMP ટ્રાન્સમિશન કંટ્રોલ પ્રોટોકોલ (TCP) પર આધારિત છે જે સ્થિર કનેક્શન અને ઓછી લેટન્સીની જાળવણીને પ્રાથમિકતા આપે છે. સામગ્રીના પ્રકાર અંગે, RTMP પૂર્વ-રેકોર્ડેડ અને લાઇવ મીડિયા ડેટા અને ટેક્સ્ટ માહિતી બંનેને ટ્રાન્સમિટ કરવાની મંજૂરી આપે છે.

વધુમાં, RTMP નો ઉપયોગ માત્ર મોબાઈલ સ્ટ્રીમિંગ માટે જ થઈ શકે છે. RTMP સર્વર વેબ એપ્લિકેશન્સ તેમજ મોબાઇલ ઉપકરણો બંને પર મીડિયા ડેટા મોકલી શકે છે.

તે આપેલા નીચેના ફાયદાઓ માટે મોટાભાગે વખાણવામાં આવે છે:

  • તે ખાસ કરીને લાઇવ સ્ટ્રીમિંગ માટે ઑપ્ટિમાઇઝ કરેલ છે

સૌથી મોટો ફાયદો જે RTMP પ્રદાન કરે છે તે વિડિયો અને ઑડિઓ ડેટા ટ્રાન્સમિશનનું ઑપ્ટિમાઇઝેશન છે. સ્ટ્રીમિંગ માટે, તે વિશિષ્ટ 1935 પોર્ટનો ઉપયોગ કરે છે જે ઓછી વિલંબિત સામગ્રી ટ્રાન્સમિશન માટે યોગ્ય છે જે લાઇવ સ્ટ્રીમિંગ માટે મહત્વપૂર્ણ છે અને તેને કોઈ બફરિંગની જરૂર નથી.

  • તે એક પરિપક્વ તકનીક છે

RTMP 10 વર્ષથી વધુ સમયથી લાઇવ સ્ટ્રીમિંગ માટે ઉપયોગમાં લેવાય છે. વિકાસકર્તા માટે, RTMP સર્વર સેટ કરવું એ એક સરળ કાર્ય છે. વપરાશકર્તા માટે, વિડિયો સ્ટ્રીમિંગ એક જ સમયે વિવિધ ફોર્મેટમાં સક્ષમ છે. પ્લેયર વેરિફિકેશન જેવી સુરક્ષા સુવિધાઓ પણ લાગુ કરવામાં આવે છે.

  • તમે પ્રસારિત થઈ રહેલા વિડિયોનો કોઈપણ ભાગ જોઈ શકો છો

બધા RTMP સર્વર્સ ઇનકમિંગ મીડિયા સ્ટ્રીમ્સને રેકોર્ડ કરવાની મંજૂરી આપે છે અને શરૂઆતથી જ વિડિયો પ્રદર્શિત કરવાની ક્ષમતા પ્રદાન કરે છે. વપરાશકર્તા પ્રસારણમાં વર્તમાન ક્ષણ સુધી વિડિઓના ભાગોને છોડી શકે છે. આ સુવિધા ખાસ કરીને લાંબી વિડિઓઝ (10 મિનિટથી વધુ) માટે ઉપયોગી છે, જેનાથી તેના કોઈપણ ભાગમાં સરળતાથી સ્વિચ કરી શકાય છે.

  • તે સૌથી લોકપ્રિય રીઅલ-ટાઇમ સ્ટ્રીમિંગ પ્રોટોકોલ છે

RTMP એ પ્લેટફોર્મ-સ્વતંત્ર પ્રોટોકોલ છે જેને હાર્ડવેર પર નિર્ભરતાની જરૂર નથી અને તે Windows, Mac, Linux, Android, iOS અને Windows મોબાઇલ સાથે સુસંગત છે. તે પ્લેસ્ટેશન, Xbox One અને PS Vita જેવા ગેમિંગ ઉપકરણોમાં પણ વ્યાપકપણે ઉપયોગમાં લેવાય છે.

RTMP કેવી રીતે કામ કરે છે

સરળ શબ્દોમાં કહીએ તો, RTMP સ્ટ્રીમિંગમાં નીચેની ત્રણ સંસ્થાઓનો સમાવેશ થાય છે:

  • એક ક્લાયન્ટ જે મીડિયા સ્ટ્રીમ બનાવે છે અને RTMP પ્રોટોકોલ દ્વારા સર્વર પર પ્રસારણ કરે છે. ક્લાયંટ "પ્રકાશકો" તરીકે, તમે વિવિધ પ્લેટફોર્મ્સ પર ઘણી બધી એપ્લિકેશનોનો ઉપયોગ કરી શકો છો, જેમ કે FFMPEG આધારિત પ્લેયર્સ, VLC પ્લેયર, YouTube ક્લાયન્ટ્સ અને AVLib આધારિત સોલ્યુશન.
  • એક સર્વર જે ઇનકમિંગ સ્ટ્રીમને હેન્ડલ કરે છે અને જરૂરીયાત મુજબ પ્રોસેસિંગ અને રેકોર્ડિંગ કરે છે. સર્વર અન્ય ક્લાયન્ટ્સને બ્રોડકાસ્ટ પણ પ્રદાન કરે છે. સર્વર્સમાં, શ્રેષ્ઠ વિકલ્પો Wowza મીડિયા સર્વર, ફ્લુસોનિક મીડિયા સર્વર અને સરળ RTMP સર્વર હશે.
  • દર્શકો કોઈપણ ક્લાયંટનું પ્રતિનિધિત્વ કરે છે જે પ્રકાશિત સ્ટ્રીમ્સ જોઈ શકે છે. આવી મીડિયા સ્ટ્રીમ્સ પ્રદર્શિત કરવા માટે, તમે RTMP પ્રોટોકોલને સપોર્ટ કરતા કોઈપણ પ્લેયરનો ઉપયોગ કરી શકો છો. સારા સમાચાર એ છે કે હાલના તમામ પ્લેટફોર્મ્સ માટે હાલમાં ઉપયોગમાં લેવાતા લગભગ તમામ પ્લેયર્સ RTMP સ્ટ્રીમ્સને સપોર્ટ કરે છે. તમે ફ્લેશ પ્લેયર, વીએલસી અથવા મીડિયા પ્લેયર ક્લાસિક પસંદ કરી શકો છો.

સૌથી જટિલ અને સંસાધન-સઘન બ્રોડકાસ્ટર એપ્લિકેશનો છે. 'બ્રૉડકાસ્ટિંગ ફ્લો'માં મીડિયા પ્રોસેસિંગ, મિક્સિંગ, એન્કોડિંગ અને સર્વર પર RTMP પ્રોટોકોલ પર વધુ સ્ટ્રીમિંગનો સમાવેશ થાય છે. તે પ્લેટફોર્મ અને હાર્ડવેર પર નોંધપાત્ર રીતે આધાર રાખે છે અને ઘણા બધા સહાયક સંસાધનોની જરૂર છે.

RTMP પ્રોટોકોલ સાથે શક્ય તેટલો વધુ ડેટા ટ્રાન્સમિટ કરવા માટે, વિડિયો અને ઑડિયોને વિવિધ કદના ટુકડાઓમાં વિભાજિત કરવામાં આવે છે. ડિફૉલ્ટ કદ ઑડિઓ માટે 64 બાઇટ્સ અને વિડિઓ માટે 128 બાઇટ્સ છે. વપરાશકર્તા અને સર્વર વચ્ચેની ક્રિયાપ્રતિક્રિયાના ફોર્મેટ દ્વારા વિડિયો ચંકના કદ નક્કી કરવામાં આવે છે.

ચૅનલની બેન્ડવિડ્થ અને લેટન્સી સાથે સહસંબંધ કરતી વખતે મીડિયાના ટુકડાઓ પછી એક જ કનેક્શન પર ઇન્ટરલીવ્ડ અને મલ્ટિપ્લેક્સ કરવામાં આવે છે. બ્રોડકાસ્ટરથી સર્વર પર આવતા સ્ટ્રીમમાં નાના ડેટા બ્લોક્સનો સમાવેશ થાય છે જેમાં વિવિધ પ્રકારના ડેટા (એટલે ​​​​કે, વિડિયો, ઑડિઓ સેવા, વગેરે) શામેલ હોય છે. આરટીએમપી સ્ટ્રીમિંગ એકસાથે અનેક અલગ-અલગ ડેટા બ્લોક્સ ટ્રાન્સફર કરી શકે છે, આમ વિડિયો અને ઑડિયો બંનેને સમાવી શકાય છે અને રિમોટ પ્રક્રિયા કૉલને સક્ષમ કરી શકાય છે.

જ્યારે ક્લાયંટ RTMP પ્લેયરમાં સ્ટ્રીમ ખોલે છે, ત્યારે RTMP સર્વરને વિનંતી મોકલવામાં આવે છે. એક સત્ર શરૂ થાય છે અને સેવા ડેટા વિનિમય થાય છે. એકવાર ક્લાયંટ RTMP પ્લેયર ચાલુ સ્ટ્રીમ વિશે સર્વિસ ડેટા પેકેટનો જરૂરી ભાગ પ્રાપ્ત કરી લે, તે પછી તે RTMP મીડિયા સ્ટ્રીમને ડીકોડિંગ, બફરિંગ અને ડિસ્પ્લે કરવાનું શરૂ કરે છે.

RTMP સાથે, મીડિયાને કોઈપણ કામચલાઉ સ્ટોરેજમાં સંગ્રહિત કરવાની જરૂર નથી. તે ક્લાયંટ અને સર્વર્સ વચ્ચે સીધું જ સ્ટ્રીમ કરવાનું ચાલુ રાખે છે. જો બેન્ડવિડ્થ ક્ષમતા પરવાનગી આપે છે, તો તે જ સ્ટ્રીમ અસંખ્ય ગ્રાહકોને નિર્દેશિત કરવામાં આવે છે જે વિનંતીઓ મોકલે છે. જો નેટવર્કમાં ઘણા મીડિયા સર્વરો મૂકવામાં આવે તો સ્ટ્રીમિંગ ક્ષમતા સુધરે છે. જ્યાં સુધી સર્વર અથવા પ્લેયર સત્ર સમાપ્ત ન કરે ત્યાં સુધી સ્ટ્રીમિંગ પ્રક્રિયા ચાલુ રહે છે.

તમે તમારી એન્ડ્રોઇડ એપ્લિકેશનમાં વિડિઓ સ્ટ્રીમ કરવા માટે RTMP નો ઉપયોગ કેવી રીતે કરી શકો?

તમે RTMP પ્રોટોકોલને સપોર્ટ કરતા કોઈપણ પ્લેયરની મદદથી કોઈપણ પ્લેટફોર્મ પર RTMP સ્ટ્રીમ જોઈ શકો છો. એન્ડ્રોઇડ માટે, સૌથી વધુ લોકપ્રિય થર્ડ પાર્ટી પ્લેયર્સ MX, VLC અને BS પ્લેયર્સ તેમજ FFMPEG ને સપોર્ટ કરતા અન્ય પ્લેયર છે. એપ્લિકેશનની અંદરથી RTMP જોવા માટે, વિકાસકર્તાએ કોઈપણ પ્લેયર લાઇબ્રેરીને એકીકૃત કરવાની જરૂર છે જે RTMP સ્ટ્રીમ્સ વાંચી શકે. આ ijkPlayer અને VLC SDK છે.

ઓનિક્સ ટીમે વિડિયો સ્ટ્રીમિંગ માટે સરળ અને સુંદર ઉકેલ શોધવામાં તેમનું ટેક્નોલોજીકલ યોગદાન આપ્યું છે અને એન્ડ્રોઇડ RTMP સ્ટ્રીમિંગ માટે AVLib, Onix ની પોતાની બાહ્ય લાઇબ્રેરી બનાવી છે.

ચાલો જોઈએ કે તે Android એપ્લિકેશનો માટે લાઇવ બ્રોડકાસ્ટ સાથે કેવી રીતે કાર્ય કરે છે અને આ વિચાર કેવી રીતે ઉદ્ભવ્યો.

AVLib Android RTMP સ્ટ્રીમિંગ માટેની મૂળભૂત સમસ્યાને કેવી રીતે હલ કરે છે

https://rtmplib-android.com/

ડેવલપર્સની અમારી એન્ડ્રોઇડ ટીમને લગભગ આકસ્મિક રીતે AVLibનો વિચાર આવ્યો છે, પરંતુ એક મહાન પરિણામ અને અસર સાથે. RTMP સર્વર્સ પર Android ઉપકરણો માટે વિડિઓ અને ઑડિઓ પ્રસારિત કરવા માટે એક સુવિધા ઉમેરવાના કાર્ય પર કામ કરતી વખતે, તેઓને એક ગંભીર સમસ્યા આવી. ગ્રાહકની જરૂરિયાતો જણાવે છે કે એપ્લિકેશન એન્ડ્રોઇડ કેમેરા દ્વારા તેની મહત્તમ ક્ષમતા પર વિડિયો અને ઑડિયો ડેટાને સ્ટ્રીમ કરવામાં સક્ષમ હોવી જોઈએ. એન્ડ્રોઇડ 4.0 ના આધારને ન્યૂનતમ સંસ્કરણ તરીકે સક્ષમ કરવું પણ જરૂરી હતું, કારણ કે જૂના મોબાઇલ ઉપકરણો ધરાવતા વપરાશકર્તાઓ તેનો ઉપયોગ કરી શકે છે અને વપરાશકર્તા માટે સંખ્યાબંધ અનુકૂળ ઉપયોગિતા સેટિંગ્સ ધરાવે છે.

Onix ટીમે હાલની બંને કોમર્શિયલ અને ઓપન-સોર્સ સ્ટ્રીમિંગ લાઇબ્રેરીઓનું ઊંડા સંશોધન અને સરખામણી હાથ ધરી છે. પરંતુ કોઈ સંતોષકારક પરિણામ મળ્યું નથી. તે બહાર આવ્યું કે બજારમાં કોઈ સમાન ઉકેલ નથી જે અમારી તકનીકી જરૂરિયાતોને સંપૂર્ણ રીતે પૂરી કરી શકે. ટીમના સભ્યો ઝડપથી પોતાની બાહ્ય લાઇબ્રેરી બનાવવાના નિર્ણય પર આવ્યા જે Android માટે RTMP સ્ટ્રીમિંગને સપોર્ટ કરી શકે. અને હાલમાં મોટી સંખ્યામાં Android ઉપકરણો અને OS સંસ્કરણો ઉપયોગમાં લેવાતા હોવાથી, આ લાઇબ્રેરી તમામ વર્તમાન Android વપરાશકર્તાઓની સ્ટ્રીમિંગ જરૂરિયાતોને સમર્થન આપવા માટે બનાવવામાં આવી હતી.

પરંતુ તે એક સમયનું સાધન બનાવવા માટે સમય પસાર કરવાનો ક્યારેય અર્થ નથી જે એક ચોક્કસ કાર્યને જરૂરી હદ સુધી સખત રીતે હલ કરે છે. જો સમાન પરિસ્થિતિનું પુનરાવર્તન થાય તો શું? શા માટે શ્રેષ્ઠ ટેક્નોલોજી ઓફર કરે છે અને સારી રીતે ચકાસાયેલ સોફ્ટવેર ઉત્પાદન બનાવે છે તેનો ઉપયોગ કેમ ન કરો?

અમે એક ભવ્ય, લવચીક અને સરળ ઉકેલ વિકસાવવાનો ઇરાદો ધરાવીએ છીએ, જેથી કોઈપણ અન્ય તૃતીય-પક્ષ Android ટીમ અથવા વિકાસકર્તા કે જેઓ RTMP લાઇબ્રેરી શોધી રહ્યાં હોય તે વ્હીલને ફરીથી શોધ્યા વિના સરળતાથી તેને એપ્લિકેશનમાં એકીકૃત કરી શકે. અને અમે તે કર્યું! AVLib અમે અપેક્ષિત તમામ સુવિધાઓને જોડે છે અને વિડિયો બ્રોડકાસ્ટના મૂળભૂત કાર્યને વ્યાપકપણે હલ કરે છે.

AVLib કેવી રીતે વિકસિત થયું અને શા માટે તે વિશ્વસનીય RTMP લાઇબ્રેરી છે

AVLib એ RTMP લાઇબ્રેરી છે જેનો અમને ખરેખર ગર્વ છે. તે એક સૉફ્ટવેર પ્રોડક્ટ છે જે કોઈપણ જટિલતા સ્તરના લાઇવ સ્ટ્રીમિંગ માટે ગ્રાહકની જરૂરિયાતોને ઉકેલે છે. તે Android સ્ટુડિયો માટે ઉપયોગમાં લેવા માટે તૈયાર સાધન છે જે તરત જ મોબાઇલ એપ્લિકેશનમાં એકીકૃત થઈ જાય છે.

AVLib એક અનુકૂળ અને સ્થિર ઉકેલ રજૂ કરે છે જે નીચેના સિદ્ધાંતો પર આધારિત છે:

  • એપ્લિકેશન સાથે સરળ એકીકરણ

એન્ડ્રોઇડ ડેવલપર માટે, AVLib ના એકીકરણની પ્રક્રિયા પૂર્ણ કરવામાં અને એપ્લિકેશનમાં લાઇવ ફીચર સ્ટ્રીમિંગ ઉમેરવામાં લગભગ એક કલાકનો સમય લાગશે.

  • મહત્તમ ક્ષમતા

RTMP લાઇબ્રેરીને અમલમાં મૂકવા અને તેને ઉચ્ચ ક્ષમતાની ક્ષમતા સાથે સશક્ત કરવા માટે, અમારી ટીમે C પ્રોગ્રામિંગ ભાષા પસંદ કરી. AVLib માં સમાવિષ્ટ દરેક એક ફંક્શન, કન્વેયર લોજિકથી શરૂ કરીને, કોડિંગ, RTMP સાથે કામ અને પ્રોસેસિંગ સુધી, શુદ્ધ C નો ઉપયોગ કરીને બનાવવામાં આવ્યા હતા.

  • UI કસ્ટમ-બિલ્ટ લાઇબ્રેરી

AVLib લવચીક છે અને UI ડિઝાઇન (એટલે ​​​​કે, બટનો, ટેક્સ્ટ) અને વિડિયો સેટિંગ્સ (એટલે ​​​​કે, ફ્રેમ રિઝોલ્યુશન, ઑડિઓ, કોડેક ગુણવત્તા, બિટરેટ) માં ગ્રાહકની જરૂરિયાતોને સરળતાથી ગોઠવી શકાય છે.

  • તમામ હાલના પ્રકારનાં Android ઉપકરણોને સપોર્ટ કરે છે

આ RTMP લાઇબ્રેરી એક .aar ફાઇલ તરીકે આવે છે જેમાં કોઈ નિર્ભરતા નથી. AVLib ની ખાતરી કરવા માટે પરીક્ષણ કરવામાં આવ્યું હતું કે તે વિવિધ Android ઉપકરણો સાથે સુસંગત છે અને Android OS સંસ્કરણ 4.0 અને ઉચ્ચતરને સપોર્ટ કરે છે.

તમે AVLib ની વિશેષતાઓ વિશે વધુ વિગતો મેળવી શકો છો.

AVLib ની વિકાસ પ્રક્રિયા ખરેખર પડકારોથી ભરેલી હતી અને અમારી Android ટીમ તરફથી જરૂરી વિચાર અને પ્રયત્નો જરૂરી હતા.

  • એક્શન કેમેરામાંથી સ્ટ્રીમિંગ કરી રહ્યાં છો? હા!

AVLib ની વિશિષ્ટ વિશેષતાઓમાંની એક ફ્લાય પર એક્શન કેમેરામાંથી વિડિયો અને ઑડિયો સ્ટ્રીમ કરવાની ક્ષમતા છે. આ સુવિધાને સક્ષમ કરવા માટે, તમારે બે નેટવર્ક ઇન્ટરફેસ સાથે એકસાથે કામ કરવાની જરૂર છે બાજુ C માં મોડ્યુલનું. કાર્ય સફળતાપૂર્વક પૂર્ણ થયું હતું પરંતુ એન્ડ્રોઇડ ઓએસના સોર્સ કોડ અને સતત ડીબગીંગના સંપૂર્ણ સંશોધનની માંગ કરી હતી.

  • પ્રસારણ જીવન ચક્રનું નિર્માણ

વિકાસના તબક્કા દરમિયાન અમે જે અન્ય નોંધપાત્ર પડકારનો સામનો કર્યો તે કેમેરા સાથે સરળ કાર્ય અને વિવિધ ઉપકરણો પર જીવન ચક્રની પ્રક્રિયાને સક્ષમ કરવાનો હતો. તે સમય માંગી લેતું હતું અને ઘણા બધા તપાસ કાર્યની જરૂર હતી.

શરૂઆતમાં, RTMP (રિયલ ટાઈમ મેસેજિંગ પ્રોટોકોલ) એડોબ સિસ્ટમ્સ દ્વારા સમગ્ર વેબ પર ઑડિઓ અને વિડિયો સ્ટ્રીમ્સ, ટેક્સ્ટ સંદેશાઓ અને અન્ય ડેટા ટ્રાન્સમિટ કરવા માટે બનાવવામાં આવ્યું હતું. તેના કાર્યનો મુખ્ય સિદ્ધાંત સર્વર અને વપરાશકર્તાના ફ્લેશ પ્લેયર વચ્ચે ક્રિયાપ્રતિક્રિયા શરૂ કરવામાં આવેલું છે. RTMP TCP પર આધારિત છે, જેનો અર્થ છે કે તેની ઉચ્ચ પ્રાથમિકતા સ્થિર કનેક્શનને ટકાવી રાખવા અને ઓછી વિલંબિત ક્રિયાપ્રતિક્રિયા પૂરી પાડવા પર રહેલી છે. સરળ સ્ટ્રીમ્સ બ્રોડકાસ્ટ કરવા અને શક્ય તેટલો ડેટા ટ્રાન્સમિટ કરવા માટે RTMP સર્વર માહિતીને ટુકડાઓમાં વિભાજિત કરે છે. પછી, વપરાશકર્તા અને સર્વર વચ્ચેની ક્રિયાપ્રતિક્રિયાના ફોર્મેટને કારણે ટુકડાઓનું કદ વ્યાખ્યાયિત કરવામાં આવે છે.

RTMP વિશે વધુ રસપ્રદ બાબત એ છે કે તેમાં વિવિધ વર્ચ્યુઅલ ચેનલોનો સમાવેશ થાય છે, જે એક મીડિયા સત્ર દરમિયાન ડેટા પેકેટો ટ્રાન્સમિટ કરે છે. આ ચેનલોમાં શામેલ હોઈ શકે છે: RPC વિનંતીઓ અને તેમના પરિણામો માટે એક ચેનલ, નિયંત્રણ સંદેશાઓ માટે એક, ઑડિઓ અને વિડિયો સ્ટ્રીમિંગ માટેની ચેનલો. તદુપરાંત, તેઓ એકબીજા માટે કોઈપણ તકનીકી સમસ્યાઓ ઉભી કર્યા વિના એક સાથે કામ કરી શકે છે.

RTMP વિ RTSP

ડેટા ટ્રાન્સમિટીંગના સંદર્ભમાં, RTSP નામનો બીજો જાણીતો પ્રોટોકોલ છે. તેથી, ચાલો RTMP અને RTSP પ્રોટોકોલ વચ્ચેના તફાવતો પર એક નજર કરીએ.

RTSP (રિયલ ટાઈમ સ્ટ્રીમિંગ પ્રોટોકોલ)નો મુખ્ય હેતુ સ્ટ્રીમિંગ સર્વરની પ્રવૃત્તિઓને જાળવી રાખવાનો છે. વધુમાં, આ પ્રોટોકોલ ક્લાયંટ અને સર્વર વચ્ચે ક્રિયાપ્રતિક્રિયા સેટ કરે છે. RTSP અંતિમ વપરાશકર્તાઓને પ્લે, પોઝ અને સ્ટોપ જેવા સરળ આદેશો દ્વારા મીડિયા સત્રને નિયંત્રિત કરવામાં સક્ષમ કરે છે. તદુપરાંત, તે ગ્રાહકોને સંપૂર્ણ ડાઉનલોડની રાહ જોયા વિના કોઈપણ ટુકડામાંથી વિડિઓ જોવાની મંજૂરી આપે છે.

RTMP, તેના બદલામાં, ઉપરોક્ત લક્ષણોને પણ ટકાવી રાખે છે. જો કે, RTMP સર્વર, RTMP પ્રોટોકોલના માધ્યમથી, ક્લાયન્ટ દ્વારા સત્ર શરૂ કરે ત્યારથી શરૂ કરીને સત્ર બંધ ન થાય ત્યાં સુધી તેની દરેક ક્રિયાઓનું નિરીક્ષણ કરી શકે છે. આ રીતે, તે RTMP ની અંદરના અહેવાલોને વધુ ચોક્કસ બનાવે છે અને ચોક્કસ મીડિયા સત્ર દરમિયાન વપરાશકર્તાની પ્રવૃત્તિનું સંપૂર્ણ ચિત્ર પ્રદાન કરે છે. તેવી જ રીતે RTMP, RTSP પણ લાઇવ સ્ટ્રીમિંગ માટે સક્ષમ છે. જો કે, RTSP માટે સ્ટ્રીમિંગ ડેટા ટ્રાન્સમિશન એ મુખ્ય કાર્ય નથી, તેથી જ, આ હેતુ માટે તેને કેટલાક વધારાના પ્રોટોકોલ્સની જરૂર છે.

તે કેવી રીતે કામ કરે છે

RTMP કાર્યનો સિદ્ધાંત સરળ છે. RTMP સ્ટ્રીમ શરૂ કરવા માટે, તે RTMP સર્વર અને ક્લાયંટ RTMP પ્લેયર વચ્ચે ક્રિયાપ્રતિક્રિયા સ્થાપિત કરવા માટે પૂરતું છે. એકવાર આ સંદેશાવ્યવહાર સેટ થઈ જાય, સર્વર બાઈટ્સના સતત પ્રવાહ તરીકે મીડિયાને પ્રસારિત કરવાનું શરૂ કરે છે. જ્યાં સુધી સર્વર અથવા પ્લેયર સત્ર સમાપ્ત ન કરે ત્યાં સુધી આ પ્રક્રિયા ચાલુ રહે છે.

સારી વાત એ છે કે RTMP પ્રોટોકોલ ખૂબ જ લવચીક છે અને વિવિધ ફોર્મેટમાં ઓડિયો, વિડિયો અને ટેક્સ્ટ માહિતી પહોંચાડવી તેની ક્ષમતાઓથી સંબંધિત છે. દાખલા તરીકે, RTMP પ્રોટોકોલ MP4 અને FLV ફોર્મેટમાં વિડિયો સ્ટ્રીમિંગ, MP3 અને AACમાં ઑડિયો સ્ટ્રીમિંગને સક્ષમ કરે છે. વધુમાં, આ પ્રોટોકોલ માટે આભાર, RTMP સર્વર વેબ એપ્લિકેશનો તેમજ મોબાઇલ ઉપકરણો પર મીડિયા મોકલે છે. આ હેતુ માટે વપરાશકર્તાએ બ્રાઉઝરમાં અથવા તે મુજબ મોબાઇલ ઉપકરણ પર ફ્લેશ પ્લેયર ઇન્સ્ટોલ કરેલ હોવું જરૂરી છે. પછી, swf ફાઇલ, જેમાં સ્ટ્રીમની તમામ મીડિયા માહિતી શામેલ છે, તે ફ્લેશ પ્લેયર દ્વારા ચલાવવામાં આવશે. જો કે, RTMP પ્રોટોકોલનો સૌથી મોટો ફાયદો એ છે કે તેને લાઇવ અને ઓન ડિમાન્ડ સ્ટ્રીમિંગ પર લાગુ કરી શકાય છે. ચાલો આ દરેક સ્ટ્રીમિંગ પ્રક્રિયાઓ પર એક નજર કરીએ.

લાઇવ સ્ટ્રીમિંગ

લાઈવ વિડિયો સ્ટ્રીમિંગ RTMP પ્રોટોકોલની મુખ્ય વિશેષતાઓથી સંબંધિત છે. તેની મદદથી, તમે તમારા વિડિયોને તેના રેકોર્ડિંગની પ્રક્રિયા દરમિયાન જીવંત પ્રસારિત કરી શકો છો. મુખ્યત્વે, લાઇવ બ્રોડકાસ્ટિંગનો ઉપયોગ રમતગમતના કાર્યક્રમો, શો, કોન્સર્ટ વગેરે માટે થાય છે. આ કિસ્સામાં, RTMP પ્રોટોકોલ શાબ્દિક રીતે બદલી ન શકાય તેવું છે. HTTP પ્રોટોકોલ અને તેના દસ સેકન્ડથી વધુ વિલંબની તુલનામાં સ્ટ્રીમિંગમાં વાસ્તવિક સમય કરતાં ઓછી વિલંબ છે, જે વ્યાવસાયિક લાઇવ સ્ટ્રીમિંગ માટે યોગ્ય નથી.

ચાલો લાઇવ સ્ટ્રીમિંગ માટે RTMP અસાધારણ કાર્યક્ષમતાના વધુ એક આબેહૂબ ઉદાહરણની સમીક્ષા કરીએ. ઉદાહરણ તરીકે, લોકપ્રિય IP કેમેરા જે RTMP પ્રોટોકોલને સપોર્ટ કરે છે, તેમાં લાઉડસ્પીકર બનાવવામાં આવ્યા છે, જેથી તમે માત્ર વિડિયોને લાઈવ જોઈ શકતા નથી, પરંતુ પ્રસારણની પ્રક્રિયામાં પણ સામેલ થઈ શકો છો અને સ્ટ્રીમર્સ સમક્ષ તમારો અભિપ્રાય વ્યક્ત કરી શકો છો.

માંગ પર સ્ટ્રીમિંગ

ઑન ડિમાન્ડ સ્ટ્રીમિંગ વપરાશકર્તાઓને પસંદ કરેલી મીડિયા સામગ્રી ક્યારે જોવી તે પસંદ કરવાની મંજૂરી આપે છે, જે તેમના પ્રસારણ સમયે આ સામગ્રીનું નિરીક્ષણ કરવાને બદલે તેમના માટે વધુ અનુકૂળ છે. નિયમ પ્રમાણે, વિડિયો ઓન ડિમાન્ડ (VOD) નો ઉપયોગ ઘણા કારણોસર થાય છે: કારણ કે HD ગુણવત્તા ખાતર જ્યારે ઓનલાઈન દર્શકોની સંખ્યા નોંધપાત્ર ન હોય ત્યારે પણ તે ઓછી ઈન્ટરનેટ કનેક્શન સ્પીડ સાથે પણ સરળતાથી ચાલે છે. RTMP પ્રોટોકોલ સાથે VOD પણ વધુ કાર્યક્ષમ છે. સૌ પ્રથમ, તે મલ્ટિકાસ્ટ સપોર્ટ પ્રદાન કરે છે. જો તમે તમારા કાર્યકારી નેટવર્કની અંદર એક સ્ટ્રીમ રાખવા માંગતા હો અને તેને બહુવિધ વપરાશકર્તાઓને પ્રદાન કરવા માંગતા હો, તો RTMP સાથે તમારે દરેક વપરાશકર્તા માટે અલગ કનેક્શન બનાવવાની જરૂર રહેશે નહીં. HTTP અથવા CDN જેવા અન્ય પ્રોટોકોલમાં આ સુવિધા નથી. ઉપરાંત, RTMP વપરાશકર્તાઓને કનેક્શન સમસ્યાઓના કિસ્સામાં વિડિઓ સ્ટ્રીમ સાથે ફરીથી કનેક્ટ થવા માટે સક્ષમ કરે છે. કનેક્શનમાં મુશ્કેલી દરમિયાન, વિડિઓ બફરથી ચલાવવામાં આવે છે અને જ્યારે વપરાશકર્તા ફરીથી કનેક્ટ કરે છે ત્યારે બફર ભરવાનું શરૂ થાય છે અને આ રીતે વિડિઓ સ્ટ્રીમમાં વારંવાર વિરામ ટાળે છે.

RTMP અમલીકરણો

દેખીતી રીતે, આ બધી માહિતી તમને RTMP કેવી રીતે અમલમાં મૂકવી તે અંગે ઉત્સુક બનાવે છે. આ એક ક્રોસ-પ્લેટફોર્મ પ્રોટોકોલ છે અને તે Windows, Mac, Linux, Android, Windows Mobile, iOS પર કામ કરે છે. શું તમારી પાસે કન્સોલ છે અને રમતો રમવાનો આનંદ માણો છો? તમે Xbox One, PlayStation અને PS Vita જેવા ઉપકરણો માટે સરળતાથી RTMP સેવાઓનો ઉપયોગ કરી શકો છો.

RTMP પ્રોટોકોલ માટે યોગ્ય પ્લેટફોર્મની વિવિધતાને કારણે, ત્યાં છેતેના અમલીકરણ માટે ઘણા વિકલ્પો. તેઓ કમાન્ડ-લાઇન અમલીકરણથી સંપૂર્ણ સુવિધાયુક્ત ઓપન સોર્સ અમલીકરણ સુધી બદલાઈ શકે છે.

કમાન્ડ-લાઇન અમલીકરણ

RTMPDump ટૂલનો ઉપયોગ કમાન્ડ-લાઇન અમલીકરણ માટે થાય છે, કારણ કે તે RTMP સ્ટ્રીમ્સ, લાઇવ બ્રોડકાસ્ટિંગ અને વિડિયો ઓન ડિમાન્ડ રેકોર્ડિંગ સાથે સંપૂર્ણ રીતે સામનો કરે છે. આ ઉપરાંત, RTMPDump એક ઓપન સોર્સ ટૂલ છે જેનો ઉપયોગ Linux, Android, Mac OS X અને Microsoft પર થઈ શકે છે. આ ઉપયોગિતા તેના નાના કદ અને RTMPE ને ડિક્રિપ્ટ કરવાની ક્ષમતાને કારણે ખૂબ જ લોકપ્રિય છે, જે એનક્રિપ્ટેડ RTMP છે, અને RTMPS – સુરક્ષિત RTMP.

RTMPDump પેકેજમાં ત્રણ પ્રોગ્રામ્સ છે: rtmpdump, rtmpsrv અને rtmpsuck. આ દરેક પ્રોગ્રામ ચોક્કસ કાર્યો કરે છે. ઉદાહરણ તરીકે, rtmpdump નો ઉપયોગ RTMP સર્વરો સાથે જોડાણ સ્થાપિત કરવા અને સ્ટ્રીમને જ કેપ્ચર કરવા માટે થાય છે; rtmpsuck એ સ્ટ્રીમને પણ કેપ્ચર કરી શકે છે, અથવા તે rtmpdump માટે કી પરિમાણો એકત્ર કરવામાં મદદ કરી શકે છે. rtmpsrv નું મુખ્ય કાર્ય જોડાણો અને સ્ટ્રીમ્સ પર નજર રાખવાનું છે.

સંપૂર્ણ અમલીકરણ

જો તમે સંપૂર્ણ અમલીકરણમાં વધુ રસ ધરાવો છો, તો તમારે સૉફ્ટવેરના આ ત્રણ ટુકડાઓની જરૂર પડશે: લાઇવ વિડિઓ એન્કોડર, મીડિયા સ્ટ્રીમિંગ સર્વર અને વિડિઓ ક્લાયંટ એપ્લિકેશન. તમે જાણતા નથી કે કયા લાઇવ વિડિઓ એન્કોડરને ઇન્સ્ટોલ કરવું છે? પછી, તમે Flash Media Live Encoder, FFmpeg, WireCast, Wowza Transcoder, Nimble Streamer Transcoder વચ્ચે પસંદ કરી શકો છો. જો કે, કૃપા કરીને ધ્યાનમાં લો કે સૌથી વધુ લોકપ્રિય ફ્લેશ મીડિયા લાઇવ એન્કોડર છે, જે એડોબ વેબસાઇટ પર મફત ડાઉનલોડ માટે ઉપલબ્ધ છે.

વિડિયો ક્લાયંટ એપ્લિકેશન માટે, Adobe Flash Player એ સૌથી સલાહભર્યું પ્રકાર છે. તે એક મફત RTMP પ્લેયર છે અને બ્રાઉઝર અથવા તો મોબાઇલ ઉપકરણમાંથી પ્લગ-ઇન તરીકે કામ કરે છે. ફ્લેશ પ્લેયર યોગ્ય છે વિન્ડોઝ માટે, OS X, Chrome OS અને Linux. વૈકલ્પિક વિકલ્પો Gnash અને VLC મીડિયા પ્લેયર છે. તે બંને ઓપન સોર્સ મીડિયા પ્લેયર્સ છે. Gnash પાસે Linux પર RTMP સ્ટ્રીમિંગમાં ફ્લેશ પ્લેયરને બદલવાની તમામ તકો છે. VLC મીડિયા પ્લેયર, તેના બદલામાં, સાર્વત્રિક નથી, કારણ કે તે RTMP સ્ટ્રીમ્સને માત્ર આંશિક રીતે ટકાવી શકે છે.

RTMP સર્વર જેમ કે Adobe Flash Media Server, Wowza Streaming Engine, Flussonic Media Server ખૂબ સારા હોવાનો દાવો કરવામાં આવે છે. જો કે, તમે RTMP મોડ્યુલ અથવા Red5 સાથે Nginx જેવા મફત RTMP સર્વર ઇન્સ્ટોલ કરી શકો છો, જે Java પર ઓપન સોર્સ RTMP સર્વર પણ છે.

RTMP પ્રોટોકોલ સાથે સૌથી વધુ વારંવાર આવતી સમસ્યાઓનો સામનો કેવી રીતે કરવો

RTMP પ્રોટોકોલ, તેના તમામ સ્પષ્ટ ફાયદાઓ હોવા છતાં, તેના કેટલાક ગેરફાયદા પણ છે. હકીકત એ છે કે તે HTTP પ્રોટોકોલથી ઘણું અલગ છે, તે HTML5 દ્વારા ટકી શકતું નથી. વધુમાં, RTMP પ્રોટોકોલ iDevices પર ખરાબ રીતે કામ કરે છે અને તે વિડિયો સ્ટ્રીમિંગની ગુણવત્તાને અસર કરે છે. આવા કિસ્સામાં, Apple ગેજેટ્સ પર HLS પ્રોટોકોલનો ઉપયોગ કરવો વધુ સારું છે. HLS અને RTMP કાર્યના સિદ્ધાંતો એકદમ સમાન છે, પરંતુ, HLS સાથેના કિસ્સામાં, સ્ટ્રીમને નાની HTTP-આધારિત ફાઇલોની શ્રેણીમાં વિભાજિત કરવામાં આવે છે. શરૂઆતમાં, આ પ્રોટોકોલ Quicktime, iOS અને Safari બ્રાઉઝર માટે વિકસાવવામાં આવ્યો હતો. જો કે, હવે HLS પ્રોટોકોલનો ઉપયોગ અન્ય ઘણા પ્લેટફોર્મ પર પણ થઈ શકે છે. પ્રોટોકોલ બેન્ડવિડ્થ મર્યાદાઓ સાથે ખૂબ સારી રીતે સામનો કરે છે અને તે મુજબ વિડિઓ ગુણવત્તાને અપનાવે છે. વિડિયો ડિલિવરીની ઝડપને ધ્યાનમાં લેતા, HLS શ્રેષ્ઠ પ્રકાર નહીં હોય, કારણ કે તેની લેટન્સી વીસ સેકન્ડ છે.

RTMP પ્રોટોકોલની બીજી ખામી એ છે કે તે બેન્ડવિડ્થ સમસ્યાઓ માટે સંવેદનશીલ છે. કેટલીકવાર, ઓછી બેન્ડવિડ્થ મીડિયા સ્ટ્રીમિંગમાં વિક્ષેપોનું કારણ બની શકે છે અથવા જો ઈન્ટરનેટ કનેક્શન સ્પીડ પૂરતી ન હોય તો સ્ટ્રીમ પણ શરૂ ન થઈ શકે. મર્યાદિત બેન્ડવિડ્થ સાથે બ્રોડકાસ્ટ કરવાની વૈકલ્પિક રીત ડેશનો ઉપયોગ કરવાનો છે. ડૅશ એક અનુકૂલનશીલ બિટરેટ સ્ટ્રીમિંગ ટેક્નોલોજી છે જે ઉચ્ચ ગુણવત્તાયુક્ત મીડિયા પ્રસારણ પ્રદાન કરે છે. આ ટેકનીક ચોક્કસ યુઝરની બેન્ડવિડ્થનું નિદાન કરવામાં અને કનેક્શન સ્પીડ અનુસાર વિડિયો ગુણવત્તાને અનુકૂલિત કરવામાં સક્ષમ છે. વધુમાં, તે એન્કોડર વિના કરી શકતું નથી જે ઘણા બીટ દરો પર વિડિઓને એન્કોડ કરે છે. પછી, યોગ્ય સંસાધનોને કારણે પ્લેયર દ્વારા વિવિધ એન્કોડિંગ્સ સ્વિચ કરવામાં આવે છે. પરિણામે, થોડું બફરિંગ પ્રાપ્ત થાય છે અને ઉત્તમ વિડિઓ અનુભવ પ્રાપ્ત થાય છે. ઉદાહરણ તરીકે, રાષ્ટ્રીય સ્તરે મુખ્ય ઇવેન્ટ્સને સ્ટ્રીમ કરવા માટે આ તકનીકના તમામ ફાયદાઓનો અંદાજ કાઢવો મુશ્કેલ છે.

RTMP પ્રોટોકોલનું વધુ એક નુકસાન એ છે કે ફ્લેશ પ્લેયર પ્લગ-ઇન ઇન્સ્ટોલ કરવાની આવશ્યકતા છે, જેના વિના RTMP મીડિયા ટ્રાન્સમિટ કરવું અશક્ય હશે. ઉપરાંત, CDN સ્ટ્રીમિંગ સેવાઓ માટે RTMP લાગુ કરતી વખતે કેટલીક મુશ્કેલીઓ આવે છે.

શું તમને હજુ પણ RTMP પ્રોટોકોલ અથવા તેના અમલીકરણ અંગે પ્રશ્નો છે? અને અમે તમને તેમાં મદદ કરીશું અને વ્યવહારમાં તેના તમામ ફાયદાઓ દર્શાવીશું.

તાજેતરમાં મને nginx: nginx-rtmp-module માટે રોમન Arutyunyan (@rarutyunyan) ના અદ્ભુત મોડ્યુલ વિશે "nginx પર આધારિત ઓનલાઈન બ્રોડકાસ્ટિંગ સર્વર" વિષય મળ્યો. મોડ્યુલ રૂપરેખાંકિત કરવા માટે ખૂબ જ સરળ છે અને તમને nginx પર આધારિત વિડિઓ રેકોર્ડિંગ્સ અને લાઇવ બ્રોડકાસ્ટિંગ પ્રકાશિત કરવા માટે સર્વર બનાવવાની મંજૂરી આપે છે.

તમે GitHub પર તેના પૃષ્ઠ પર મોડ્યુલ વિશે વાંચી શકો છો, પરંતુ હું થોડા આપવા માંગુ છું સરળ ઉદાહરણોઉપયોગ હું આશા રાખું છું કે આ વિષય નવા લોકોને વિડિયો બનાવવા (મારી જેમ) મદદ કરશે.

RTMP વિશે સંક્ષિપ્તમાં

RTMP (રીઅલ ટાઇમ મેસેજિંગ પ્રોટોકોલ) એ Adobe તરફથી માલિકીનું બ્રોડકાસ્ટ પ્રોટોકોલ છે. ડિફોલ્ટ પરિવહન TCP (પોર્ટ 1935) છે. HTTP (RTMPT) ની અંદર RTMP સમાવિષ્ટ કરવું પણ શક્ય છે. RTMP ક્લાયન્ટ મુખ્યત્વે Adobe Flash Player છે.
વિડીયો કોડેક - H.264, ઓડિયો કોડેક AAC, nellymoser અથવા MP3, MP4 અથવા FLV કન્ટેનર.

વિડિઓ પ્રકાશિત કરી રહ્યાં છીએ

બીજા શબ્દોમાં કહીએ તો, વિડિયો ઓન ડિમાન્ડ (VOD). ફક્ત તેને rtmp વિભાગમાં nginx.conf માં ઉમેરો ( સર્વર (… )).
એપ્લિકેશન vod (/var/videos ચલાવો;)

(નોંધ: અલબત્ત, વિભાગને વોડ કહેવાની જરૂર નથી)
હવે તમે /var/videos ફોલ્ડરમાં યોગ્ય ફોર્મેટમાં વિડિયો ફાઇલ મૂકી શકો છો અને પ્લેયરને સ્ત્રોતને “ફીડ” કરી શકો છો, ઉદાહરણ તરીકે rtmp://server/vod/file.flv. જ્યાં સુધી હું સમજું છું, MP4 મૂળ રીતે વિડિયો રીવાઇન્ડિંગને સપોર્ટ કરે છે, જ્યારે FLV ને અલગથી અનુક્રમિત કરવું પડશે.

ઓનલાઈન પ્રસારણ

અમે પ્રકાશન માટે સમાન RTMP પ્રોટોકોલનો ઉપયોગ કરીને સર્વર પર વિડિઓ અને ઑડિઓ સ્ટ્રીમ મોકલી શકીએ છીએ. અને અમારા ગ્રાહકો બ્રોડકાસ્ટ જોઈ શકશે. આ કરવા માટે, તમારે સર્વરમાં એક વિભાગ ઉમેરવાની જરૂર છે:

એપ્લિકેશન લાઇવ (પ્રકાશિત કરવાની મંજૂરી આપો 1.2.3.4; 192.168.0.0/24 પ્રકાશિત કરવાની મંજૂરી આપો; બધાને પ્રકાશિત કરવાની મંજૂરી આપો; બધાને ચલાવવાની મંજૂરી આપો; લાઇવ ચાલુ કરો;)

જે મશીન પરથી આપણે બ્રોડકાસ્ટ કરીશું, આપણે પહેલા ડાયરેક્ટ શો ઉપકરણોની યાદી મેળવવાની જરૂર છે. પ્રારંભ કરો - ચલાવો - cmd, ffmpeg/bin ફોલ્ડર પર જાઓ અને ચલાવો:
ffmpeg -list_devices true -f dshow -i ડમી

જો તમારા સ્ત્રોતના નામમાં રશિયન અક્ષરો છે, તો તે ખરાબ અક્ષરો તરીકે દેખાઈ શકે છે. સાચા સંચાલકો 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"

"વેબકેમ C170" ને બદલે તમારે સૂચિમાંથી તમારા કેમેરાનું નામ બદલવાની જરૂર છે.
-એક સ્વિચનો અર્થ છે કે અમે ઑડિઓ સ્ટ્રીમ ટ્રાન્સમિટ કરી રહ્યાં નથી. જો ઑડિઓ સ્ટ્રીમની જરૂર હોય, તો સ્ટાર્ટઅપ લાઇન કંઈક આના જેવી દેખાશે:
ffmpeg -f dshow -i video="Webcam C170" -f dshow -i audio="Microphone..." -c:v libx264 -c:a libfaac -ar 44100 -ac 2 -f flv "rtmp://1.2 .3.4/live/test.flv live=1"
અહીં આપણે libfaac કોડેક, સેમ્પલિંગ રેટ 44100, 2 ચેનલ્સ (સ્ટીરિયો) નો ઉપયોગ કરી રહ્યા છીએ. તમે AAC (libmp3lame codec) ને બદલે MP3 નો ઉપયોગ કરી શકો છો.

એનાલોગ કેમેરા

જો તમારા કૅમેરામાં એનાલોગ આઉટપુટ હોય, તો તમે તેને કૅપ્ચર ડિવાઇસનો ઉપયોગ કરીને તમારા કમ્પ્યુટર સાથે કનેક્ટ કરી શકો છો. હું Dealextreme ના સસ્તા PAL કેમેરા અને USB કેપ્ચર બોર્ડનો ઉપયોગ કરું છું.

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 ઇન્સ્ટોલ કરો અથવા 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"
ઓડિયો સ્ટ્રીમ વર્ચ્યુઅલ-ઓડિયો-કેપ્ચરર વડે કેપ્ચર કરી શકાય છે.


એપ્લિકેશનમાં સ્ક્રીન કેપ્ચરનું ઉદાહરણ

પુનઃપ્રસારણ

સ્વાભાવિક રીતે, તમે 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 લાઇવ =1"
પરંતુ આવા હેતુઓ માટે, મધ્યવર્તી લિંકને દૂર કરવા અને સ્ટ્રીમને સર્વર પર જ ખેંચવા માટે RTMP સર્વર પર જ પુશ વિકલ્પનો ઉપયોગ કરવો વધુ વ્યાજબી છે.


જાપાનમાં કેટલાક વેબકેમ

ટ્યુનિંગ, સમસ્યાનું નિરાકરણ

- પ્રીસેટ નામ H.264 માં કમ્પ્રેશન/સ્પીડ રેશિયો સેટિંગના ઘણા સેટ છે: અલ્ટ્રાફાસ્ટ, સુપરફાસ્ટ, ખૂબ ઝડપી, ઝડપી, ઝડપી, મધ્યમ, ધીમો, ધીમો, ખૂબ ધીમો. તેથી, જો તમે પ્રદર્શન સુધારવા માંગતા હો, તો તમારે આનો ઉપયોગ કરવો જોઈએ:
- પ્રીસેટ અલ્ટ્રાફાસ્ટ
-crf સંખ્યા બિટરેટ અને ગુણવત્તાને સીધી અસર કરે છે. 0 થી 51 સુધીના મૂલ્યો સ્વીકારે છે - સંખ્યા જેટલી ઊંચી છે, ચિત્રની ગુણવત્તા ઓછી છે. ડિફોલ્ટ 23, 18 - લોસલેસ ગુણવત્તા. જ્યારે CRF 6 દ્વારા ઘટાડવામાં આવે છે ત્યારે બિટરેટ લગભગ બમણું થાય છે.

-આર સંખ્યા ઇનપુટ અને આઉટપુટ FPS સેટ કરે છે. તમે જે સ્ત્રોતોમાંથી ઇમેજ કેપ્ચર કરો છો, તે માટે તમે તેને -r ને બદલે સેટ કરી શકો છો -ફરીમૂળ FPS નો ઉપયોગ કરવા માટે.

-rtbufsize સંખ્યા રીઅલ-ટાઇમ બફરનું કદ. જો તમને સતત બફર ઓવરફ્લો અને ફ્રેમ ડ્રોપ સંદેશાઓ મળી રહ્યા હોય, તો તમે મોટું બફર સેટ કરી શકો છો (દા.ત. 100000k), પરંતુ આ ટ્રાન્સમિશન લેટન્સીમાં વધારો કરી શકે છે.

-pix_fmtરંગ મોડેલ સ્પષ્ટ કરે છે. જો તમને ચિત્રને બદલે કાળો ચોરસ દેખાય છે, પરંતુ અવાજ કામ કરે છે, તો સેટ કરવાનો પ્રયાસ કરો yuv420pઅથવા yuv422p.

-ઓ પહોળાઈ ઇનપુટ અને આઉટપુટ છબી કદ.

-જી સંખ્યા જ્યાં સુધી હું સમજું છું, આ કી ફ્રેમ્સ વચ્ચેની ફ્રેમ્સની મહત્તમ સંખ્યા છે. જો તમારું FPS ખૂબ ઓછું હોય, તો તમે બ્રોડકાસ્ટ શરૂ કરવામાં વિલંબ ઘટાડવા માટે આ મૂલ્યને ઓછું સેટ કરી શકો છો.

-keyint_min સંખ્યા કી ફ્રેમ્સ વચ્ચે ફ્રેમ્સની ન્યૂનતમ સંખ્યા.

-vf "crop=w:h:x:y"ટ્રિમ વિડિઓ

- ટ્યુન ઝીરોલેટન્સીપ્રસારણ વિલંબ ઘટાડવા માટે "જાદુ" વિકલ્પ. તે બરાબર શું કરે છે તે મને મળ્યું નથી (-:

-વિશ્લેષણ 0અવધિ વિશ્લેષણને અક્ષમ કરે છે, જે પ્રસારણ વિલંબને ઘટાડવામાં મદદ કરે છે

ઉપર ચર્ચા કરેલ ઑડિઓ પરિમાણો ઉપરાંત, તમારે જરૂર પડી શકે છે -એકોડેક નકલજો તમારી ઓડિયો સ્ટ્રીમને MP3/AAC પર વધારાના ટ્રાન્સકોડિંગની જરૂર નથી.

ઉદાહરણ: ધ્વનિ વિના ઓછી વિલંબતા સાથે વેબકૅમથી પ્રસારણ, ચિત્રની ટોચ પર વર્તમાન સમય દોરો

Ffmpeg -r 25 -rtbufsize 1000000k -analyzeduration 0 -s vga -copyts -f dshow -i video="Webcam C170" -vf "drawtext=fontfile=verdana.ttf: [ઇમેઇલ સુરક્ષિત]:fontsize=48:box=1: [ઇમેઇલ સુરક્ષિત]:text=%(સ્થાનિક સમય)" -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"

વેબસાઈટ પર પ્લેયર

અહીં બધું સરળ છે. ઉદાહરણ તરીકે, તમારી વેબસાઇટ પર લોકપ્રિય ખેલાડીઓમાંથી એકને ઇન્સ્ટોલ કરો

શું તમને લેખ ગમ્યો? તમારા મિત્રો સાથે શેર કરો!
પણ વાંચો