Lähetä videoitasi YouTubessa XNUMX/XNUMX

Viime aikoina olen harrastuksena kuvannut tuntemani psykologin luentoja. Muokkaan materiaalia ja julkaisen sen verkkosivuillani. Kuukausi sitten sain idean järjestää 24/7-lähetys näistä luennoista YouTubessa. Eräänlainen temaattinen "TV-kanava", joka on omistettu henkilökohtaiselle kasvulle.

Tiedän kuinka tehdä tavallinen lähetys. Mutta miten se tehdään niin, että se lähettää videotiedostoja? Joten se toimii 24/7, on joustava, mahdollisimman autonominen, eikä samalla ole millään tavalla riippuvainen kotitietokoneestani. Tämä minun piti ottaa selvää.

Lähetä videoitasi YouTubessa XNUMX/XNUMX

Ratkaisun löytäminen kesti useita päiviä. Olen tutkinut monia foorumeita ja erilaisia ​​käsikirjoja, joita ilman lähetykseni ei yksinkertaisesti olisi toiminut. Ja nyt kun kepponen onnistui, tunnen tarvetta jakaa ratkaisuni. Näin tämä artikkeli ilmestyi.

Lyhyesti sanottuna lopullinen ratkaisu oli seuraava: VPS + ffmeg + bash-skripti. Leikkauksen alla kuvailen toteutetut askeleet ja puhun lähetystä järjestettäessä havaittuista sudenkuopat.

Vaihe 1 – mistä lähetys tulee?

Heti alussa piti päättää, mistä lähetys tulee ja missä sen lähde olisi. Ihan ensimmäisenä tuli mieleen kotitietokoneeltasi. Kokoa videot soittolistaksi ja aloita niiden toistaminen missä tahansa videosoittimessa. Ota sitten näyttökuva ja lähetä se YouTubeen. Mutta melkein heti hylkäsin tämän vaihtoehdon, koska... Sen toteuttamiseksi sinun tulee pitää kotitietokoneesi jatkuvasti päällä, mikä tarkoittaa jäähdyttimien melua yölläkin ja lisääntynyttä sähkönkulutusta (+100-150 kWh kuukaudessa). Ja käy ilmi, että et voi käyttää kotitietokonettasi lähetyksen aikana. kaikki hiiren liikkeet näkyvät lähetyksessä.

Sitten aloin katsoa sivulle pilvipalvelut. Etsin valmiita palveluita, joihin voisin ladata videoitani tai esimerkiksi laittaa linkkejä YouTubesta oleviin videoihin ja se kaikki pakattaisiin yhdeksi non-stop-lähetykseksi. Mutta en löytänyt mitään sopivaa. Ehkä en etsinyt hyvin. Ainoa toiminnallisuuteen sopiva asia on restream.io, palvelu, joka auttaa lähettämään samanaikaisesti useille alustoille. Niiden avulla voit ladata omia videoitasi. Mutta tämä palvelu luotiin täysin eri tarkoituksiin ja he odottavat lähetyksen kestävän vain muutaman tunnin. Uskon, että jos tämän palvelun kautta olisi mahdollista järjestää ympärivuorokautinen lähetys, niin se nousisi kymmeniin tai jopa satoihin dollareihin kuukaudessa. Mutta halusin silti järjestää lähetyksen joko ilmaiseksi tai pienin taloudellisin investoinnein.

Kävi selväksi, että lähetystä varten oli tarpeen tai erillinen laite tai jopa erillinen tietokone. Ajattelin jotain Raspberri Pi:n kaltaista. Ja mitä? Hänellä ei ole jäähdytintä. Tallensin videon flash-asemalle, liitin Ethernet-kaapelin ja annoin sen olla jossain syrjäisessä paikassa ja lähettää sen. Vaihtoehto. Mutta minulla ei ollut itse lautaa eikä kokemusta sen kanssa työskentelystä, joten kieltäydyin myös tästä vaihtoehdosta.

Tuloksena törmäsin tiettyyn keskusteluun, jossa keskusteltiin luomisesta oma palvelin lähetyksiä. Se ei ollut juuri sitä mitä etsin, mutta sain pääidean - voit käyttää palvelinta! Tässä keskustelussa ehdotettiin VPS + nginx + OBS -yhdistelmän käyttöä. Kävi selväksi, että tämä yhdistelmä voisi sopia minullekin. Ainoa asia, joka hämmensi minua, oli se, että en ollut koskaan hallinnoinut palvelinta, ja minusta tuntui, että oman palvelimen omistaminen oli hämmentävää ja kallista. Päätin selvittää, kuinka paljon palvelimen vuokraaminen minimikokoonpanolla maksaisi, ja olin iloisesti yllättynyt.

Lähetä videoitasi YouTubessa XNUMX/XNUMX

Hinnat on ilmoitettu Valko-Venäjän ruplissa ja nämä ovat vain murusia. Ymmärtääkseni 8 Valko-Venäjän ruplaa on noin 3.5 dollaria tai 240 Venäjän ruplaa. Kuukauden ajan täysimittaisen tietokoneen käytössä, joka on päällä 24/7 ja jossa on nopea Internet-yhteys. Jostain syystä tämä löytö tuli minulle erittäin iloiseksi ja kävelin useita päiviä hirveän iloisena, kuin lapsi, joka löysi avaruusraketit :)

Muuten, käytin hyväkseni ensimmäisen sivuston tarjousta, jonka Google antoi minulle kyselyyn "VPS vuokraus". Ehkä budjettiratkaisuja on enemmänkin, mutta tämä hinta sopi minulle, enkä katsonut pidemmälle.

Palvelinta luotaessa voit valita käyttöjärjestelmän, jossa se toimii. Voit järjestää lähetyksen missä tahansa luetelluista järjestelmistä ja tehdä valinnan mieltymystesi ja taloudellisten kykyjesi perusteella (Windows-palvelimesta he pyytävät lisämaksua). Valitsin CentOS:n. Yksinkertaisesti siksi, että minulla oli vähän kokemusta siitä aiemmin.

Lähetä videoitasi YouTubessa XNUMX/XNUMX

Vaihe 2 – palvelimen asennus

Ensimmäinen asia, jonka tarvitset palvelimen luomisen jälkeen, on muodostaa yhteys siihen SSH:n kautta. Aluksi käytin PuTTyä, mutta sitten aloin käyttää Secure Shell Appia, joka toimii Google Chromessa. Se osoittautui minulle kätevämmaksi.

Sitten vaihdoin isäntänimen, asetin aikasynkronoinnin palvelimelle, päivitin järjestelmän, harrastin iptablesia... ja tein paljon muuta, mutta en siksi, että se oli välttämätöntä. Olin vain kiinnostunut palvelimen perustamisesta ja se toimi minulle. Rakastan sitä kun se onnistuu :)

Tässä ovat vaiheet, jotka sinun on suoritettava:

  1. Yhdistä EPEL-arkisto.
  2. Asenna FTP-palvelin (valitsin vsftp:n).
  3. Asenna ffmpeg.

En anna komentoja yksityiskohtaisesti, nämä ohjeet ovat melko käsitteellisiä yleisen toimintasuunnitelman välittämiseksi. Jos sinulla on vaikeuksia jonkin vaiheen kanssa, ne voidaan ratkaista nopeasti käyttämällä hakukonekyselyä, kuten "CentOS connect EPEL" tai "CentOS install FTP server". Ja ensimmäisistä linkeistä löydät yksityiskohtaiset vaiheittaiset ohjeet.

Joten, kuten aiemmin kirjoitin, tarvitsin yhdistelmän VPS + nginx + OBS. VPS – valmis. Mutta kysymyksiä alkoi herätä muista kohdista. OBS on yleisradio-ohjelma, Open Broadcaster Software. Ja se toimii vain streamien kanssa, ts. se esimerkiksi ottaa kuvan web-kamerasta ja lähettää sen. Tai näytön tallennus. Tai jo käynnissä oleva lähetys ohjataan toiselle sivustolle. Mutta minulla ei ole streamia, minulla on vain joukko videotiedostoja, jotka on tehtävä streamiksi.

Aloin kaivaa tähän suuntaan ja törmäsin ffmpegiin. FFmpeg on joukko ilmaisia ​​ja avoimen lähdekoodin kirjastoja, joiden avulla voit tallentaa, muuntaa ja suoratoistaa digitaalista ääntä ja videota useissa eri muodoissa.

Ja olin hyvin yllättynyt siitä, kuinka paljon ffmpeg voi tehdä. Jos haluat, se poimii äänen videosta. Jos haluat, se leikkaa osan videosta ilman uudelleenkoodausta. Jos haluat, se muunnetaan muodosta toiseen. Ja paljon, paljon muuta. Siinä määrin, että voit määrittää sille tiedoston, se muuntaa sen streamiksi ja lähettää sen itse YouTubeen. Siinä se, ketju on koottu. Jäljelle jää vain viimeistellä vivahteet.

Vaihe 3 – lähetysasetukset

Luomme lähetyksen YouTubeen. Tässä vaiheessa tarvitsemme vain linkin ja lähetysavaimen. Alla olevassa kuvakaappauksessa ne on korostettu punaisella.

Lähetä videoitasi YouTubessa XNUMX/XNUMX

Edelleen ladata videotiedostoja palvelimelle, jonka aiomme lähettää. Itse asiassa FTP tarvitaan vain tässä vaiheessa. Jos sinulla on toinen kätevä tapa ladata tiedostoja palvelimelle, sinun ei tarvitse määrittää FTP-palvelinta.

Välitämme streamin YouTubeen. Lähetyksen aloittamiseksi sinun on suoritettava ffmpeg useilla määritteillä. Tältä näyttää lyhin saamani komento:

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

Attribuuttien dekoodaus-re – ilmaisee, että tiedosto on muutettava streamiksi.

-i – osoittaa, mikä tiedosto tulee toistaa. On tärkeää, että komento käynnistetään samasta hakemistosta, jossa itse videotiedosto sijaitsee. Muussa tapauksessa sinun tulee määrittää absoluuttinen linkki tiedostoon, esim /usr/media/lecture1.mp4.

-f – määrittää tulostetiedostomuodon. Minun tapauksessani käy ilmi, että ffmpeg muuntaa tiedostoni mp4:stä flv:ksi lennossa.

Ja lopussa ilmoitamme lähetysasetussivulle tiedot, jotka otimme YouTubesta, ts. osoite, johon sinun on siirrettävä tiedot, ja lähetysavain, jotta lähetys näkyy nimenomaan kanavallasi.

Jos teit kaiken oikein, tämän komennon suorittamisen jälkeen YouTube näkee lähetetyn streamin. Aloita lähetys napsauttamalla "Aloita lähetys" -painiketta itse YouTubessa.

Vaihe 4 – lisää autonomiaa

Onnittelut! Nyt tiedät kuinka aloittaa lähetys videotiedostosta. Mutta tämä ei riitä XNUMX/XNUMX-lähetyksiin. On tärkeää, että ensimmäisen videon toiston päätyttyä seuraava alkaa välittömästi, ja kun kaikki videot on näytetty, toisto alkaa uudelleen.

Keksin seuraavan vaihtoehdon: luo .sh-tiedosto, johon kirjoitin komennon jokaiselle videotiedostolle ja osoitin aivan lopussa komennon suorittaa sama skripti uudelleen. Tuloksena on seuraavanlainen rekursio:

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

Ja kyllä, se toimi. Tyytyväinen itseeni, aloitin testilähetyksen ja menin nukkumaan.

Aamulla minua odotti epämiellyttävä yllätys. Kävi ilmi, että lähetys kesti vain muutaman minuutin ja päättyi melkein heti kun sammutin tietokoneeni. Tutkimus osoitti, että tällä tavalla käynnistetyt komennot suoritetaan käyttäjän ollessa kirjautuneena palvelimelle. Heti kun katkaisin yhteyden, suorittamani komennot keskeytettiin. Jotta näin ei tapahdu, se riittää joukkueen edessä bash lisää komento nohup. Tämä mahdollistaa käynnissä olevan prosessin suorittamisen läsnäolostasi riippumatta.

Käsikirjoituksen lopullinen minimiversio näyttää tältä:

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 $

Missä start.sh on tiedosto, johon tämä komentosarja on kirjoitettu. Ja tämän tiedoston on sijaittava samassa hakemistossa kuin videotiedostot.

Kun lisäät dollarin loppuun, prosessi voidaan suorittaa taustalla, joten voit jatkaa konsolin käyttöä keskeyttämättä lähetystä.

Bonuksiin sisältyi seuraavat herkut:

  • Voit vaihtaa tiedostojen toistoa manuaalisesti. Tätä varten sinun on "tappattava" parhaillaan käynnissä oleva ffmpeg-prosessi. Tämän jälkeen luettelon seuraavan tiedoston toisto alkaa automaattisesti.
  • Uusia videoita voidaan lisätä lähetykseen keskeyttämättä lähetystä. Lataa vain video palvelimelle, lisää komento tämän tiedoston suorittamiseksi skriptissä ja tallenna se. Siinä kaikki. Seuraavalla toistokierroksella uusi tiedosto lähetetään yhdessä vanhojen tiedostojen kanssa.

Vaihe 5 - mukauta ffmpeg

Periaatteessa olisimme voineet pysähtyä tähän. Halusin kuitenkin tehdä lähetyksestä katsojille hieman ystävällisemmän.

Oletetaan, että joku meni lähetykseen, aloitti katsomisen, piti siitä ja halusi katsoa tämän luennon alusta asti, mutta lähetys ei salli kelausta taaksepäin. Voidakseen katsoa luennon alusta, henkilön on mentävä verkkosivustolleni ja hankittava tallenne kiinnostavasta luennosta. Kuinka voit kertoa, mikä luento häntä kiinnostaa? Sivustolla on jo 16 luentoa ja niitä tulee vain lisää joka viikko. Luulen, että edes minä, joka kuvasin ja editoin kaikki nämä luennot, en pysty satunnaisesta katkelmasta päättelemään, mikä luento se on. Siksi on välttämätöntä, että jokainen luento on jollakin tavalla nimetty.

Mahdollisuus lisätä kuvatekstejä lähdevideotiedostoihin muokkausohjelmassa ei sopinut minulle. Oli tarpeen varmistaa, että alkuperäisiä tiedostoja käytettiin. Jotta lähetyksen tukeminen vaatii minulta mahdollisimman vähän kehon liikkeitä.

Kävi ilmi, että ffmpeg voisi auttaa minua myös tässä. Sillä on erityinen ominaisuus -vf, joka mahdollistaa tekstin sijoittamisen videon päälle. Jos haluat lisätä tekstiä videoon, sinun on lisättävä komentoon seuraava fragmentti:

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

Parametrien selitysfontfile= – linkki fonttitiedostoon. Ilman tätä tekstitystä ei lisätä videoon. Helpoin tapa on laittaa fonttitiedosto samaan kansioon videon kanssa. Tai sinun on määritettävä tiedoston koko polku.

text= – itse asiassa itse teksti, joka on sijoitettava videon päälle.

fontsize= – fonttikoko pikseleinä.

fontcolor= - fontin väri.

borderw= – tekstin ympärillä olevan ääriviivan paksuus pikseleinä (minulla on valkoinen teksti, jonka musta ääriviiva on 1 pikselin paksuinen).

bordercolor= – ääriviivan väri.

x= и y= – tekstin koordinaatit. Piste 0;0 sijaitsee vasemmassa yläkulmassa. Koordinaattini on valittu siten, että teksti sijoitetaan vasempaan alakulmaan videoresoluutiolla 1280x720 pikseliä.

Se näyttää tältä:

Lähetä videoitasi YouTubessa XNUMX/XNUMX

Vaihe 6 – määritä lähetyksen laatu

Siinä kaikki, lähetys on valmis. FFmpeg-lähetyksiä, tiedostoja toistetaan, läsnäoloani ei tarvita lähetykseen. Jopa jokainen luento on allekirjoitettu. Näyttää siltä, ​​että se on siinä.

Mutta vielä yksi vivahde ilmaantui - valitsin palvelimen vähimmäiskokoonpanon, eikä se nostanut lähetystä. Palvelinkokoonpano: 1 ydin (kuten 2.2 GHz), 1 gigatavu RAM-muistia, 25 Gt SSD. RAM-muistia riitti, mutta prosessori oli lähes täysin ladattu 100% (ja välillä jopa 102-103% :) Tämä johti lähetyksen jäätymiseen muutaman sekunnin välein. Ei kivaa.

Voisi yksinkertaisesti ottaa kalliimman kokoonpanon kahdella ytimellä, onneksi pilviteknologioilla palvelinkokoonpanon muuttaminen tapahtuu paria painiketta painamalla. Mutta halusin mahtua vähimmäiskokoonpanokapasiteettiin. Aloin tutkia ffmpeg-dokumentaatiota ja kyllä, siellä on myös asetuksia, joilla voit säädellä järjestelmän kuormitusta.

Korkea kuvanlaatu voidaan saavuttaa kahdella tavalla: joko korkealla suorittimen kuormituksella tai suurella lähtevällä liikenteellä. Osoittautuu, että mitä enemmän kuormaa prosessori kestää, sitä vähemmän kanavan kaistanleveyttä tarvitaan. Tai et voi ladata prosessoria liikaa, mutta silloin tarvitset leveän kanavan suurella liikennevaralla. Jos sekä prosessorille että lähtevän kanavan/liikenteen koosta on rajoituksia, joudut alentamaan kuvan laatua, jotta lähetys sujuu sujuvasti.

Palvelimellani on pääsy 10 Mbit/s leveään kanavaan. Tämä leveys on juuri sopiva. Mutta siellä on liikennerajoitus - 1 TB kuukaudessa. Siksi liikennerajoitusten noudattamiseksi lähtevän virtani ei saisi ylittää ~300 KB sekunnissa eli. Lähtevän virran bittinopeus ei saa olla yli 2,5 Mbit/s. YouTube muuten suosittelee lähettämistä tällä bittinopeudella.

Järjestelmän kuormituksen säätelemiseksi ffmpeg käyttää erilaisia ​​​​lähestymistapoja. Hyvin kirjoitettu tästä täällä. Päädyin käyttämään kahta attribuuttia: -crf и -preset.

Vakionopeustekijä (CRF) – Tämä on kerroin, jonka ansiosta voit säätää kuvan laatua. CRF:n arvot voivat olla 0-51, missä 0 on lähdetiedoston laatu, 51 on huonoin mahdollinen laatu. On suositeltavaa käyttää arvoja 17-28, oletusarvo on 23. Kertoimella 17 video on visuaalisesti identtinen alkuperäisen kanssa, mutta teknisesti se ei ole sama. Dokumentaatiossa todetaan myös, että lopullisen videon koko vaihtelee määritetystä CRF:stä riippuen eksponentiaalisesti, ts. kertoimen lisääminen 6 pisteellä kaksinkertaistaa lähtevän videon bittinopeuden.

Jos käytät CRF:ää, voit valita lähtevän kuvan “painon” ja sitten käyttämällä esiasetukset (-esiasetus) voit määrittää, kuinka paljon prosessoria kuormitetaan. Tällä määritteellä on seuraavat parametrit:

  • ultrafast
  • superfast
  • veryfast
  • faster
  • fast
  • medium - oletusarvo
  • slow
  • slower
  • veryslow

Mitä "nopeammin" parametri määritetään, sitä suurempi prosessorin kuormitus on.

Valitsin ensin esiasetuksen, joka oli pohjimmiltaan liian kova prosessorilleni, ja sitten valitsin kuorman tarkemmin CRF:n avulla. Minun tapauksessani esiasetus toimi fast, ja crf:lle päädyin arvoon 24.

Johtopäätös

Siinä kaikki. Viimeinen komento lähetyksen aloittamiseksi oli tämä:

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/%КЛЮЧ_ТРАНСЛЯЦИИ%

Tässä on enää kaksi kuvaamatonta kohtaa:

1) -c:v libx264 – tietyn koodekin määrittäminen lähdetiedoston kanssa työskentelemistä varten.
2) -g 3 – selkeä ilmoitus avainkehysten määrästä. Tässä tapauksessa on määritelty, että joka kolmannen kehyksen tulee olla avainkehys. Vakioarvo on joko 5 tai 8, mutta YouTube vannoo ja pyytää vähintään 3:a.

Näet, minkälaatuiseksi lähetyksestä tuli täällä.

Palvelimen kuormitus oli seuraava:

Lähetä videoitasi YouTubessa XNUMX/XNUMX

Lähetä videoitasi YouTubessa XNUMX/XNUMX

Seurantatietojen perusteella on selvää, että prosessorin kuormitus vaihtelee 70 %:sta 95 %:iin ja viikon aikana lähetys ei koskaan saavuttanut 100 %:a. Tämä tarkoittaa, että näillä asetuksilla prosessori riittää.

Levyä lataamalla voin sanoa, että se on melkein lataamatta ja tavallinen HDD pitäisi riittää lähetykseen.

Mutta lähtevän liikenteen määrä huolestuttaa minua. Osoittautuu, että lähtevän streamini nopeus vaihtelee 450 - 650 kt sekunnissa. Kuukaudessa tämä on noin 1,8 teratavua. Saatat joutua ostamaan lisää liikennettä tai siirtymään kahden ytimen kokoonpanoon, koska... En haluaisi heikentää kuvan laatua.

***

Tämän seurauksena sanon, että tällaisen lähetyksen asettaminen tyhjästä vie noin 1-2 tuntia. Lisäksi videon lataaminen palvelimelle vie suurimman osan ajasta.

Tällaisen lähetyksen käynnistäminen ei oikeuttanut itseään markkinointivälineenä. Ehkä jos lisäämme katselukertoja niin, että YouTube-algoritmit poimivat tämän lähetyksen ja alkavat näyttää sitä aktiivisesti suosituksissa, jotain järjestyisi. Minun tapauksessani 16 päivän jatkuvan lähetyksen aikana sitä katsottiin 58 kertaa.

Se on hyvä. Lähetys sopii harmonisesti nettisivuni pääsivulle. Tämä antoi minulle mahdollisuuden muodostaa nopeasti oma mielipiteeni luennoitsijasta ja itse luennoista.

Ja yksi hetki. On tärkeää, että lähetys ei loukkaa kenenkään tekijänoikeuksia, muuten se estetään. Olen rauhallinen lähetykseni suhteen, koska... Valitsin nimenomaan musiikkilisäkkeet vapaalla käytöllä, ja sisällön tekijä istuu läheisellä tietokoneella eikä vastusta ollenkaan sitä, että käytän hänen sisältöään :)

Mutta jos radio soi taustalla jossain lähetyksessäsi tai käytit suosikkiraitaasi editoinnissa tai otit videojakson suositusta musiikkivideosta, TV-sarjasta tai elokuvasta, lähetyksesi on vaarassa. On myös tärkeää, että lähetys kantaa vähintään minimaalisen semanttisen kuormituksen, muuten se voidaan estää roskapostina.

***

Se on kaikki mitä minulla on. Toivon, että tämä opas palvelee jotakuta hyvin. No, jos sinulla on jotain lisättävää, kirjoita, luen mielelläni artikkelin lisäykset ja selvennykset.

Lähde: will.com

Lisää kommentti