Видеолоруңузду YouTube'да XNUMX/XNUMX уктуруу

Акыркы убактарда хобби катары өзүм тааныган психологдун лекцияларын тартып жүрөм. Кадрларды монтаждап, сайтыма жарыялайм. Бир ай мурун мен YouTube сайтында бул лекцияларды 24/7 көрсөтүүнү уюштуруу идеясын алдым. Жеке өсүүгө арналган тематикалык "телеканал" түрү.

Кадимки эфирди кантип жасаганды билем. Бирок аны видеофайлдардын трансляциясы болушу үчүн кантип жасоо керек? Ошентип, ал 24/7 иштейт, ийкемдүү, мүмкүн болушунча автономдуу жана ошол эле учурда менин үй компьютеримден эч кандай көз каранды эмес. Бул мен билишим керек болчу.

Видеолоруңузду YouTube'да XNUMX/XNUMX уктуруу

Чечим табууга бир нече күн кетти. Мен көптөгөн форумдарды жана ар кандай окуу куралдарын окудум, ансыз менин уктурууларым иштемек эмес. Эми тамаша ийгиликке жеткенден кийин, мен чечимимди бөлүшүүнүн зарылдыгын сезип жатам. Бул макала ушундайча пайда болду.

Кыскасы, акыркы чечим төмөнкүдөй болду: VPS + ffmeg + bash скрипти. Кесиптин астында мен жасалган кадамдарды сүрөттөп берем жана берүүнү уюштурууда табылган тузактар ​​жөнүндө айтам.

1-кадам – берүү кайдан келет?

Эң башында эфир кайдан болоорун, булагы кайдан болорун чечиш керек болчу. Эң биринчи оюма келген нерсе болду үй компьютериңизден. Видеолорду ойнотмо тизмеге чогултуп, каалаган видео ойноткучта ойнотуп баштаңыз. Андан кийин экрандын сүрөтүн тартып, аны YouTube'га чыгарыңыз. Бирок мен бул варианттан дээрлик дароо баш тарттым, анткени... Аны ишке ашыруу үчүн үй компьютериңизди тынымсыз күйгүзүп турушуңуз керек, бул муздаткычтардан түн ичинде да ызы-чуу болуп, электр энергиясын керектөөнү көбөйтөт (ай сайын +100-150 кВт саат). Ал эми эфир учурунда үй компьютериңизди колдоно албайсыз. чычкандын каалаган кыймылы уктурууда көрүнүп турат.

Анан мен тарапты карай баштадым булут кызматтары. Мен видеолорумду жүктөй турган же, мисалы, YouTube'дан видеолорго шилтемелерди киргизе турган даяр кызматты издеп жаткам жана анын баары бир тынымсыз трансляцияга топтолот. Бирок мен ылайыктуу эч нерсе тапкан жокмун. Балким жакшы издеген жокмун. Функцияга дал келген бир гана нерсе - restream.io, бир эле учурда бир нече платформага трансляциялоого жардам берген кызмат. Алар сизге өз видеолоруңузду жүктөөгө мүмкүндүк берет окшойт. Бирок бул кызмат такыр башка максаттар үчүн түзүлгөн жана алар берүү бир-эки саатка гана созулат деп күтүшөт. Менин оюмча, эгер бул кызмат аркылуу күнү-түнү уктурууну уюштуруу мүмкүн болсо, анда айына ондогон, жада калса жүздөгөн долларга чейин түшмөк. Бирок мен дагы эле эфирди бекер же минималдуу каржылык салым менен уюштургум келди.

Эфирге керек экени айкын болду же өзүнчө аппарат же өзүнчө компьютер. Мен Raspberri Pi сыяктуу нерсени ойлоп жаттым. Жана эмне? Анын муздаткычы жок. Мен видеону флешка жаздым, Ethernet кабелин сайып, ээн жерге жаткырып, эфирге чыгардым. Опция. Бирок менде башкармалыктын өзү да, аны менен иштөө тажрыйбасы да жок болчу, ошондуктан мен дагы бул варианттан баш тарттым.

Натыйжада, мен алар жаратууну талкуулаган белгилүү бир талкууга туш болдум өз сервери берүүлөр. Бул так мен издеген нерсе эмес болчу, бирок мен негизги идеяны алдым - серверди колдонсоңуз болот! Ошол талкууда VPS + nginx + OBS айкалышын колдонуу сунушталды. Бул комбинация мага да жарашы мүмкүн экени айкын болду. Мени чаташтырган бир гана нерсе, мен эч качан серверди башкарбаганым болду жана мага өзүмдүн арналган серверим башаламан жана кымбат болуп көрүндү. Минималдуу конфигурациядагы серверди ижарага алуу канчага кетерин билүүнү чечтим жана абдан таң калдым.

Видеолоруңузду YouTube'да XNUMX/XNUMX уктуруу

Баалар белорус рублинде көрсөтүлгөн жана бул жөн гана күкүмдөр. Түшүнүү үчүн, 8 белорус рубли болжол менен 3.5 доллар же 240 орус рублин түзөт. 24/7 күйгүзүлгөн жана тез Интернетке кирүү мүмкүнчүлүгү бар толук кандуу компьютерди колдонуу бир ай бою. Эмнегедир бул ачылыш мен үчүн абдан кубанычтуу болду жана мен бир нече күн бою космостук ракеталарды ачкан баладай аябай сүйүнүп жүрдүм :)

Баса, мен Google мага берген биринчи сайттын сунушунан пайдаланып, "VPS ижарасы" суроосу үчүн. Балким, андан да көп бюджеттик чечимдер бар, бирок бул баа мага ылайыктуу жана мен андан ары караган жокмун.

Серверди түзүүдө сиз ал иштей турган операциялык системаны тандай аласыз. Сиз тизмеленген системалардын каалаганында уктурууну уюштуруп, өзүңүздүн каалооңузга жана финансылык мүмкүнчүлүктөрүңүзгө жараша тандоо жасай аласыз (Windows менен сервер үчүн алар кошумча төлөм сурашат). Мен CentOSти тандадым. Жөн гана, анткени буга чейин менде аз тажрыйба болгон.

Видеолоруңузду YouTube'да XNUMX/XNUMX уктуруу

2-кадам – серверди орнотуу

Серверди түзгөндөн кийин сизге керек болгон биринчи нерсе - ага SSH аркылуу туташуу. Башында мен PuTTy колдондум, бирок кийин Google Chrome'до иштеген Secure Shell колдонмосун колдоно баштадым. Мага ыңгайлуураак болуп чыкты.

Андан кийин мен хосттун атын өзгөртүп, серверде убакыт синхрондоштурууну орнотуп, системаны жаңырттым, iptables менен иштедим... жана башка бир топ иштерди жасадым, бирок бул зарыл болгондуктан эмес. Мен жөн гана серверди орнотууга кызыктым жана ал мен үчүн иштеди. Мен аны жакшы көргөндө жакшы көрөм :)

Бул жерде сиз жасашыңыз керек болгон кадамдар:

  1. EPEL репозиторийине туташтырыңыз.
  2. FTP серверин орнотуңуз (мен vsftp тандадым).
  3. ffmpeg орнотуу.

Буйруктарды майда-чүйдөсүнө чейин бербейм, бул көрсөтмөлөр иш-аракеттердин жалпы планын жеткирүү үчүн концептуалдуу. Эгерде сизде кандайдыр бир кадамдар менен кыйынчылыктар болсо, аларды “CentOS Connect EPEL” же “CentOS FTP серверин орнотуу” сыяктуу издөө системасынын суроосу аркылуу тез чечсе болот. Ал эми биринчи шилтемелер боюнча кадам-кадам көрсөтмөлөрдү таба аласыз.

Ошентип, мен мурда жазгандай, мага VPS + nginx + OBS айкалышы керек болчу. VPS - даяр. Бирок башка пункттар боюнча суроолор жарала баштады. OBS бул берүү программасы, Ачык берүү программасы. Жана ал агымдар менен гана иштейт, б.а. мисалы, веб-камерадан сүрөттү алып, аны таркатат. Же экран жаздыруу. Же уланып жаткан берүү башка сайтка багытталат. Бирок менде агым жок, менде бир гана видео файлдардын топтому бар, аларды агымга айлантуу керек.

Мен ушул багытта казып баштадым жана ffmpegге туш келдим. FFmpeg - бул ар кандай форматтарда санариптик аудио жана видеолорду жаздырууга, конвертациялоого жана агымга өткөрүүгө мүмкүндүк берген эркин жана ачык булак китепканаларынын жыйындысы.

Мен ffmpeg канчалык көп кыла аларына таң калдым. Кааласаңыз, ал видеодон үндү чыгарып алат. Кааласаңыз, видеонун фрагментин кайра коддобостон кесип салат. Кааласаңыз, ал бир форматтан экинчи форматка которулат. Жана дагы көп, көп. Сиз ага файлды көрсөтсөңүз болот, ал аны агымга айлантып, YouTube'дун өзүнө өткөрүп берет. Болду, чынжыр жыйналды. Болгону нюанстарды жыйынтыктоо гана калды.

3-кадам – уктурууларды орнотуу

Биз YouTube'да берүү түзөбүз. Бул этапта бизге шилтеме жана уктуруу ачкычы гана керек. Төмөнкү скриншотто алар кызыл менен белгиленген.

Видеолоруңузду YouTube'да XNUMX/XNUMX уктуруу

Далее серверге видео файлдарды жүктөө, аны берүүнү пландап жатабыз. Чынында, FTP бул этап үчүн гана керек. Эгер сизде файлдарды серверге жүктөөнүн башка ыңгайлуу жолу болсо, анда FTP серверин орнотуунун кереги жок.

Агымды YouTube'га өткөрүп беребиз. Берүүнү баштоо үчүн, бир нече атрибуттары бар ffmpeg иштетүү керек. Мен алган эң кыска буйрук мына ушундай:

ffmpeg -re -i lecture1.mp4 -f flv rtmp://a.rtmp.youtube.com/live2/%КЛЮЧ_ТРАНСЛЯЦИИ%

Атрибуттарды чечмелөө-re – файлды агымга айландыруу керектигин көрсөтөт.

-i – кайсы файлды ойнотуу керектигин көрсөтөт. Буйрук видео файлдын өзү жайгашкан каталогдон ишке кириши маанилүү. Болбосо, файлга абсолюттук шилтемени көрсөтүшүңүз керек, мисалы /usr/media/lecture1.mp4.

-f – чыгаруу файлынын форматын орнотот. Менин учурда, ffmpeg менин файлымды mp4тен flvге тез арада которот экен.

Жана аягында биз YouTube'дан алган маалыматтарды берүү жөндөөлөрүнүн бетинде көрсөтөбүз, б.а. уктуруу сиздин каналыңызда атайын көрсөтүлүшү үчүн берилиштерди өткөрүшүңүз керек болгон дарек жана уктуруу ачкычы.

Эгер сиз бардыгын туура кылган болсоңуз, анда бул буйрукту аткаргандан кийин, YouTube өткөрүлүп берилген агымды көрөт. Уктурууну баштоо үчүн YouTube'дун өзүндөгү "Таратууну баштоо" баскычын чыкылдатыңыз.

4-кадам – автономия кошуу

Куттуктайбыз! Эми сиз видеофайлдан берүүнү кантип баштоону билесиз. Бирок бул XNUMX/XNUMX берүү үчүн аздык кылат. Биринчи видео ойнотулуп бүткөндөн кийин, кийинкиси дароо башталышы жана бардык видеолор көрсөтүлгөндө, ойнотуу кайра башталышы маанилүү.

Мен төмөнкү вариантты ойлоп таптым: .sh файлын түздүм, анда мен ар бир видео файл үчүн буйрук жаздым жана аягында ошол эле скриптти кайра иштетүү буйругун көрсөттү. Натыйжада мындай рекурсия болот:

Команда 1... (запуск трансляции файла lecture1.mp4)
Команда 2... (запуск трансляции файла lecture2.mp4)
Команда 3... (запуск трансляции файла lecture3.mp4)
bash start.sh

Жана, ооба, ал иштеген. Өзүмө ыраазы болуп, тесттик эфирди ачып, уктап калдым.

Эртең менен мени жагымсыз сюрприз күтүп турду. Көрсө, эфир бир-эки мүнөткө гана созулуп, компьютеримди өчүргөнүмдө дароо бүтүп калыптыр. Иликтөө көрсөткөндөй, мындай жол менен ишке киргизилген буйруктар колдонуучу серверге кирип турганда аткарылат. Мен ажыратсам эле, мен иштеп жаткан командалар үзгүлтүккө учурады. Буга жол бербее учун коллективдин алдында жетиштуу bash буйрук кошуу nohup. Бул сиздин катышууңузга карабастан иштеп жаткан процессти иштетүүгө мүмкүндүк берет.

Скрипттин акыркы минималдуу версиясы төмөнкүдөй көрүнөт:

ffmpeg -re -i lecture1.mp4 -f flv rtmp://a.rtmp.youtube.com/live2/%КЛЮЧ_ТРАНСЛЯЦИИ%
ffmpeg -re -i lecture2.mp4 -f flv rtmp://a.rtmp.youtube.com/live2/%КЛЮЧ_ТРАНСЛЯЦИИ%
ffmpeg -re -i lecture3.mp4 -f flv rtmp://a.rtmp.youtube.com/live2/%КЛЮЧ_ТРАНСЛЯЦИИ%
nohup bash start.sh $

Бул жерде start.sh бул скрипт жазылган файл. Жана бул файл видео файлдар менен бир каталогдо болушу керек.

Аягында доллар белгисин кошуу процесстин фонунда иштөөсүнө мүмкүндүк берет, андыктан сиз трансляцияны үзгүлтүккө учуратпастан консолду колдонууну уланта аласыз.

Бонустарга төмөнкү жакшылыктар камтылган:

  • Файлды ойнотууну кол менен которсоңуз болот. Бул үчүн, сиз учурда иштеп жаткан ffmpeg процессин "өлтүрүшүңүз" керек. Андан кийин тизмеден кийинки файлды ойнотуу автоматтык түрдө башталат.
  • Жаңы видеолорду трансляцияны токтотпостон кошууга болот. Жөн гана видеону серверге жүктөңүз, бул файлды скриптте иштетүү үчүн буйрук кошуп, аны сактаңыз. Болду. Ойноонун кийинки айлампасында жаңы файл эски файлдар менен бирге таратылат.

5-кадам – ffmpegди өзгөчөлөштүрүү

Негизи ошол жерде токтосок болмок. Бирок мен эфирди көрүүчүлөр үчүн бир аз жагымдуураак кылгым келди.

Бир адам эфирге барды дейли, көрө баштады, жактырды жана бул лекцияны башынан эле көргүсү келди, бирок берүү артка түртүүгө жол бербейт. Лекцияны башынан көрүү үчүн адам менин веб-сайтыма кирип, кызыккан лекциянын жазуусун алышы керек. Кайсы лекция аны кызыктырарын кантип айта аласың? Сайтта буга чейин 16 лекция бар жана алар жума сайын көбүрөөк болот. Бул лекциялардын баарын тасмага тартып, монтаждаган мен да кайсы лекция экенин туш келди үзүндүдөн аныктай албайм деп ойлойм. Ошондуктан ар бир лекция кандайдыр бир түрдө белгилениши керек.

Түзөтүү программасында булак видео файлдарына коштомо жазууларды кошуу опциясы мага туура келген жок. Бул баштапкы файлдар колдонулган камсыз кылуу үчүн зарыл болгон. Ошентип, эфирди колдоо менден мүмкүн болушунча аз дене кыймылын талап кылат.

Көрсө, ffmpeg мага бул жагынан да жардам бере алат экен. Анын өзгөчө касиети бар -vf, бул текстти видеонун үстүнө жайгаштырууга мүмкүндүк берет. Видеого текст кошуу үчүн буйрукка төмөнкү фрагментти кошуу керек:

-vf drawtext="fontfile=OpenSans.ttf:text='Лекция 13: Психология эмоций. Как создавать радость?':fontsize=26:fontcolor=white:borderw=1:bordercolor=black:x=40:y=670"

Параметрлердин түшүндүрмөсүfontfile= – шрифт файлына шилтеме. Ансыз видеого жазуу кошулбайт. Эң оңой жолу - шрифт файлын видео менен бир папкага салуу. Же файлга толук жолду көрсөтүү керек болот.

text= – чындыгында, видеонун үстүнө коюлушу керек болгон тексттин өзү.

fontsize= – пикселдик шрифт өлчөмү.

fontcolor= – шрифт түсү.

borderw= – тексттин айланасындагы контурдун калыңдыгы пикселдер менен (менде ак текст бар, кара контур 1 пиксель калыңдыгы).

bordercolor= - контур түсү.

x= и y= – текст координаттары. чекит 0;0 жогорку сол бурчунда жайгашкан. Менин координаттарым текст 1280x720 пикселдик видео токтому менен ылдыйкы сол бурчка жайгаштырылгандай тандалып алынган.

Бул төмөнкүдөй көрүнөт:

Видеолоруңузду YouTube'да XNUMX/XNUMX уктуруу

6-кадам – берүүнүн сапатын аныктоо

Болду, эфир даяр. FFmpeg берүүлөрү, файлдар ойнотулат, менин катышуусум берүү үчүн керек эмес. Ал тургай ар бир лекцияга кол коюлат. Мына ушундай окшойт.

Бирок дагы бир нюанс пайда болду - мен минималдуу сервер конфигурациясын тандап алдым, бирок ал уктурууну көтөргөн жок. Сервердин конфигурациясы: 1 өзөк (мисалы, 2.2 ГГц), 1 гигабайт оперативдик эс, 25 ГБ SSD. RAM жетиштүү болчу, бирок процессор дээрлик 100% (жана кээде 102-103% да) жүктөлгөн :) Бул берүү бир нече секунд сайын катып калышына алып келди. Жакшы эмес.

Сиз жөн гана эки өзөктүү кымбатыраак конфигурацияны алсаңыз болот, бактыга жараша, булут технологиялары менен сервер конфигурациясын өзгөртүү бир нече баскычты басуу менен болот. Бирок мен минималдуу конфигурация сыйымдуулугуна туура келгим келди. Мен ffmpeg документтерин изилдей баштадым жана ооба, системадагы жүктү жөнгө салууга мүмкүндүк берген орнотуулар да бар.

Сүрөттүн жогорку сапатына эки жол менен жетишүүгө болот: жогорку CPU жүгү же жогорку трафик. Көрсө, процессор канчалык көп жүктү көтөрсө, каналдын өткөрүү жөндөмдүүлүгү ошончолук азыраак талап кылынат. Же сиз процессорду өтө көп жүктөй албайсыз, бирок анда сизге трафиктин чоң резерви бар кең канал керек болот. Эгерде процессорго да, чыгуучу каналдын/трафиктин өлчөмүнө да чектөөлөр бар болсо, анда трансляция бир калыпта өтүшү үчүн сүрөттүн сапатын төмөндөтүүгө туура келет.

Менин серверим 10 Мбит/сек кең каналга кире алат. Бул туурасы туура. Бирок трафиктин чеги бар - айына 1 ТБ. Ошондуктан, жол кыймылынын чектөөлөрүн канааттандыруу үчүн, менин чыгуучу агым секундасына ~ 300 КБ ашпашы керек, б.а. Чыгуучу агымдын бит ылдамдыгы 2,5 Мбит/с ашпоого тийиш. YouTube, демек, ушул бит ылдамдыкта көрсөтүүнү сунуштайт.

Системадагы жүктү жөнгө салуу үчүн ffmpeg ар кандай ыкмаларды колдонот. Бул тууралуу жакшы жазылган бул жерде. Мен эки атрибутту колдонуп бүттүм: -crf и -preset.

Туруктуу тариф фактору (CRF) – бул коэффициент, анын аркасында сиз сүрөттүн сапатын тууралай аласыз. CRF 0дөн 51ге чейинки маанилерге ээ болушу мүмкүн, мында 0 - баштапкы файлдын сапаты, 51 - эң начар сапат. 17ден 28ге чейинки маанилерди колдонуу сунушталат, демейки 23. 17 коэффициенти менен видео визуалдык жактан түпнускага окшош болот, бирок техникалык жактан ал бирдей болбойт. Документте ошондой эле акыркы видеонун көлөмү көрсөтүлгөн CRFге жараша экспоненциалдуу түрдө өзгөрөт, б.а. коэффициентти 6 пунктка жогорулатуу чыгуучу видеонун бит ылдамдыгын эки эсеге көбөйтөт.

Эгерде CRF колдонсоңуз, анда чыгуучу сүрөттүн "салмагын" тандап, андан кийин колдонсоңуз болот алдын ала орнотуулар (-алдын ала коюлган) процессор канчалык оор жүктөлөөрүн аныктай аласыз. Бул атрибут төмөнкү параметрлерге ээ:

  • ultrafast
  • superfast
  • veryfast
  • faster
  • fast
  • medium – демейки маани
  • slow
  • slower
  • veryslow

Параметр канчалык “тезирээк” көрсөтүлсө, процессордогу жүк ошончолук жогору болот.

Мен алгач процессорум үчүн өтө катаал болгон алдын ала орнотууну тандадым, андан кийин CRF аркылуу жүктөмдү жакшыраак тандадым. Менин учурда, алдын ала орнотуу иштеген fast, жана crf үчүн мен 24 маанисине токтолдум.

жыйынтыктоо

Баары болду. Берүүнү баштоо үчүн акыркы буйрук мындай болду:

ffmpeg -re -i lecture1.mp4 -vf drawtext="fontfile=OpenSans.ttf:text='Лекция 1: Жонглирование картинами мира':fontsize=26:fontcolor=white:borderw=1:bordercolor=black:x=40:y=670" -c:v libx264 -preset fast -crf 24 -g 3 -f flv rtmp://a.rtmp.youtube.com/live2/%КЛЮЧ_ТРАНСЛЯЦИИ%

Бул жерде эки гана сүрөттөлбөгөн пункт калды:

1) -c:v libx264 – баштапкы файл менен иштөө үчүн атайын кодекти көрсөтүү.
2) -g 3 – негизги кадрлардын санын ачык көрсөтүү. Бул учурда, ар бир үчүнчү кадр негизги кадр болушу керек деп көрсөтүлгөн. Стандарттык маани 5 же 8, бирок YouTube ант берип, жок дегенде 3 талап кылат.

Эфир кандай сапатта болгонун көрүүгө болот бул жерде.

Сервердеги жүк төмөнкүдөй болгон:

Видеолоруңузду YouTube'да XNUMX/XNUMX уктуруу

Видеолоруңузду YouTube'да XNUMX/XNUMX уктуруу

Мониторингдин маалыматтарына таянсак, процессордун жүгү 70% дан 95% га чейин жана бир жумада берүү эч качан 100% га жеткен эмес. Бул бул орнотуулар менен процессор жетиштүү дегенди билдирет.

Дискти жүктөө менен, ал дээрлик жүктөлгөн эмес жана берүү үчүн кадимки HDD жетиштүү болушу керек деп айта алам.

Бирок чыккан трафиктин көлөмү мени тынчсыздандырат. Көрсө, менин чыгуучу агым секундасына 450дөн 650 КБга чейин жетет. Бир айдын ичинде бул болжол менен 1,8 терабайт болот. Кошумча трафикти сатып алууга же эки өзөктүү конфигурацияга өтүүгө туура келиши мүмкүн, анткени... Сүрөттүн сапатын төмөндөткүм келбейт.

***

Жыйынтыгында мындай берүүнү нөлдөн баштап орнотуу 1-2 саатка жакын убакытты талап кылаарын айтайын. Анын үстүнө видеону серверге жүктөө көп убакытты талап кылат.

Мындай уктурууну ишке киргизүү маркетинг куралы катары өзүн актаган жок. Мүмкүн, эгер биз көрүүлөрдү көбөйтүп, YouTube алгоритмдери бул уктурууну тандап, аны сунуштарда активдүү көрсөтө баштасак, анда бир нерсе оңунан чыкмак. Менимче, 16 күн үзгүлтүксүз эфирде 58 жолу көрүлгөн.

Бул жакшы. Эфир менин веб-сайтымдын башкы бетине шайкеш келет. Бул мага лектор жана лекциялардын өзү жөнүндө өзүмдүн пикиримди тез калыптандырууга мүмкүнчүлүк берди.

Жана бир көз ирмем. Эфир эч кимдин автордук укугун бузбашы маанилүү, антпесе ал бөгөттөлөт. Мен эфирге тынчмын, анткени... Мен атайын бекер колдонуу менен музыкалык кошумчаларды тандадым, ал эми мазмундун автору жакын жердеги компьютерде отурат жана анын мазмунун колдонууга таптакыр каршы эмесмин :)

Бирок, эгер сизде радиоңуз уктурууңуздун кайсы бир жеринде фондо ойноп жатса, же монтаждоо учурунда сүйүктүү трекиңизди колдонсоңуз же популярдуу музыкалык видеодон, сериалдан же тасмадан видео ырааттуулугун тартып алсаңыз, анда сиздин уктурууңуз коркунучта. Ошондой эле уктуруунун эң аз семантикалык жүктү көтөрүшү маанилүү, антпесе ал спам катары бөгөттөлүшү мүмкүн.

***

Менде болгону ушул. Бул колдонмо кимдир бирөөгө жакшы кызмат кылат деп ишенем. Эгер сизде кошумчалай турган нерсе болсо, жазыңыз, мен макалага толуктоолорду жана тактоолорду окууга кубанычта болом.

Source: www.habr.com

Комментарий кошуу