Igorri zure bideoak YouTube-n XNUMX/XNUMX

Azkenaldian, zaletasun gisa, ezagutzen dudan psikologo baten hitzaldiak grabatzen ari naiz. Irudia editatzen dut eta nire webgunean argitaratzen dut. Duela hilabete, YouTube-n hitzaldi hauen 24/7 emisioa antolatzeko ideia sortu zitzaidan. Hazkunde pertsonalari eskainitako “telebista kate” tematiko moduko bat.

Badakit ohiko emankizun bat egiten. Baina nola egin bideo-fitxategien emisioa izan dadin? Beraz, 24/7 exekutatzen da, malgua da, ahalik eta autonomoena, eta, aldi berean, ez da inola ere nire etxeko ordenagailuaren menpe. Hau da jakin behar nuena.

Igorri zure bideoak YouTube-n XNUMX/XNUMX

Hainbat egun behar izan zituen irtenbidea aurkitzeko. Foro asko eta hainbat eskuliburu aztertu nituen horiek gabe nire emisioak ez zuen funtzionatuko. Eta orain broma arrakastatsua denez, nire irtenbidea partekatzeko beharra sentitzen dut. Honela agertu da artikulu hau.

Laburbilduz, azken irtenbidea hauxe izan zen: VPS + ffmeg + bash scripta. Ebakiaren azpian, emaniko pausoak deskribatzen ditut eta emankizuna antolatzean aurkitutako zuloei buruz hitz egiten dut.

1. urratsa - nondik aterako da emisioa?

Hasieran, emankizuna nondik eta nondik sortuko zen erabaki behar zen. Burura etorri zitzaidan lehenengo gauza izan zen zure etxeko ordenagailutik. Bildu bideoak erreprodukzio-zerrenda batean eta hasi edozein bideo-erreproduzitzailetan erreproduzitzen. Ondoren, atera pantailako irudia eta igorri YouTube-ra. Baina ia berehala baztertu nuen aukera hau, zeren... Hori ezartzeko, etxeko ordenagailua etengabe piztuta eduki behar duzu, hau da, hozkailuetako zarata gauez ere eta elektrizitate-kontsumoa handitu (+100-150 kWh hilero). Eta ematen du ezingo duzula etxeko ordenagailua erabili emisioan zehar. saguaren edozein mugimendu ikusgai izango da emisioan.

Orduan albo batera begira hasi nintzen hodeiko zerbitzuak. Prest eginiko zerbitzu baten bila nengoen, non nire bideoak igotzeko edo, adibidez, YouTube-ko bideoetarako estekak txertatzeko eta dena etenik gabeko emisio batean bilduko zen. Baina ez nuen ezer egokirik aurkitu. Agian ez dut ondo bilatu. Funtzionalitateari egokitzen zaion gauza bakarra restream.io da, hainbat plataformatara aldi berean igortzen laguntzen duen zerbitzua. Zure bideoak igotzeko aukera ematen dizutela dirudi. Baina zerbitzu hau guztiz bestelako helburuetarako sortu zen eta emisioak ordu pare bat baino ez duela espero dute. Uste dut zerbitzu honen bidez emisio biribil bat antolatzea posible izango balitz, hilero hamarnaka edo ehunka dolar sartuko liratekeela. Baina hala ere emisioa dohainik edo gutxieneko inbertsio ekonomikoarekin antolatu nahi nuen.

Argi geratu zen emankizunerako beharrezkoa zela edo aparteko gailua edo baita aparteko ordenagailu bat ere. Raspberri Pi bezalako zerbaitetan pentsatzen ari nintzen. Eta zer? Ez dauka hozkailurik. Bideoa pendrive batean grabatu nuen, Ethernet kablea konektatu eta leku bakarti batean utzi eta igorri nuen. Aukera. Baina ez nuen ez taula bera, ez esperientziarik lan egiten, beraz, aukera horri uko egin nion.

Ondorioz, eztabaida jakin batekin egin nuen topo, non sorkuntzaz eztabaidatzen zuten zerbitzari propioa emankizunak. Ez zen zehazki bilatzen nuena, baina ideia nagusia lortu nuen: zerbitzari bat erabil dezakezu! Eztabaida horretan, VPS + nginx + OBS konbinazio bat erabiltzea proposatu zen. Konbinazio hori niri ere komeni zitzaidala argi geratu zen. Nahastu ninduen gauza bakarra zerbitzaririk ez nuela inoiz administratu izan zen eta nire zerbitzari dedikatua izatea nahasia eta garestia zela iruditzen zitzaidan. Gutxieneko konfigurazio batekin zerbitzari bat alokatzea zenbat kostatuko zen jakitea erabaki nuen eta harrituta geratu nintzen.

Igorri zure bideoak YouTube-n XNUMX/XNUMX

Prezioak Bielorrusiako errublotan adierazten dira eta hauek apurrak besterik ez dira. Ulertzeko, 8 bielorrusiako errublo 3.5 dolar edo 240 errusiar errublo inguru dira. Hilabetez 24/7 piztuta dagoen eta Interneterako sarbide azkarra duen ordenagailu osoa erabiltzen. Zerbaitegatik, aurkikuntza hau oso alaia bihurtu zen niretzat eta hainbat egunez izugarri pozik ibili nintzen, espazio-koheteak aurkitu zituen ume bat bezala :)

Bide batez, Google-k eman zidan lehen webgunearen eskaintza aprobetxatu nuen “VPS alokairua” kontsultarako. Beharbada aurrekontu-irtenbide gehiago daude, baina prezio hau egokitu zitzaidan eta ez nuen gehiago begiratu.

Zerbitzari bat sortzean, zein sistema eragilea erabiliko den hauta dezakezu. Zerrendatutako edozein sistemetan emisio bat antola dezakezu eta zure hobespenen eta finantza-gaitasunen araberako aukera bat egin dezakezu (Windows-eko zerbitzari baterako kuota gehigarria eskatzen dute). CentOS aukeratu nuen. Besterik gabe, aurretik esperientzia gutxi nuelako.

Igorri zure bideoak YouTube-n XNUMX/XNUMX

2. urratsa - zerbitzariaren konfigurazioa

Zerbitzari bat sortu ondoren behar duzun lehenengo gauza SSH bidez konektatzea da. Hasieran PuTTy erabiltzen nuen, baina gero Google Chrome-n exekutatzen den Secure Shell aplikazioa erabiltzen hasi nintzen. Erosoagoa iruditu zait.

Gero ostalariaren izena aldatu, zerbitzarian denbora sinkronizazioa ezarri, sistema eguneratu, iptables-ekin txukundu nuen... eta beste gauza pilo egin nituen, baina ez beharrezkoa zelako. Zerbitzaria konfiguratzea besterik ez nuen interesatzen eta funtzionatu zuen. Maite dut funtzionatzen duenean :)

Hona hemen eman behar dituzun urratsak:

  1. Konektatu EPEL biltegia.
  2. Konfiguratu FTP zerbitzari bat (nik vsftp aukeratu dut).
  3. Instalatu ffmpeg.

Ez ditut aginduak zehatz-mehatz emango; argibide hauek kontzeptuzkoak dira ekintza-plan orokorra helarazteko. Urratsetako batean zailtasunak badituzu, azkar konpondu daitezke bilaketa-motorearen kontsulta bat erabiliz "CentOS konektatu EPEL" edo "CentOS instalatu FTP zerbitzaria". Eta lehen esteketan urratsez urrats argibide zehatzak aurki ditzakezu.

Beraz, lehenago idatzi nuen bezala, VPS + nginx + OBS konbinazio bat behar nuen. VPS - prest. Baina beste puntu batzuei buruzko galderak sortzen hasi ziren. OBS difusio programa bat da, Open Broadcaster Software. Eta korronteekin bakarrik funtzionatzen du, hots. adibidez, webcam batetik irudi bat hartu eta igortzen du. Edo pantaila grabatzea. Edo dagoeneko martxan dagoen igorpen bat beste gune batera birbideratzen da. Baina ez daukat korronterik, korronte batean egin beharreko bideo-fitxategi multzo bat besterik ez dut.

Norabide honetan zulatzen hasi eta ffmpeg topatu nuen. FFmpeg doako eta kode irekiko liburutegi multzo bat da, audio eta bideo digitalak hainbat formatutan grabatu, bihurtzeko eta erreproduzitzeko aukera ematen dutenak.

Eta oso harrituta geratu nintzen ffmpeg-ek zenbat egin dezakeen. Nahi baduzu, bideotik soinua aterako du. Nahi baduzu, bideoaren zati bat moztuko du birkodifikatu gabe. Nahi baduzu, formatu batetik bestera bihurtuko da. Eta askoz, askoz gehiago. Fitxategi bat zehaztu ahal izateko, korronte bihurtuko du eta YouTube-ra bera transmitituko du. Hori da, katea muntatuta dago. ñabardurak amaitzea baino ez da geratzen.

3. urratsa - igorpenaren konfigurazioa

YouTube-n emankizun bat sortzen dugu. Fase honetan esteka eta igorpen-gakoa baino ez ditugu behar. Beheko pantaila-argazkian gorriz nabarmenduta daude.

Igorri zure bideoak YouTube-n XNUMX/XNUMX

Gehiago igo bideo fitxategiak zerbitzarira, emititzeko asmoa duguna. Izan ere, fase honetarako bakarrik beharrezkoa da FTP. Fitxategiak zerbitzarira kargatzeko beste modu eroso bat baduzu, ez duzu FTP zerbitzaririk konfiguratu beharrik.

Korrontea YouTubera transmititzen dugu. Igortzen hasteko, ffmpeg exekutatu behar duzu hainbat atributurekin. Hau da lortu dudan komandorik laburrenaren itxura:

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

Atributuen deskodeketa-re – fitxategia korronte bihurtu behar dela adierazten du.

-i – zein fitxategi erreproduzitu behar den adierazten du. Garrantzitsua da komandoa bideo fitxategia bera dagoen direktorio beretik abiaraztea. Bestela, fitxategirako esteka absolutua zehaztu beharko zenuke, adibidez /usr/media/lecture1.mp4.

-f – irteerako fitxategi formatua ezartzen du. Nire kasuan, ffmpeg-k nire fitxategia mp4-tik flv-ra aldatzen duela ematen du.

Eta amaieran YouTube-tik hartu ditugun datuak emisio ezarpenen orrian adierazten ditugu, hau da. datuak transferitu behar dituzun helbidea eta igorpen-gakoa, emisioa zure kanalean zehazki bistaratzeko.

Dena ondo egin baduzu, komando hau exekutatu ondoren, YouTube-k transmititutako korrontea ikusiko du. Emisioa hasteko, YouTube-n bertan dagoen "Igorpena hasi" botoia sakatu besterik ez duzu egin behar.

4. urratsa - gehitu autonomia

Zorionak! Orain badakizu nola hasi bideo-fitxategi batetik igortzen. Baina hori ez da nahikoa XNUMX/XNUMX emititzeko. Garrantzitsua da lehen bideoa erreproduzitzen amaitu ondoren, hurrengoa berehala hastea, eta bideo guztiak erakusten direnean, erreprodukzioa berriro hastea.

Aukera hau sortu zitzaidan: .sh fitxategi bat sortu, bideo-fitxategi bakoitzeko komando bat idatzi nuen eta amaieran script bera berriro exekutatzeko komando bat adierazi nuen. Emaitza honelako errekurtsio bat da:

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

Eta, bai, funtzionatu zuen. Nere buruarekin pozik, proba-emisioa jarri eta oheratu nintzen.

Goizean sorpresa desatsegin bat itxaroten nuen. Emankizunak minutu pare bat besterik ez zuela iraun eta ia berehala amaitu zen ordenagailua itzali nuenean. Ikerketak erakutsi zuen modu honetan abiarazitako komandoak erabiltzaileak zerbitzarian baimenduta dagoen bitartean exekutatzen direla. Deskonektatu bezain laster, exekutatzen ari nintzen komandoak eten egin ziren. Hori gerta ez dadin nahikoa da taldearen aurrean bash gehitu komandoa nohup. Horri esker, exekutatzen ari den prozesua zure presentzia edozein dela ere abiaraziko da.

Gidoiaren azken bertsio minimoa honelakoa da:

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 $

Non start.sh script hau idazten den fitxategia da. Eta fitxategi hau bideo fitxategien direktorio berean egon behar da.

Amaieran dolarraren seinale bat gehitzeak prozesua atzeko planoan exekutatzeko aukera ematen du, kontsola erabiltzen jarrai dezazun emisioa eten gabe.

Hobariek ondoko ondasun hauek zituzten:

  • Fitxategien erreprodukzioa eskuz alda dezakezu. Horretarako, une honetan martxan dagoen ffmpeg prozesua "hil" behar duzu. Horren ondoren, zerrendako hurrengo fitxategiaren erreprodukzioa automatikoki hasiko da.
  • Emisioan bideo berriak gehi daitezke igorpena gelditu gabe. Igo ezazu bideoa zerbitzarira, gehitu komando bat fitxategi hau gidoian exekutatzeko eta gorde. Hori da dena. Erreprodukzioko hurrengo txandan, fitxategi berria bidaliko da fitxategi zaharrekin batera.

5. urratsa - pertsonalizatu ffmpeg

Printzipioz, hor gelditu gintezke. Baina emankizuna pixka bat atseginagoa egin nahi nuen ikusleentzat.

Demagun pertsona bat emankizunera joan, ikusten hasi, gustatu zaiola eta hasieratik hitzaldi hau ikusi nahi izan duela, baina emisioak ez du atzerabosteko aukerarik ematen. Hitzaldi bat hasieratik ikusteko, pertsona batek nire webgunera joan beharko du eta interesa duen hitzaldiaren grabaketa lortu. Nola esan dezakezu zein hitzaldi interesatzen zaion? Dagoeneko 16 hitzaldi daude webgunean eta astero gehiago dira. Uste dut nik ere, hitzaldi hauek guztiak filmatu eta editatu ditudanak, ezin izango dudala ausazko zati batetik zehaztu zein hitzaldi den. Horregatik, beharrezkoa da hitzaldi bakoitza nolabait izendatua izatea.

Sorburuko bideo-fitxategiei edizio-programan epigrafeak gehitzeko aukera ez zitzaidan egokitu. Beharrezkoa zen jatorrizko fitxategiak erabiltzen zirela ziurtatu. Beraz, emankizuna laguntzeak gorputz-mugimendu gutxien eskatzen dit.

Agertu zen ffmpeg-ek horretan ere lagun zaitzakeela. Atributu berezi bat du -vf, bideoaren gainean testua jartzeko aukera ematen duena. Bideo bati testua gehitzeko, zati hau gehitu behar diozu komandoari:

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

Parametroen azalpenafontfile= - letra-tipoaren fitxategirako esteka. Hori gabe, epigrafea ez da bideoan gehituko. Modurik errazena letra-tipoaren fitxategia bideoaren karpeta berean jartzea da. Edo fitxategiaren bide osoa zehaztu beharko duzu.

text= – egia esan, bideoaren gainean jarri behar den testua bera.

fontsize= - letra-tamaina pixeletan.

fontcolor= - letra-tipoaren kolorea.

borderw= – testuaren inguruko eskemaren lodiera pixeletan (1 pixeleko lodiera duen eskema beltza duen testu zuria daukat).

bordercolor= - eskema kolorea.

x= и y= – testu-koordenatuak. Dot 0;0 goiko ezkerreko izkinan dago. Nire koordenatuak hautatzen dira, testua beheko ezkerreko izkinan 1280x720 pixeleko bideo bereizmenarekin jartzen den moduan.

Honela dirudi:

Igorri zure bideoak YouTube-n XNUMX/XNUMX

6. urratsa - zehaztu emisioaren kalitatea

Hori da, emisioa prest dago. FFmpeg-ek emititzen du, fitxategiak erreproduzitzen dira, nire presentzia ez da beharrezkoa emititzeko. Hitzaldi bakoitza ere sinatuta dago. Itxura horixe da.

Baina beste ñabardura bat agertu zen: zerbitzariaren gutxieneko konfigurazioa aukeratu nuen eta ez zuen emisioa igo. Zerbitzariaren konfigurazioa: 1 nukleo (2.2 GHz bezala), 1 gigabyte RAM, 25 GB SSD. RAM nahikoa zegoen, baina prozesadorea ia guztiz kargatuta zegoen %100ean (eta batzuetan %102-103an ere :) Horrek emisioa segundo batzuetan izoztea ekarri zuen.Ez da polita.

Besterik gabe, bi nukleoekin konfigurazio garestiagoa har dezakezu, zorionez, hodeiko teknologiekin, zerbitzariaren konfigurazioa aldatzea botoi pare bat sakatuz gertatzen da. Baina gutxieneko konfigurazio ahalmenean sartu nahi nuen. ffmpeg dokumentazioa aztertzen hasi nintzen eta bai, sistemaren karga erregulatzeko aukera ematen duten ezarpenak ere badaude hor.

Irudiaren kalitate handia bi modutara lor daiteke: CPU karga handia edo irteerako trafiko handia. Ematen du prozesadoreak zenbat eta karga gehiago hartu, orduan eta kanal-banda-zabalera gutxiago beharko dela. Edo ezin duzu prozesadorea gehiegi kargatu, baina gero kanal zabal bat beharko duzu trafiko-zabalera handia duen. Prozesadorean eta irteerako kanal/trafikoaren tamainan murrizketak badaude, orduan irudiaren kalitatea murriztu beharko duzu emisioa ondo joan dadin.

Nire zerbitzariak 10 Mbit/s zabalerako kanal baterako sarbidea du. Zabalera hau egokia da. Baina trafiko muga bat dago - 1 TB hilean. Hori dela eta, trafiko-murrizketak betetzeko, nire irteerako fluxuak ez luke ~300 KB segundoko gainditu behar, hau da. Irteerako korrontearen bit-abiadura ez da 2,5 Mbit/s-tik gorakoa izan behar. YouTube-k, bide batez, bit-tasa horretan emititzea gomendatzen du.

Sistemaren karga erregulatzeko, ffmpeg-ek ikuspegi desberdinak erabiltzen ditu. Ondo idatzita honetaz Hemen. Azkenean, bi ezaugarri erabili ditut: -crf и -preset.

Tasa Konstanteko Faktorea (CRF) – koefiziente bat da eta horri esker argazkiaren kalitatea doi dezakezu. CRF 0tik 51era bitarteko balioak izan ditzake, non 0 iturburu-fitxategiaren kalitatea den, 51 ahalik eta kalitaterik okerrena den. 17tik 28ra bitarteko balioak erabiltzea gomendatzen da, lehenetsia 23 da. 17ko koefizientearekin, bideoa jatorrizkoaren ikusmen berdina izango da, baina teknikoki ez da berdina izango. Dokumentazioak ere adierazten du azken bideoaren tamaina, zehaztutako CRFaren arabera, esponentzialki aldatzen dela, hau da. koefizientea 6 puntu handitzeak irteerako bideoaren bit-tasa bikoiztuko du.

CRF erabiltzen baduzu, irteerako argazkiaren "pisua" hauta dezakezu eta ondoren erabili aurrezarpenak (-aurrez ezarri) prozesadorea zenbateraino kargatuko den zehaztu dezakezu. Atributu honek parametro hauek ditu:

  • ultrafast
  • superfast
  • veryfast
  • faster
  • fast
  • medium – balio lehenetsia
  • slow
  • slower
  • veryslow

Parametroa zenbat eta "bizkorragoa" zehaztu, orduan eta karga handiagoa izango da prozesadorean.

Lehenik eta behin, funtsean, nire prozesadorearentzat gogorregia zen aurrezarpena hautatu nuen, eta gero finago hautatu nuen karga CRF erabiliz. Nire kasuan, aurrez ezarritakoak funtzionatu zuen fast, eta crf-rako 24 balioarekin finkatu nintzen.

Ondorioa

Hori da dena. Emisioa hasteko azken komandoa hau izan zen:

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

Hemen deskribatu gabeko bi puntu baino ez dira geratzen:

1) -c:v libx264 – iturburu-fitxategiarekin lan egiteko kodeka zehatz bat zehaztea.
2) -g 3 – gako-fotograma-kopuruaren adierazpen esplizitua. Kasu honetan, hirugarren fotograma bakoitzak funtsezko fotograma izan behar duela zehazten da. Balio estandarra 5 edo 8 da, baina YouTube-k zin egiten du eta gutxienez 3 eskatzen ditu.

Ikus dezakezu zein kalitate izan duen emankizunak Hemen.

Zerbitzariaren karga hau izan zen:

Igorri zure bideoak YouTube-n XNUMX/XNUMX

Igorri zure bideoak YouTube-n XNUMX/XNUMX

Jarraipen datuetan oinarrituta, argi dago prozesadorearen karga %70etik %95era bitartekoa dela eta astean zehar emisioa ez zela inoiz %100era iritsi. Horrek esan nahi du ezarpen hauekin prozesadorea nahikoa dela.

Diskoa kargatuz, esan dezaket ia ez dagoela kargatu eta ohiko HDD batek nahikoa izan behar duela emititzeko.

Baina irteerako trafiko kopuruak kezkatzen nau. Bihurtzen da nire irteerako korrontea segundoko 450 eta 650 KB bitartekoa dela. Hilabete barru 1,8 terabyte ingurukoa izango da. Baliteke trafiko gehigarria erosi edo bi nukleoko konfigurazio batera aldatu behar izatea, zeren... Ez nuke gustatuko irudiaren kalitatea murriztea.

***

Ondorioz, esango dut halako emisio bat hutsetik konfiguratzeak 1-2 ordu inguru behar dituela. Gainera, bideoa zerbitzarira igotzeak denbora gehiena hartuko du.

Emisio hori martxan jartzeak ez zuen marketin tresna gisa justifikatzen. Beharbada, ikustaldiak areagotzen baditugu, YouTube algoritmoek igorpen hau jaso eta gomendioetan aktiboki erakusten hasten badira, zerbait ondo aterako litzateke. Nire kasuan, etengabeko emisioko 16 egunetan 58 aldiz ikusi zen.

Hori ondo dago. Emisioa harmoniatsu egokitzen da nire webguneko orrialde nagusian. Horrek aukera eman zidan irakasleari eta hitzaldiei buruz nire iritzia azkar egiteko.

Eta momentu bat. Garrantzitsua da igorpenak inoren egile-eskubideak ez urratzea, bestela blokeatuta egongo da. Lasai nago nire emankizunarekin zeren... Erabilera libreko musika txertaketak aukeratu nituen bereziki, eta edukiaren egilea inguruko ordenagailu batean eserita dago eta ez dago batere aurka nire edukia erabiltzearen aurka :)

Baina irrati bat atzeko planoan jotzen baduzu zure emisioan nonbait, edo zure abesti gogokoena editatzerakoan erabili baduzu, edo musika-bideo, telesail edo film ezagun batetik bideo-sekuentzia bat hartu baduzu, zure igorpena arriskuan dago. Garrantzitsua da igorpenak gutxienez karga semantiko bat izatea, bestela spam gisa blokeatuta egon daiteke.

***

Hori da dudan guztia. Eskuliburu honek norbaiti ondo balioko diola espero dut. Bada, zerbait gehitzeko baduzu, idatzi, pozik irakurriko ditut artikuluaren gehiketak eta argibideak.

Iturria: www.habr.com

Gehitu iruzkin berria