Бейнелеріңізді YouTube сайтында XNUMX/XNUMX таратыңыз

Соңғы кездері хобби ретінде өзім білетін психологтың дәрістерін түсіріп жүрмін. Мен кадрларды өңдеп, сайтыма жариялаймын. Бір ай бұрын мен YouTube-те осы дәрістердің тәулік бойы трансляциясын ұйымдастыру идеясын алдым. Жеке өсуге арналған тақырыптық «телеарна».

Мен тұрақты хабарды қалай жасау керектігін білемін. Бірақ оны бейне файлдардың трансляциясы болатындай етіп қалай жасауға болады? Ол 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 ресей рублін құрайды. Тәулік бойы қосылған және Интернетке жылдам қол жеткізу мүмкіндігі бар толыққанды компьютерді бір ай бойы пайдалану. Қандай да бір себептермен бұл жаңалық мен үшін өте қуанышты болды және мен бірнеше күн бойы ғарыштық зымырандарды ашқан бала сияқты қатты қуанып жүрдім :)

Айтпақшы, мен 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 — хабар тарату бағдарламасы, Open Broadcaster Software. Және ол тек ағындармен жұмыс істейді, яғни. мысалы, ол веб-камерадан суретті алып, оны таратады. Немесе экранды жазу. Немесе қазірдің өзінде жүріп жатқан трансляция басқа сайтқа қайта бағытталады. Бірақ менде ағын жоқ, менде тек ағынға айналдыру керек бейне файлдар жинағы бар.

Мен осы бағытта қазуды бастадым және 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-қадам – автономияны қосыңыз

Құттықтаймыз! Енді сіз бейне файлдан хабар таратуды қалай бастау керектігін білесіз. Бірақ бұл тәулік бойы хабар тарату үшін жеткіліксіз. Бірінші бейне ойнатылып болғаннан кейін келесісі бірден басталып, барлық бейнелер көрсетілгенде ойнату қайта басталуы маңызды.

Мен келесі опцияны ойлап таптым: .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. Жеткілікті жедел жады болды, бірақ процессор толығымен дерлік 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 рет қаралды.

Бәрі жақсы. Трансляция менің веб-сайтымның басты бетіне үйлесімді түрде сәйкес келеді. Бұл маған лектор мен дәрістердің өзі туралы өз пікірімді тез қалыптастыруға мүмкіндік берді.

Және бір сәт. Трансляцияның ешкімнің авторлық құқығын бұзбауы маңызды, әйтпесе ол бұғатталады. Мен өз хабарыма сабырлымын, өйткені... Мен арнайы тегін пайдалану арқылы музыкалық кірістірулерді таңдадым, ал мазмұнның авторы жақын жерде орналасқан компьютерде отырады және оның мазмұнын пайдалануға мүлдем қарсы емес :)

Бірақ егер сізде радиохабардың бір жерінде фондық режимде ойнатылатын болса немесе өңдеу кезінде сүйікті трегіңізді пайдалансаңыз немесе танымал музыкалық бейнеден, телехикаялардан немесе фильмнен бейне тізбегін түсірген болсаңыз, онда сіздің хабарыңызға қауіп төнеді. Сондай-ақ хабар таратудың ең аз семантикалық жүктемені көтеруі маңызды, әйтпесе ол спам ретінде бұғатталуы мүмкін.

***

Менде бар болғаны осы. Бұл нұсқаулық біреуге жақсы қызмет етеді деп үміттенемін. Жақсы, егер сізде толықтыратын нәрсе болса, жазыңыз, мен мақалаға толықтырулар мен нақтылауларды оқуға қуаныштымын.

Ақпарат көзі: www.habr.com

пікір қалдыру