Kaip galime įsitikinti, kad tai yra vaizdo transliacija? Ji turėtų būti 24 valandas per parą, 7 dienas per savaitę, lanksti, kuo savarankiškesnė ir niekaip nepriklausyti nuo kompiuterio. Apie tai ir kalbėsime toliau.
Idealus sprendimas - išsinuomoti virtualų serverį. VPS / VDS galite rinktis iš mūsų svetainėje siūlomų tarifų. Kainos yra demokratiškos. Kokybė yra aukšta.
Sukūrus serverį, pirmiausia reikia prie jo prisijungti per SSH. Galite naudoti "Secure Shell" programą, kuri veikia "Google Chrome" naršyklėje. Po to reikia pakeisti prieglobos vardą, nustatyti laiko sinchronizavimą, atnaujinti sistemą, sukonfigūruoti iptables
ir atlikti keletą kitų veiksmų. Nors šie veiksmai nėra būtini, man buvo įdomu konfigūruoti serverį ir patirti pasitenkinimą sėkmingai atlikus užduotis.
Yra keletas konkrečių veiksmų, kuriuos reikia atlikti:
EPEL
saugyklą.(vsftp
).ffmpeg
.ffmpeg
yra nemokamas atvirojo kodo bibliotekų rinkinys, leidžiantis įrašyti, konvertuoti ir perduoti įvairių formatų skaitmeninius garso ir vaizdo įrašus.
Naudodami ffmpeg
galite iš vaizdo įrašo išgauti garsą, iškirpti vaizdo įrašo fragmentą be perkodavimo, konvertuoti iš vieno formato į kitą ir atlikti daug kitų veiksmų. Pavyzdžiui, failą galima konvertuoti į srautą ir nukreipti į "YouTube".
Jums reikia atlikti tam tikrus konkrečius veiksmus ir naudoti atitinkamus įrankius, kad nustatytumėte serverį srautui transliuoti ir konvertuoti vaizdo įrašą.
Toliau sukurkime "YouTube" transliaciją, tam mums reikės transliacijos nuorodos ir rakto, kurį turėsime naudoti transliacijos sąrankos žingsnyje. Lengviausia juos greitai rasti "YouTube" puslapyje, kuriame kuriama transliacija.
Tada turime įkelti į serverį vaizdo failus, kuriuos norime transliuoti. Jei turite patogesnį failų įkėlimo būdą, FTP serverio kurti nereikia.
Norėdami pradėti transliaciją, turime paleisti ffmpeg
su keliais atributais. Šiam tikslui sukurti trumpą komandą buvo gana sudėtingas procesas, tačiau, jei jis atliktas teisingai, "YouTube" turėtų sėkmingai aptikti transliuojamą srautą.
Kai "YouTube" aptiks srautą, valdymo skydelyje spustelėkite mygtuką "Pradėti transliaciją" ir transliacija bus sėkmingai pradėta.
Aukščiau pateiktas scenarijus padės jums sukurti 24/7 transliaciją iš vaizdo įrašų failų. Svarbu paleisti procesą fone naudojant komandą nohup bash
. Dabar galite pritaikyti savo transliaciją ir leisti jai veikti nepriklausomai nuo jūsų buvimo. Nepamirškite, kad jūsų transliacijos raktas turi būti įrašytas atitinkamoje komandoje.
1 komanda... (paleisti paskaitos1.mp4
failo transliaciją)
2 komanda... (pradėti transliuoti paskaita2.mp4
failą)
3 komanda... (pradėti transliuoti paskaita3.mp4
) bash start.sh
Scenarijaus versija:
ffmpeg -re -i lecture1.mp4 -f flv rtmp://a.rtmp.youtube.com/live2/%BROADCAST_KEY%
ffmpeg -re -i lecture2.mp4 -f flv rtmp://a.rtmp.youtube.com/live2/%BROADCAST_KEY%
ffmpeg -re -i lecture3.mp4 -f flv rtmp://a.rtmp.youtube.com/live2/%BROADCAST_KEY% nohup bash start.sh $
Linkime sėkmingos transliacijos!
Atlikime keletą smulkesnių derinimų, kad transliacija būtų geresnė
ffmpeg -re -i lecture1.mp4 -vf "drawtext=text='Lecture 1':x=(w-text_w)/2:y=(h-text_h)/2:fontcolor=white:fontsize=30:box=1:boxcolor=black@0.5" -f flv rtmp://a.rtmp.youtube.com/live2/%BROADCAST_KEY%
Šiame pavyzdyje tekstas "1 paskaita" bus uždėtas vaizdo įrašo centre. Šrifto dydis - 30 pikselių. Teksto fonas bus skaidrus su juodu brūkšniu.
Kiekvienos paskaitos tekstą turėsite pakeisti komandoje. O kad šį procesą automatizuotumėte ir atsikratytumėte rankinio įvedimo, turėsite sukurti .sh failą
su visų paskaitų sąrašu ir jų pavadinimais. Pavyzdžiui, taip:
Paskaita1.mp4
1 paskaita lecture2.mp4
2 paskaita lecture3.mp4
3 paskaita
Tada reikia parašyti scenarijų, kuris perskaitys šį failą ir automatiškai pridės tekstą prie vaizdo įrašo.
Štai toks scenarijus:
while read line; do
file=$(echo $line | cut -d' ' -f1)
text=$(echo $line | cut -d' ' -f2-)
ffmpeg -re -i $file -vf "drawtext=text='$text':x=(w-text_w)/2:y=(h-text_h)/2:fontcolor=white:fontsize=30:box=1:boxcolor=black@0.5" -f flv rtmp://a.rtmp.youtube.com/live2/%BROADCAST_KEY%
done < lectures.txt
Šiame scenarijuje skaitome kiekvieną lectures .txt
failo eilutę, išskirdami failo pavadinimą ir paskaitos pavadinimą. Tada naudodami komandą ffmpeg
į vaizdo įrašą pridedame tekstą.
Taigi dabar turime transliaciją su paskaitų pavadinimais, todėl žiūrovams bus patogiau ir lengviau rasti reikiamą turinį.