
[Musica]
così ti sei mai seduto di fronte a
servizio di streaming come Netflix e tu
pensavate hey tu sai che io chiedo che cosa ha bisogno
effettivamente ottenere fatto per preparare questa
contenuto per lo streaming sulla mia TV e va bene
Sam ha ma io totalmente come non l’ho mai fatto
la realtà è però che c’è
in realtà un bel po ‘di roba che ha bisogno
per capitare ai contenuti video in realtà
rendilo disponibile a te e questo è quello che
si inizia a parlare di qualcosa che oggi
le stoffe che deve accadere alla vostra
il video in modo da renderlo disponibile per
tu e cosa abbiamo effettivamente fatto
ciò accade per l’intero catalogo ABC
quindi di nuovo una completa divulgazione per cui lavoro
Amazon sto lavorando su Amazon
fresco ora che è consegne di generi alimentari
ed è disponibile a Chicago se tu
Voglio provare, ma io non sono qui
Rappresentando Amazon oggi sono
rappresentandomi per un ruolo precedente
che ho fatto all’ABC, quindi lo voglio davvero
per farti conoscere l’ABC prima è a
emittente pubblica in Australia ed è
in realtà un grande cittadino
tesoro è molto conosciuto per la TV
abbiamo un sacco di diverso proprio
servizi di trasmissione e spettacoli che noi
creare è anche una fonte estremamente importante
di notizie radio programmazione regionale e I
piace pensarlo un po ‘come un
PBS della vecchia scuola è finanziato pubblicamente
non ci sono annunci durante gli spettacoli
ed è in realtà uno dei rari
canali che fanno appello a entrambi i bambini e
conosci gli anziani così è un po ‘
ha un pubblico che è davvero grande
spettro e uno degli spettacoli iconici
quello che abbiamo è uno spettacolo chiamato a
playschool e se sei un bambino in
Australia, cresci con questi
personaggi
tu sai davvero tutto di questo
mostrare ed è una specie di nostro equivalente di
Sesame Street e nella mia prima settimana a
l’ABC questo ero io per incontrare il mio
eroi dell’infanzia in forma gigante, solo io
volevo mostrarti questo solo per mostrarti
l’ amore ce l’ho
qui e come enormemente eccitato ero al
opportunità di lavorare su un sistema come
questo per un’azienda come questa, quindi l’ABC
ha un prodotto chiamato via ed è il
front end del sistema che sarò
parlando di oggi è quello che noi
produrre tutto il video è per ed è a
Il servizio TV on demand è gratuito
tutto ciò che viene trasmesso sul
ABC viene reso disponibile su ibew
e serve milioni di spettatori ogni
una settimana sola per fare questi spettacoli
disponibile su iview che dobbiamo elaborare
loro giusto dobbiamo transcodificarli
in formati che sono effettivamente adatti
per lo streaming così il discorso di oggi è un
sistema che abbiamo costruito per fare in modo che la nostra scala
un modo economicamente efficiente che abbiamo chiamato il nostro nuovo
sistema Metro quindi cose che vorrei
per coprire oggi uno è quello che effettivamente faccio
significa quando dico transcodifica video a destra
perché abbiamo bisogno di ciò che fa?
Passerò attraverso una transcodifica a
tipo di mostrare l’intero processo di
quello che sta effettivamente facendo è cosa
abbiamo finito per costruire per gestire il
volume di contenuti che produciamo al
ABC come abbiamo preso una transcodifica e
in realtà lo ripeto in modo affidabile, quindi lo farò
darvi una panoramica di alto livello più alto di
l’ architettura che abbiamo costruito e AWS
servizi che usiamo qui lingua
scelte che abbiamo fatto e anche il
benefici delle arti usando piccoli servizi
e dividendo il nostro sistema su questo è
la mia parte preferita del sistema è come
scaliamo la transcodifica dei transcodificatori
è la parte più costosa del nostro sistema
quindi come possiamo effettivamente scalare per gestire
domanda fluttuante, ma anche ottimizzare per
costa quanto costa effettivamente la metropolitana
per eseguire correttamente come si confronta con il
sistemi di transcodifica commerciali e tu
sapere cosa costa in realtà per noi
correre per una giornata tipo o un tipico
anno di contenuti per l’ABC
e durano questo è una specie di un po ‘di divertimento
questi che tipo di ottimizzazioni potrebbero
in realtà lo facciamo in futuro perché questo
il progetto in realtà è iniziato davvero
piccola squadra di una media di tre
persone che hanno funzionato per circa sei mesi
questo è il sistema risultante che noi
Finito con e quindi c’è sicuramente
alcune cose che possiamo fare in futuro
ciò contribuirà a migliorare il rendimento
e ottimizzazioni quindi prima di tutto
scusa la trascrizione, mi rendo conto di esserlo
non avevo iniziato il mio tempo libero grazie
quindi la nostra transcodifica è un processo vero
iniziare con un file di input iniziale che
è un file audio o video di
qualche tipo e lo convertiamo in una varietà
di diversi formati di output che noi
chiamare le interpretazioni che sto per essere
riferendosi a rendition in tutto questo
parla abbastanza spesso perché è davvero
parte importante del nostro sistema così noi
creare un sacco di diverse interpretazioni per
ogni video e nella tradizione è leggermente
diverso quindi quali sono i cambiamenti
possiamo davvero fare su questi video
fare cose come regolare la risoluzione
come la dimensione del video che possiamo regolare
il formato attuale in modo che tu sappia
la codifica di esso possiamo cambiare il
bitrate quindi la qualità del video
il bitrate più alto è una qualità superiore e
possiamo aggiungere cose come filigrane così
come i loghi nella parte inferiore dello schermo
quel tipo di cose e il nostro obiettivo è
davvero per fare un video che potrebbe venire
da qualsiasi fonte e produrre uno standard
serie di interpretazioni da essa vogliamo a
serie prevedibile di consegne per noi
utilizzare su iView e quindi questo video qui
a sinistra è il singolo video che lo farà
ricevere e attraverso la transcodifica
processo finiremo per trasformarlo
nelle più interpretazioni standard
che sono sulla destra e lo facciamo per
ogni video quindi perché dovremmo avere così tanti
taglie uno è vogliamo ottimizzare il
video per il tuo dispositivo, quindi se lo sei
guardandolo su a
macchina o un televisore che vogliamo darti
video di qualità migliore contro se sei su
un cellulare non hai davvero bisogno di qualcosa
è così grande e l’altra cosa è
che in realtà vogliamo regolarlo così
che si adatta alla velocità della rete
hai così se sei quello che è così ogni
la resa ha un diverso bitrate e
questa è la quantità di dati che sei
download al secondo per poter vedere
i video quindi se volete un alto rete
connessione fantastica che ti daremo
il massimo bitrate che abbiamo
altrimenti se sei su una versione inferiore
come voglio dire se sei su cellulare sul
vai ti daremo una bassa qualità
interpretazione in modo da poter effettivamente giocare
che non influenzerà davvero la tua visione
qualità del giocatore il video player che
lo stai guardando con è in realtà
responsabile della selezione di quale di
queste interpretazioni per giocare è il nostro lavoro
solo per garantire che produciamo il pieno
serie di consegne in modo che quando arriva
al tuo giocatore può selezionare qualsiasi cosa
uno è il più adatto per te così
convertiamo tutto in h.264 mp4 noi
ricevere molti formati di input diversi
ma rende molto più facile l’output
questo in un formato e questo perché
è un formato standard per lo streaming HLS
il giocatore non deve preoccuparsi
conosci diversi codec che non abbiamo
fare QA attraverso un intero gruppo di
diversi formati e anche tu sai
non stiamo raddoppiando sul deposito di
più interpretazioni diverse così sono
andando a camminare attraverso un esempio qui così
hai una buona idea di quello che stiamo facendo
per prima cosa dobbiamo preparare la filigrana
che in realtà viene messo sul fondo
ogni video in modo da renderlo trasparente e
poi lo abbiamo ridimensionato e quello
la dimensione è relativa relativa a ciascuno
dimensione della rappresentazione in modo da sapere che otterrai un
più grandi interpretazioni che stiamo per fare
avere un logo più grande ma quando lo guardi
tornando sullo schermo sembrerà lo stesso
relativo prendiamo quindi questo video di input
che abbiamo questo è un episodio di a
spettacolo chiamato utopia che è un australiano
spettacolo prodotto dalla ABC e il formato
che abbiamo questo in
qualcosa chiamato gxf è una trasmissione
formato e puoi vedere che ha questo
barra nera in alto qui e ed è così
usato durante la trasmissione
contiene informazioni sul codice di tempo al suo interno e
contiene anche didascalie, ma il
la cosa è che sai che non lo sei
andando a usare quelli quando stai streaming
online in modo da ritagliarlo subito dopo
si noti che è in realtà in formato 4: 3
e vogliamo mostrartelo dentro
widescreen 16 da 9 così per storico
ragioni è in realtà più spazio
efficiente per tipo di memorizzarlo in 4: 3 e
c’è un sacco di sistemi simili in
l’ABC sono bravi a produrre
contenuto e gestione del contenuto in 4: 3
quindi è quello che mi viene salvato, ma noi
regolalo come rapporto e salvalo nel
file di intestazione in modo da conoscere il video
il giocatore lo saprà sì è in realtà
supposto per essere un formato widescreen noi
quindi aggiungi la filigrana che abbiamo
prodotto prima e di nuovo tu vuoi solo
fare in modo che, se stai passando
rendimenti nel mezzo dello streaming
ma il logo non sembra che sia
spostandoci dobbiamo anche elaborare
l’audio di questo video mi dispiace questo è
la traccia audio per l’originale
versione di mezz’ora di quello spettacolo e it
mostra l’ intensità dell’audio in modo che il
più alte sono le barre più il volume è forte
e passiamo attraverso un processo audio
normalizzazione perché vogliamo portare
tutto per un volume coerente in tutto
tutti i diversi video e lo facciamo
perché se hai uno spettacolo e mostri B
qui e hanno effettivamente registrato
diversi volumi o hanno diversi
volumi sulle loro tracce
quando lo guardi di nuovo sul tuo lettore
non vuoi dover continuare ad aggiustare
il volume ma come te come cambi
mostra così normalizziamo tutto così
non si nota la differenza, quindi dopo
il video e l’ audio di entrambi
elaborato e il video è ora pronto per
flusso e in realtà viene diviso
in un gruppo di pezzi da 10 secondi
e così quando suoni il tuo video tu
ricevere una serie di questi piccoli pezzi
insieme e formano un sai liscio
video continuo per te
e quei piccoli file possono venire da
uno dei diversi maghi e
è così che arriva il tuo lettore video
la possibilità di trasmettere e modificare il
qualità che conosci dinamicamente senza di te
doversi davvero preoccupare di dove
viene da così è molto diverso
modifiche che abbiamo apportato a questi video
abbiamo cambiato la codifica
e ritaglio e bit rate e roba
in questo modo, come possiamo effettivamente tenere traccia
di tutte queste cose, noi idealmente
vuoi tutti quei cambiamenti in un posto
perché siamo molto diversi
formatta il tipo di passaggi di cui abbiamo bisogno
fare per ciascuno dei file sta per
essere diversi e non vogliamo avere
pensare troppo a quello che stiamo andando
fare lì così salviamo la lista di
modifiche per ogni singolo tipo di video in
qualcosa ha chiamato un profilo e questo è
è un insieme di istruzioni che possiamo
cercare ogni volta che otteniamo un nuovo file in
il nostro sistema sembra un po ‘come questo
uso stilistico, così i nostri parametri hanno ottenuto un
posizione di origine in cui si trovano tutti i file
abbandonato e per iniziare con noi solo gentile
di mappare una cartella su un profilo e quello
serve tutti i video rilasciati in questa cartella
Ho questo set di istruzioni su di loro
e quindi questa cartella contiene il contenuto GSX gxf
questa è la roba che farà a un gxf
file e finiamo con una transcodifica
esempio che abbiamo appena visto ma se lo otteniamo
qualche altro tipo di contenuto come la bocca
file formato Perez Apple ProRes c’è
in realtà meno cose da fare non noi
non ottenere quel contenuto con il nero
bar in realtà non otteniamo quel contenuto
siamo nella proporzione sbagliata, è già così
già fatto per noi, quindi c’è di meno
istruzioni che in realtà dobbiamo fare
per finire quello e così effettivamente per fare tutto
di quello per eseguire tutto questo video
copiando il ridimensionamento ecc. usiamo ffmpeg
che è un supporto open source
strumento di transcodifica è incredibilmente
potente ed è stato in giro per circa
15 anni questo è un esempio di un campione
Comanda che per eseguire qualcosa in ffmpeg
e fa molte ipotesi su
il formato di input sulla qualità voi
vogliono circa i formati di output che si
volere
questa è la cosa vera che finiamo
utilizzando per ore ed è legato alla
profilo quindi se ne stiamo producendo sei
diverse interpretazioni ne avremo sei
diverse versioni di questo comando e
il comando ti mostrerà cose come
che cos’è la codifica che vogliamo come
mostra il ritaglio che deinterlaccia questo
è il rapporto di aspetto di scala alcune cose
con la filigrana cose che sono
controllo qualità video e audio e
solo alcune altre opzioni e c’è un
molte cose diverse che sono qui dentro
Io non ho intenzione di essere in grado di coprire in
dettaglio ma ffmpeg la comunità è
veramente attivo e utile ed è molto
ben documentato quindi è fantastico
pezzo di software che davvero non potevamo
ho costruito Metro senza questo, quindi è così
tipo di una panoramica di come il
processo di transcodifica funziona e il nostro obiettivo
è davvero prendere quel video in ingresso e
produrre il set standard di video
produrre video che useremo per il nostro
prosperare così vogliamo ora dare un’occhiata
su come effettivamente lo eseguiamo su larga scala
Metro è un flusso di lavoro quindi tutto il contenuto
quello che entra li seguirà
passi di alto livello in modo da ottenere un file e noi
trasferirlo in AWS , quindi accodare il file
contenuto e ci assicuriamo che sia pronto
per l’ elaborazione la codificheremo per
eseguendo ffmpeg su di esso spostiamo il
risultanti rendimenti al nostro CDN e
poi racconta dal vivo che odi tutti i tuoi
rendition ora sono pronti e si può
pubblicare ed ecco come appare
alcuni un punto di vista dell’architettura così
prima il file di input viene caricato in un file
s3 bucket e quando è finito
caricando usiamo s3 xin costruito
notifiche per mettere un messaggio su a
coda Amazon SQS quindi abbiamo scritto
molti piccoli servizi che chiamiamo coda
Lissa e uno di loro controlleranno
questa coda e il suo unico lavoro è quello di
messaggi in corso su quella coda e su
dillo a un altro componente che questo ha
è successo così non appena il
il messaggio viene aggiunto lì che invierà
quel messaggio a e un altro componente in
il nostro sistema chiamato l’orchestratore per
Dite che se i lavori sono stati aggiunti e il
l’orchestratore è una specie di cervello di
la nostra operazione è l’unico componente
questo è in realtà lo stato consapevole del solo
componente che ha un archivio dati è
responsabile del monitoraggio di dove
tutto è nel sistema e
controlli controlla anche il numero di
transcoders che abbiamo secondo
il numero di lavori in cui siamo entrati
volo in modo che venga salvato e poi mentre
sta salvando il lavoro che cercherà anche
quella lista di profili e corrisponderà
questo video per un profilo e quel profilo
ci dirà quante interpretazioni siamo
cercando di creare e lo dirà anche
noi il comando ffmpeg per quelli
renditions e input e output
location così è davvero come tre
cose importanti che otteniamo in realtà
ottenere più informazioni che inviamo insieme
con quel profilo ma per noi di fare il nostro
transcodificare quelle sono le tre cose che abbiamo
davvero bisogno e così in questa fase abbiamo
in realtà ha abbastanza informazioni per iniziare
il nostro transcodificare sarà l’orchestratore
accodare un messaggio per una resa a
la nostra coda di trasmissione quindi se diciamo
stiamo producendo sei diverse interpretazioni
poi siamo in sei messaggi qui e bene
anche l’orchestratore calcolerà
se abbiamo bisogno di più transcodifica ec2
istanze per soddisfare effettivamente il numero di
posti di lavoro nel sistema in modo se lo facciamo gira
su nuove istanze un esterno lo farò
in realtà ora girare giù così tutti
le nostre istanze di transcodifica sono il marshalling
questa coda con i messaggi del codice di trance
su di esso ogni transcoder ne prenderà uno
messaggio alla volta una transcodifica in a
tempo e fai il suo lavoro e questo è dove
la parte più intensa con ffmpeg è
effettivamente fatto ora
sistema in modo che impieghi più tempo
è come il 90% del tempo nel sistema
è dentro questa macchina qui e il tempo
al trasferimento è anche andando a essere
dipende molto dal tipo di contenuto
che stai transcodificando quindi se è un
lungo pezzo di contenuto lo faranno
ovviamente impiega molto tempo anche se lo è
è un contenuto di alta qualità
andando a prendere molto più tempo di un inferiore
pezzo di contenuto di qualità così una volta
la transcodifica viene eseguita per il salvataggio del file
un secchio s3 di output che usiamo anche noi
l’orchestratore viene detto e poi esso
salverà lo stato di questo lavoro ora così
che trasferiamo queste interpretazioni alla luce
per il CDN quindi il processo di trasferimento
prende le consegne finite e invia
loro al CDN e questo significa che loro
in realtà diventa pronto a pubblicare su I
guarda scusa si ok così l’orchestratore
segnerà quella resa come completa e
notificherà I view in modo che i video
può essere pubblicato anche a questo punto
dice hey c’è qualcos’altro nel
sistema e se non sta andando per spegnere
tutti i transcoders in modo che non lo siamo
macchine da corsa quando in realtà non lo siamo
fare qualsiasi lavoro in media ci vuole
circa 8 minuti e mezzo per effettivamente
passare attraverso la pipeline e basta
la figura è tutto dal caricamento del file a
s3 fino alla notifica I view e
come ho detto abbiamo una varietà di contenuti
da te conosci cinque minuti di video
sono un po ‘come molto breve a
documentari che possono essere di 90 minuti o
due ore e così il sistema del timer davvero
dipende da quanto tempo è qui è un po ‘
di informazioni su alcune medie di come
lungo ci vuole così la qualità più bassa
interpretazione che produciamo che è in realtà
una traccia audio e che tende a prendere
circa il 7% o il 12% del contenuto originale
tempo nel sistema e il nostro massimo
pulsante di qualità tende a prendere circa il 70%
di tempo reale quindi se un pezzo di un’ora di
il contenuto va nell’audio
sette minuti per uscire e un più alto
il contenuto in bitrate richiederà 40 a
in termini di tecnologia che usiamo
raccogliere per costruire questo sistema le cose che abbiamo
costruito noi stessi sono in realtà scritti in
due lingue diverse usiamo il nodo e
usiamo andare così il primo di questi è il
orchestratore è il cervello del nostro
sistema che è l’ unico che abbiamo scritto
nel nodo è perché è semplice e veloce
di scrivere un’API per fondamentalmente e
la squadra sapeva già cosa stava succedendo
on con nodo così tanto nelle vite intelligenti
qui abbiamo ciò che è in volo
quanti transcodificatori ho bisogno di cosa è
lo stato di ogni lavoro e tu sai
guardando le informazioni di cui ho bisogno
sapere su ciascuna delle interpretazioni che è
passando attraverso il profilo questi
i servizi quelli che sono seduti su
la fine della coda e in realtà non lo sono
non sono molto indicativi sono scritti e
andare e quindi sono molto piccoli sono
servizi di lunga durata indipendenti e loro
il lavoro è fondamentalmente monitorare questi eventi
che entrano e fanno qualcosa con loro
e così quei passi ci sono tre di loro
questi passaggi sono per registrare un nuovo media
file qui per trascrivere il contenuto e
anche per trasferire il contenuto al
CDN quindi sono stati davvero stabili e
davvero facile da implementare perché sono
solo loro si costruiscono in un binario e
lo buttiamo giù e lo è stato
fantastico quindi non abbiamo bisogno di uno speciale
runtime o qualcosa del genere per go e
è anche stato bello per le tubature di grandi dimensioni
file che possono essere utilizzati attraverso il nostro CDN
un flusso fantasma che puoi usare fondamentalmente
un file di qualsiasi dimensione e utilizzerà a
quantità costante di spazio su disco di memoria e
inviare qualsiasi cosa, quindi è così
in realtà è super vantaggioso in termini
di infrastrutture è tutto il nostro stack
costruito su AWS in modo da coprire questi
li uso in breve in modo equo
moda standard e abbiamo anche solo
appena parlato in termini di
architettura usiamo MySQL su RDS solo per
memorizzare tutti i nostri lavori e ci permette di fare
alcune cose piuttosto semplici in termini di
analisi abbiamo alcuni auto-ridimensionamento ec2
i gruppi dispongono di quattro diversi
Servizi
ed è grandioso perché possiamo scalare
loro indipendentemente e particolarmente qui
i nostri trans coder sono quelli che noi
scala in un modo insolito così noi
cambiato frequentemente il numero di
istanze in esecuzione in qualsiasi momento a
soddisfare la domanda e ho intenzione di essere
spiegando molto di più su questo nel
la prossima sezione useremo s3 per l’input e
archiviazione di output e mantenere il contenuto per
sette giorni e purifica il contrario e lo siamo
usando la coda qui come code qsr per
affidabile riprovare i messaggi tra i nostri
componenti quindi è fondamentalmente così noi
non perdere nulla nel mezzo di
elaborazione in modo da sapere se qualcosa ottiene
buio o non possiamo contattare il CDN a
in realtà metto roba lì e non grande
affare, ci sediamo in coda
aspettando che tutto sia disponibile
ancora una volta la stessa cosa si applica se lo siamo
effettivamente ridistribuendo uno dei nostri servizi
fa la coda di quali messaggi ci sediamo
lì aspettando che tutto sia finito
e pronto a riceverli di nuovo così il
è solo una specie di cosa insolita per noi
i transcodificatori possono richiedere fino a due
ore per fare effettivamente il loro lavoro e
è un po ‘ troppo tempo per essere
elaborare un messaggio quindi dobbiamo
riferire periodicamente e dire
in realtà sì, ci sto ancora lavorando
ancora lavorando su questo altrimenti abbiamo trovato
che qualche altra transcodifica avrebbe scelto
su un pezzo di lavoro e lo faremmo
duplice sforzo e sì no
davvero ideale quindi dobbiamo essere sicuri
è solo un pezzo di contenuto
gestito da un transcoder in uno qualsiasi
tempo alcuni dei vantaggi sul design
come un piccolo servizio sono nuove distribuzioni
davvero facile ci piace come ho detto che non lo facciamo
avere una perdita di messaggistica dei dati perché
stiamo usando i loro messaggi di spunti solo
aspetta lì fino a quando tutto è finito e
pronto a gestire loro un’altra cosa che
abbiamo davvero trovato utile è il
abilità che si orientano per scalare le cose
indipendentemente
e lo vedrete tra poco
sezione di transcodifica che possiamo avere
decine di trascrizioni in esecuzione a centinaia
se lo volessi davvero e sarebbe successo
non essere un problema è anche molto facile
per noi per aggiungere nuovi pezzi senza
colpendo qualcuno di quelli esistenti noi
ho parlato di didascalia
estrazione in modo che la barra nera che era a
la parte superiore del contenuto del video prima
in realtà eliminiamo una cosa che faremmo
l’amore da fare è estrarlo
noi stessi e il fatto è questo
sembra essere in un formato davvero unico
e per noi farlo lo faremmo noi
in realtà non è un grosso problema creare un nuovo
servizio facciamo che possiamo effettivamente eseguirlo
in parallelo insieme a tutti gli altri
macchine di transcodifica e sarebbe
bene anche io amo molto il differito
responsabilità per tipo di individuo
servizi in modo da avere una fonte di dati
per il nostro sistema è stato davvero fantastico
perché se facciamo modifiche allo schema o
qualcosa di simile e il raggio di esplosione
per quello è molto limitato proprio lì
solo un servizio in realtà infastidito e
gli altri in realtà non loro
in realtà non devono avere lo stato che ricevono
i messaggi in tutto ciò di cui hanno bisogno è dentro
quel messaggio fanno un po ‘di lavoro e poi
dicono qualcos’altro che ho fatto
quindi davvero non dobbiamo preoccuparci
sulla sincronizzazione delle cose, se lo siamo
schierando tutto può andare
indipendentemente quando vuole
cose che abbiamo trovato stimolanti
implementazioni che assicurano tutti i servizi
sono effettivamente cablati insieme correttamente
è stato impegnativo così a tal fine
abbiamo avuto a concentrarsi davvero su
automatizzando le cose il più possibile
usa i modelli di CloudFormation AWS
Modelli di CloudFormation da realizzare
tutto ripetibile e coerente e
Il 95% del nostro sistema è in realtà un modello
noi e noi ci schieriamo anche da un CI che realizziamo
certo che tutto ciò che sai è come
piccolo coinvolgimento umano possibile
perché abbiamo messo in scena dev prod e
non c’è modo che volessimo
configurare manualmente qualsiasi cosa tramite
noi stessi
è ovviamente più lavoro da costruire e
sviluppare piccoli servizi in modo indipendente
piuttosto che mettere tutto in un’unica grande cosa
ma per noi sono davvero la grande cosa
che abbiamo guadagnato da questo è stato il
possibilità di avere un ridimensionamento indipendente
in particolare per i nostri transcoders e
questo è ciò che valeva la pena farlo in piccolo
servizi in modo che è una panoramica di voi
sapere quale fosse la nostra architettura su AWS
il fatto che stiamo usando ffmpeg e
usando i nostri piccoli servizi indipendenti
così ora ne vedremo uno
dei pezzi veramente interessanti che
è come transcodificare tutto il contenuto in a
modo tempestivo in modo come ho detto prima abbiamo
cambiare frequentemente il numero di
transcoders che stiamo eseguendo e
questo perché se ne abbiamo un sacco
contenuto per elaborare sai che possiamo girare
un sacco di casi, ma se abbiamo
niente poi si sa che non abbiamo a
eseguire qualsiasi cosa così quando si dovrebbe effettivamente
far ruotare o abbattere queste istanze
non è una domanda semplice a cui rispondere
questo in realtà è molto diverso
fattori che entrano in gioco così il primo
di loro è la velocità del contenuto
dobbiamo essere disponibili, ne riceviamo molte
contenuto molto in anticipo ma spettacoli dal vivo
sono un’eccezione quindi se hai il nuovo
trasmissione di notizie
lo avremo in anticipo una volta
lo spettacolo è fatto ci viene inviato
attraverso la nostra pipeline di transcodifica e noi
bisogno di provare e renderlo disponibile come
rapidamente possibile
In realtà invidiamo pede con uno spunto
è stata una scelta consapevole quindi se entrambi alti
priorità e contenuto di priorità regolare
va in questa coda quindi se otteniamo un
pezzo di contenuto ad alta priorità che abbiamo gentile
di necessità di esaurire la coda che conosci noi
bisogno di elaborare tutto lì dentro
assicurati che quel pezzo ad alta priorità
del contenuto viene anche elaborato noi
Inoltre non so quando le persone mettono i contenuti
nella nostra pipeline se c’era un set
modello
potremmo eseguire transcodificatori allo stesso modo
volta ogni giorno, quindi sai che l’hanno messo
tra 3 e 8 pm e il loro problema
sì, inizieremo a produrre 10 fili
20 trascrittori lasciano lì ma
non lo capiamo, quindi arriva il contenuto
attraverso a caso e davvero non lo facciamo
voglio lasciarli correre bene c’è
niente da elaborare abbiamo anche una varietà
di lunghezze di contenuti diversi, così abbiamo
capito questi video di cinque minuti
che sono molto brevi e li abbiamo
documentari che sono una specie di 90
lunghi minuti in modo da poter effettivamente elaborare
un sacco di video di cinque minuti in un’ora
ma un documentario di 90 minuti potrebbe richiedere un
intera ora su un transcoder da solo dentro
termini delle considerazioni di AWS per il ridimensionamento
ha una fatturazione oraria così presto come te
iniziato nell’istanza per due minuti
hai praticamente pagato per un’ora te
potrebbe anche tipo di lasciarlo in esecuzione
ma c’è anche un equilibrio tra i costi
e la velocità così si potrebbe iniziare un
istanza veloce e potresti trascrivere
questo pezzo di contenuto in due minuti ma
allora sarà inattivo per cinquantotto di
in modo che tu stia davvero meglio
quell’istanza è comprare più lentamente
esempio e pagare meno per esso e si
sai forse prendere 40 minuti o qualcosa del genere
invece di transcodificare il ridimensionamento di Amazon
metriche per un tipo di gruppo di ridimensionamento automatico
di norma circa cinque minuti
monitoraggio a destra prendo circa cinque
minuti per reagire in modo che tu sappia in un normale
cosa in scala si può dire hey se tutti i miei
le istanze qui colpiscono questa soglia di memoria
Mi piacerebbe davvero che tu intraprendessi un’azione
e far girare altre istanze in modo che
Posso diffondere il carico per noi e se
c’è qualcosa di caldo ad alta priorità
passando attraverso in realtà vogliamo noi
voglio provare e reagire più velocemente di così
così facile anche alle istanze ci vorrà un
pochi minuti è stato così tutto il
tutto va da zero a due questo
è forse circa sette o otto minuti
vogliamo reagire abbastanza velocemente
e al momento abbiamo costruito questo noi
in realtà non aveva il controllo su quale
istanze in un gruppo di ridimensionamento automatico ottenuto
spento Amazon avrebbe scelto il più vecchio
quelli e li chiudi e questo sarebbe
non essere buono se fosse effettivamente in esecuzione a
transcodificare nel momento in cui dovremmo rifare
tutto ciò che funziona vale la pena di dirlo
ora hanno una protezione di istanza
disponibile così sai che puoi dire hey
questo è occupato a fare il lavoro, per favore
non spegnerlo ma questo è stato fatto in
alla fine del 2015 e non ce l’abbiamo
disponibile così invece di provare a
indirizzare tutto qui ci siamo concentrati solo
sul nostro MVP non fare anche le cose
a lungo per una serie di motivi che abbiamo scelto
avere una coda così abbiamo entrambi
cose regolari e ad alta priorità lì
non far aspettare troppo a lungo le cose
coda per fare quella coda
scarico – per fluire effettivamente dobbiamo essere
proattivo sulla fornitura di abbastanza
capacità di gestire tutto nel
fare la fila in qualsiasi momento, quindi sappiamo che è così
sarà elaborato all’interno di a
tempo prevedibile così proattivo
la fornitura è necessaria in due casi uno se
è di alta qualità perché sta andando
prendere molto tempo che bloccherà
roba dietro di esso è se è
contenuto ad alta priorità quindi cose come il
notizie che vogliamo davvero alzare come
il più presto possibile
quindi se ricordi questo profilo da
Elia in realtà ci dice quelli
condizioni giuste, può dirci quando
è alta priorità o quando è alta
alta qualità quindi se è di alta qualità
contenuto ci vorrà molto tempo
per transcodificare avviare un nuovo transcoder per
ogni istanza di alta qualità che siamo
effettivamente provando qui se lo è
contenuti ad alta priorità più alta priorità
il contenuto ha solo una qualità inferiore
rendition questo è un affare strano
strano, ma in realtà è super veloce per
noi per trascrivere quelli di qualità inferiore
su lì in un solo caso così noi
ne giri solo uno per gestirlo quindi non c’è
due casi sono di alta qualità
priorità che stiamo iniziando in modo specifico
nuovo Transpo
per gestire quelle situazioni se è un
né alta priorità né alta qualità
vogliamo verificare il rapporto tra i posti di lavoro in
il sistema – quanti trasportatori abbiamo
ha funzionato e se quel rapporto va bene noi
lasciarlo altrimenti se il rapporto è troppo
in alto creeremo una nuova istanza così
che possiamo gestirlo se non ci sono
transcoders in esecuzione quindi vogliamo girare
uno su per garantire che la pipeline è
muovendosi così non dovrebbe mai esserci un tempo
quando c’è un contenuto di coda senza a
transcodificato eseguendo una cosa che dovrei
anche menzionare qui è che noi otteniamo
diversi numeri di consegne
producendo da ogni singolo video
che entra così il motivo per cui potremmo
hanno solo due interpretazioni provenienti da a
file particolare è che potrebbe provenire da a
fonte diversa
quindi vedremo che possiamo prendere in alto
consegne di qualità da qualcosa e
per alta qualità o aggiunta inferiore
consegne di qualità da una diversa
cosa e punto quelli insieme e
quelli sono i sei che in realtà finiranno
up up live on I view in modo da adattarsi
il numero di transcodificatori che abbiamo
eseguirlo è una linea di codice il
l’orchestratore decide quante istanze
è il numero ideale da avere e lo sarà
imposta la capacità sul gruppo e su AWS
processi che richiedono e avremo
le nostre nuove istanze iniziano praticamente
immediatamente, quindi è molto, è molto
pressione un po ‘più preferibile per noi
per fare questo, invece di aspettare per auto
metriche di ridimensionamento per dare il via al prossimo
la domanda è quale dimensione dell’istanza di ec2 facciamo
in realtà vuole transcodifica è piuttosto CPU
pesante e così anche noi vogliamo pensare
costo contro velocità di questi così abbiamo voluto
guardare la serie c4 di istanze
da AWS che ha il miglior prezzo per
calcolare il rapporto di potenza in loro e questo è
un grafico dell’analisi che abbiamo fatto
mostra la quantità di tempo da trasferire a a
pezzo di contenuto di un’ora contro come
molte di quelle istanze
stiamo per lanciare e puoi vederlo
relazione inversa che conosci tra
costo e velocità volevamo trovare un
tipo di istanza che stava per soddisfare il nostro
requisiti migliori la maggior parte di
il nostro contenuto non è pressioni temporali se lo è
prende un po ‘di più per transcodificare esso
è di nuovo okay , questo è gentile
di un bilanciamento di cosa abbiamo bisogno per il
maggioranza di tutto contro come possiamo
produrre cose che faranno il nostro
flusso di contenuti ad alta priorità elevata
che ti ricorderò che lo siamo
finanziato pubblicamente per l’efficienza dei costi
in realtà davvero importante, quindi in realtà
ho deciso di andare con la C per extra-large
poiché la maggior parte del nostro contenuto non lo è
Velocità guidato che volevamo davvero
salvare salvare la differenza il prossimo è a
taglia fino al doppio del costo l’ultimo
la domanda è quando decidi di farlo
diminuisce la capacità, quindi il ridimensionamento è
piuttosto facile se ottieni un sacco di contenuti
e tu non hai capacità che puoi aggiungere
più istanze ma richiede ridimensionamento
sapere quando le istanze sono occupate
questo sai che non vuoi fermarti
transcodificare che è in corso così al
tempo abbiamo costruito questo se si diminuisce il
numero di istanze Amazon sarebbe solo
scegli i più vecchi e uccidili così
per cominciare dovevamo effettivamente aspettare
fino a quando l’ intera pipeline era pulita
prima che potessimo chiudere tutto e
se pensi che suona davvero
inefficiente è così è qui
esempio di ciò in azione proprio questo è
il numero di transcodifica è in esecuzione in a
finestra di quattro ore in modo da poter vedere abbastanza a
molte attività di ridimensionamento su e giù qui
ma puoi vedere l’inefficienza di
aspettando che tutti questi contenuti siano stati completati
prima abbiamo spento tutto così
puoi vedere queste scogliere e te
può anche vedere l’ effetto di noi lacrimare
giù le cose immediatamente ci sono tempo
quindi abbiamo trasformato tutto solo in
avviarlo letteralmente a due minuti
più tardi e idealmente vogliamo davvero solo
abbattere
il nostro era di ottenere il massimo dal nostro
istanze questa è un’altra visione di quelli
stesse istanze di transcodifica che noi
creato in precedenza questo è un grafico di
istanza di vita in quella quattro ore
finestra quindi questo non è solo ciò che è
attualmente in esecuzione ma questo è questo
tutto ciò che era lì così è
fortemente distorto a istanze di breve durata
questo è che è abbastanza inefficiente voi
sappiamo che stiamo pagando per un’ora intera di
calcolare il tempo ma stiamo usando l’a
frazione di ciò che è lì in modo che quelli in
blu sono quelli che usano più di 30
minuti di un’ora e tutto il resto
è sottoutilizzato questo è questo è un
peggio della media , tutto bene io sono
tipo di esposizione a noi come un estremo
esempio dipende molto da quando
il contenuto viene inserito nella pipeline quindi a
produrrà mangimi regolari e costanti
macchine ben utilizzate ma un’enorme discarica
del contenuto in là sta per girare
un gruppo intero subito e poi chiuso
le cose vanno giù così io sono il ridimensionamento automatico
mettere in pausa il contenuto e suona
come abbiamo lasciato le cose in un modo davvero strano
state qui, ma guarderemo i costi
e questo spiegherà perché ci siamo fermati
quindi adesso abbiamo un minimo
approccio e questo è basato su
profili e ci dice più o meno come
molto tempo ci vuole per transcodificare a
pezzo di contenuto o se è a
pezzo di contenuto ad alta priorità e noi
reagire in base a ciò quindi è un’area di
il sistema in cui tutto ciò che facciamo sta andando
a tutto ciò che modifichiamo o cambiamo
andando ad avere un impatto enorme sui costi così
ora stiamo andando a vedere quanto
costi per eseguire effettivamente questo un comune
la domanda che mi viene fatta è perché lo farebbe
costruisci il tuo sistema quando ci sono
alcuni transcodificatori commerciali disponibili
diamo un’occhiata ad alcuni, quindi se si sta andando
utilizzare una transcodifica di servizio completo
fornitore di profili che otterrai
un bel front-end pulito che otterrai
alcune cose sarete in grado di chiamarli
con cose che vanno male, avrai
tutto transcodificato il più rapidamente
possibile in modo da inviare i lavori per intero
il tutto è orientato al dare
a te non appena lo hai lasciato cadere
in ciò che sappiamo per la maggior parte dei nostri
contenuto in realtà non ne abbiamo davvero bisogno
APPENA POSSIBILE, quindi abbiamo iniziato con questo modello
dove stiamo producendo tutto al più presto
ma abbiamo la capacità di non farlo
transcodificare tutto immediatamente rapidamente
quindi non abbiamo necessariamente bisogno di pagare
un servizio che ci darà
tutto il più rapidamente possibile
è come un bel po ‘ di soldi a
numero di figura a sei cifre che non lo faccio
nemmeno sapere cosa fosse ma per transcodificare
il volume di contenuti che abbiamo prodotto
all’ABC c’era un gran numero che c’è
anche alcuni tipi fai-da-te
opzioni di transcodifica disponibili
come un transcoder elastico da AWS e così via
c’è un servizio dove puoi
invia i file che devi fare un po ‘
configurazione devi ancora scrivere a
un po ‘di codice per farlo funzionare davvero
probabilmente verrai a risolvere i problemi se
stanno andando male ed è ancora un po ‘
non incontra alcuni dei nostri strani
requisiti quindi questa barra nera al
top qui con ritaglio asimmetrico è
in realtà non è un super comune
requisito di voler ritagliare un video in
un modo asimmetrico e quando eravamo
costruire questo non era in realtà
supportato da molti transcodificatori quindi
questa era una ragione per cui non potevamo fare
questo abbiamo anche il nostro formato di didascalie
che è leggermente oscuro di nuovo è un
Quark di ABC è che è dentro a cui è
il formato chiamato Opie 47 e non lo è
davvero usato da molte cose diverse
quindi in realtà non è supportato da molto
di posti così ancora se volessimo provare
ed espandi il nostro sistema per fare più cose
non potremmo usare alcuni di questi
sistemi roll-your-own o fai-da-te per farlo
attraverso il transcoder elastico è circa 45
K
dalla metropolitana quanto costa per un intero
anno di contenuto di iview ricorda che abbiamo
risolto il problema del pagamento per ASCAP
contenuto in un modo economicamente efficiente e noi
in grado di gestire questi requisiti dispari come
ritaglio asimmetrico e abbiamo il
capacità di essere in grado di gestire cose come
didascalie in futuro quindi per Metro in
Il nostro intero anno 2016 costa 11 punti
2 K e questo è ancora in parte perché noi
incliniamo ad alcune rendimenti di fascia bassa che siamo
un’emittente pubblica siamo economici ma dentro
2017 sai dove vengono pubblicate le cose
un sacco di interpretazioni di alta qualità
e questo significa che i nostri costi stanno andando
essere più alto ma in realtà lo abbiamo
pagato per quello in cui abbiamo già investito
essere in grado di scalare per questo costruendo
questo nuovo sistema quindi ecco un giorno di esempio
come esempio per il nostro sistema otteniamo a
varietà di diversi modelli di utilizzo che sono
sto solo per mostrarti una coppia
una vista delle rendition completate all’ora
sono 24 ore e quindi puoi vedere la maggior parte
i lavori fatti durante il giorno qui ma
abbiamo ancora un sacco di transcodifica
correndo più tardi al nono
quindi ci sono novità ci sono spettacoli come un QA
e questo particolare giorno costa $ 42 e 86
centesimi e il crollo era quello
Il 90% del nostro costo è legato alla facile
database è il 6% di archiviazione del file di archiviazione è
4% e perché stai pagando per sq
messaggi di milioni di persone che conosci
conosci il registro su quella scala che farà
mostrarti la variegata natura della nostra produzione
questo è letteralmente il giorno dopo questo è un
mucchio di contenuti che ha finito per essere
programmato alle 3:00 di mattina da alcuni
persona o sistema e quindi è semplicemente giusto
illustra il non sappiamo quando
le cose si mettono in noi non possiamo gestire le cose
in particolari orari prestabiliti e così via
la flessibilità per la nostra transcodifica è
in realtà
scala in base al contenuto in volo è
Super benefico $ 25, quindi ho detto che tu
sapere che questi costi sono in realtà enormi
affare per noi
l’ ABC è un’emittente pubblica che amiamo
che amiamo il fatto che otteniamo il
flessibilità che vogliamo ma possiamo
ancora fare questo in un modo economicamente efficiente
modo e siamo arrivati al punto
dove i costi sono così bassi che noi
non potrebbe giustificare spendere più dev
sforzo su di esso e quindi è per questo che abbiamo
ha lasciato il nostro algoritmo di transcodifica come esso
è esattamente così com’è
così tratteniamo in efficienza lo è
ancora facendo il lavoro di cui abbiamo bisogno in a
modo davvero conveniente in modo da avere solo
ha detto che non possiamo giustificare le ottimizzazioni
è super divertente teorizzare su cosa
puoi farlo davvero, lo farò a
coppia rapidamente così una cosa ovvia noi
può fare è in realtà introdurre una priorità
fare la coda qui, oltre al nostro
coda regolare e la nostra priorità ti fa code
potrebbe transcodificare su un molto più grande
istanza che viene attivata immediatamente
e il contenuto regolare che non lo fa
bisogno di essere transcodificato immediatamente possibile
in realtà basta aspettare che ci sia
abbastanza da produrre sì per produrne di più
trasferimento costante e transcodifica completa così
che possiamo evitare questo grafico dove abbiamo
ha ottenuto tutte queste istanze sottoutilizzate
un’altra cosa che possiamo fare è in realtà
transcodificare in segmenti in modo che possiamo dividere
il file sorgente in quei blocchi e
allora possiamo usare ffmpeg per aiutare veramente
noi lo facciamo e questo significa che il nostro tempo
trascrivere per un particolare file è
andando ad essere costante, non importa
se ci dai un video di cinque minuti o un
documentario di due ore lo tiriamo fuori
da qualche parte e inviarlo possiamo farlo
in un tempo costante quindi questo era un numero primo
candidato per qualcosa come lambda
non esisteva nella regione di Sydney al
appuntamento lo stavamo costruendo noi
in realtà ha fatto un’analisi dei costi per voi sapere
spedire tutto verso gli Stati Uniti
trasferito lì in lambda e vieni
indietro ma abbiamo finito per costruirlo in a
quindi l’ultima cosa che possiamo fare è
in realtà rimuovere la nostra fiducia
su profili hard-coded quindi possiamo usare FF
prova che sappiamo che usiamo i profili al
momento sorta di hard-coded non è grande
invece dovremmo esaminare ogni file come
entra e in effetti vede il
attributi sul file usando la sonda FF
e così possiamo vedere qui che abbiamo
informazioni sulla risoluzione che possiamo
sappiamo che non è una dimensione standard
quindi sappiamo che in realtà dobbiamo ritagliarlo
possiamo vedere che ha 50 fotogrammi a
in secondo luogo, vogliamo un output a 25
incornicia un secondo così sappiamo che dobbiamo
eseguire un filtro di unione verso il basso per risolverlo
e qui se otteniamo un flusso audio
flusso che è il nostro flusso di didascalia questo
stream sconosciuto qui, quindi ffmpeg no
riconoscilo immediatamente ma se vediamo
che sappiamo che le didascalie sono e noi possiamo
possiamo effettivamente estrarli come parte di
il nostro processo così giusto per concludere bene
transcodifica è una parte molto importante
di preparare i contenuti per lo streaming
servizi come la vista dell’occhio così il nostro nuovo sistema
è stato progettato specificamente per essere veloce
ma economicamente efficiente abbiamo piccolo
servizi che abbiamo finito per costruire
nodo e in oro e usiamo ffmpeg a
gestire la nostra trascrizione nel lavoro e noi
fare affidamento sui servizi AWS per resilienza e
scala così in termini di ridimensionamento sai come noi
approfittare di diverse tecniche
qui in modo che possiamo soddisfare i mutevoli livelli
della domanda ma risparmiamo sui costi quando siamo
in realtà non fare nulla con quelli
istanze e puntiamo davvero a fornire
tutto ciò in un modo molto ragionevole
lasso di tempo e con un costo ragionevole quindi io
spero davvero che tu abbia apprezzato questa panoramica
di transcodifica e di come la nostra trascrizione
sistema funziona grazie mille per il tuo
volta ho davvero vi incoraggio a piacere
valutare o porre domande sull’app e
Sarò in grado di rispondere loro nel
Arrestato sezione Dibble prossimo Grazie
tu
così ti sei mai seduto di fronte a
servizio di streaming come Netflix e tu
pensavate hey tu sai che io chiedo che cosa ha bisogno
effettivamente ottenere fatto per preparare questa
contenuto per lo streaming sulla mia TV e va bene
Sam ha ma io totalmente come non l’ho mai fatto
la realtà è però che c’è
in realtà un bel po ‘di roba che ha bisogno
per capitare ai contenuti video in realtà
rendilo disponibile a te e questo è quello che
si inizia a parlare di qualcosa che oggi
le stoffe che deve accadere alla vostra
il video in modo da renderlo disponibile per
tu e cosa abbiamo effettivamente fatto
ciò accade per l’intero catalogo ABC
quindi di nuovo una completa divulgazione per cui lavoro
Amazon sto lavorando su Amazon
fresco ora che è consegne di generi alimentari
ed è disponibile a Chicago se tu
Voglio provare, ma io non sono qui
Rappresentando Amazon oggi sono
rappresentandomi per un ruolo precedente
che ho fatto all’ABC, quindi lo voglio davvero
per farti conoscere l’ABC prima è a
emittente pubblica in Australia ed è
in realtà un grande cittadino
tesoro è molto conosciuto per la TV
abbiamo un sacco di diverso proprio
servizi di trasmissione e spettacoli che noi
creare è anche una fonte estremamente importante
di notizie radio programmazione regionale e I
piace pensarlo un po ‘come un
PBS della vecchia scuola è finanziato pubblicamente
non ci sono annunci durante gli spettacoli
ed è in realtà uno dei rari
canali che fanno appello a entrambi i bambini e
conosci gli anziani così è un po ‘
ha un pubblico che è davvero grande
spettro e uno degli spettacoli iconici
quello che abbiamo è uno spettacolo chiamato a
playschool e se sei un bambino in
Australia, cresci con questi
personaggi
tu sai davvero tutto di questo
mostrare ed è una specie di nostro equivalente di
Sesame Street e nella mia prima settimana a
l’ABC questo ero io per incontrare il mio
eroi dell’infanzia in forma gigante, solo io
volevo mostrarti questo solo per mostrarti
l’ amore ce l’ho
qui e come enormemente eccitato ero al
opportunità di lavorare su un sistema come
questo per un’azienda come questa, quindi l’ABC
ha un prodotto chiamato via ed è il
front end del sistema che sarò
parlando di oggi è quello che noi
produrre tutto il video è per ed è a
Il servizio TV on demand è gratuito
tutto ciò che viene trasmesso sul
ABC viene reso disponibile su ibew
e serve milioni di spettatori ogni
una settimana sola per fare questi spettacoli
disponibile su iview che dobbiamo elaborare
loro giusto dobbiamo transcodificarli
in formati che sono effettivamente adatti
per lo streaming così il discorso di oggi è un
sistema che abbiamo costruito per fare in modo che la nostra scala
un modo economicamente efficiente che abbiamo chiamato il nostro nuovo
sistema Metro quindi cose che vorrei
per coprire oggi uno è quello che effettivamente faccio
significa quando dico transcodifica video a destra
perché abbiamo bisogno di ciò che fa?
Passerò attraverso una transcodifica a
tipo di mostrare l’intero processo di
quello che sta effettivamente facendo è cosa
abbiamo finito per costruire per gestire il
volume di contenuti che produciamo al
ABC come abbiamo preso una transcodifica e
in realtà lo ripeto in modo affidabile, quindi lo farò
darvi una panoramica di alto livello più alto di
l’ architettura che abbiamo costruito e AWS
servizi che usiamo qui lingua
scelte che abbiamo fatto e anche il
benefici delle arti usando piccoli servizi
e dividendo il nostro sistema su questo è
la mia parte preferita del sistema è come
scaliamo la transcodifica dei transcodificatori
è la parte più costosa del nostro sistema
quindi come possiamo effettivamente scalare per gestire
domanda fluttuante, ma anche ottimizzare per
costa quanto costa effettivamente la metropolitana
per eseguire correttamente come si confronta con il
sistemi di transcodifica commerciali e tu
sapere cosa costa in realtà per noi
correre per una giornata tipo o un tipico
anno di contenuti per l’ABC
e durano questo è una specie di un po ‘di divertimento
questi che tipo di ottimizzazioni potrebbero
in realtà lo facciamo in futuro perché questo
il progetto in realtà è iniziato davvero
piccola squadra di una media di tre
persone che hanno funzionato per circa sei mesi
questo è il sistema risultante che noi
Finito con e quindi c’è sicuramente
alcune cose che possiamo fare in futuro
ciò contribuirà a migliorare il rendimento
e ottimizzazioni quindi prima di tutto
scusa la trascrizione, mi rendo conto di esserlo
non avevo iniziato il mio tempo libero grazie
quindi la nostra transcodifica è un processo vero
iniziare con un file di input iniziale che
è un file audio o video di
qualche tipo e lo convertiamo in una varietà
di diversi formati di output che noi
chiamare le interpretazioni che sto per essere
riferendosi a rendition in tutto questo
parla abbastanza spesso perché è davvero
parte importante del nostro sistema così noi
creare un sacco di diverse interpretazioni per
ogni video e nella tradizione è leggermente
diverso quindi quali sono i cambiamenti
possiamo davvero fare su questi video
fare cose come regolare la risoluzione
come la dimensione del video che possiamo regolare
il formato attuale in modo che tu sappia
la codifica di esso possiamo cambiare il
bitrate quindi la qualità del video
il bitrate più alto è una qualità superiore e
possiamo aggiungere cose come filigrane così
come i loghi nella parte inferiore dello schermo
quel tipo di cose e il nostro obiettivo è
davvero per fare un video che potrebbe venire
da qualsiasi fonte e produrre uno standard
serie di interpretazioni da essa vogliamo a
serie prevedibile di consegne per noi
utilizzare su iView e quindi questo video qui
a sinistra è il singolo video che lo farà
ricevere e attraverso la transcodifica
processo finiremo per trasformarlo
nelle più interpretazioni standard
che sono sulla destra e lo facciamo per
ogni video quindi perché dovremmo avere così tanti
taglie uno è vogliamo ottimizzare il
video per il tuo dispositivo, quindi se lo sei
guardandolo su a
macchina o un televisore che vogliamo darti
video di qualità migliore contro se sei su
un cellulare non hai davvero bisogno di qualcosa
è così grande e l’altra cosa è
che in realtà vogliamo regolarlo così
che si adatta alla velocità della rete
hai così se sei quello che è così ogni
la resa ha un diverso bitrate e
questa è la quantità di dati che sei
download al secondo per poter vedere
i video quindi se volete un alto rete
connessione fantastica che ti daremo
il massimo bitrate che abbiamo
altrimenti se sei su una versione inferiore
come voglio dire se sei su cellulare sul
vai ti daremo una bassa qualità
interpretazione in modo da poter effettivamente giocare
che non influenzerà davvero la tua visione
qualità del giocatore il video player che
lo stai guardando con è in realtà
responsabile della selezione di quale di
queste interpretazioni per giocare è il nostro lavoro
solo per garantire che produciamo il pieno
serie di consegne in modo che quando arriva
al tuo giocatore può selezionare qualsiasi cosa
uno è il più adatto per te così
convertiamo tutto in h.264 mp4 noi
ricevere molti formati di input diversi
ma rende molto più facile l’output
questo in un formato e questo perché
è un formato standard per lo streaming HLS
il giocatore non deve preoccuparsi
conosci diversi codec che non abbiamo
fare QA attraverso un intero gruppo di
diversi formati e anche tu sai
non stiamo raddoppiando sul deposito di
più interpretazioni diverse così sono
andando a camminare attraverso un esempio qui così
hai una buona idea di quello che stiamo facendo
per prima cosa dobbiamo preparare la filigrana
che in realtà viene messo sul fondo
ogni video in modo da renderlo trasparente e
poi lo abbiamo ridimensionato e quello
la dimensione è relativa relativa a ciascuno
dimensione della rappresentazione in modo da sapere che otterrai un
più grandi interpretazioni che stiamo per fare
avere un logo più grande ma quando lo guardi
tornando sullo schermo sembrerà lo stesso
relativo prendiamo quindi questo video di input
che abbiamo questo è un episodio di a
spettacolo chiamato utopia che è un australiano
spettacolo prodotto dalla ABC e il formato
che abbiamo questo in
qualcosa chiamato gxf è una trasmissione
formato e puoi vedere che ha questo
barra nera in alto qui e ed è così
usato durante la trasmissione
contiene informazioni sul codice di tempo al suo interno e
contiene anche didascalie, ma il
la cosa è che sai che non lo sei
andando a usare quelli quando stai streaming
online in modo da ritagliarlo subito dopo
si noti che è in realtà in formato 4: 3
e vogliamo mostrartelo dentro
widescreen 16 da 9 così per storico
ragioni è in realtà più spazio
efficiente per tipo di memorizzarlo in 4: 3 e
c’è un sacco di sistemi simili in
l’ABC sono bravi a produrre
contenuto e gestione del contenuto in 4: 3
quindi è quello che mi viene salvato, ma noi
regolalo come rapporto e salvalo nel
file di intestazione in modo da conoscere il video
il giocatore lo saprà sì è in realtà
supposto per essere un formato widescreen noi
quindi aggiungi la filigrana che abbiamo
prodotto prima e di nuovo tu vuoi solo
fare in modo che, se stai passando
rendimenti nel mezzo dello streaming
ma il logo non sembra che sia
spostandoci dobbiamo anche elaborare
l’audio di questo video mi dispiace questo è
la traccia audio per l’originale
versione di mezz’ora di quello spettacolo e it
mostra l’ intensità dell’audio in modo che il
più alte sono le barre più il volume è forte
e passiamo attraverso un processo audio
normalizzazione perché vogliamo portare
tutto per un volume coerente in tutto
tutti i diversi video e lo facciamo
perché se hai uno spettacolo e mostri B
qui e hanno effettivamente registrato
diversi volumi o hanno diversi
volumi sulle loro tracce
quando lo guardi di nuovo sul tuo lettore
non vuoi dover continuare ad aggiustare
il volume ma come te come cambi
mostra così normalizziamo tutto così
non si nota la differenza, quindi dopo
il video e l’ audio di entrambi
elaborato e il video è ora pronto per
flusso e in realtà viene diviso
in un gruppo di pezzi da 10 secondi
e così quando suoni il tuo video tu
ricevere una serie di questi piccoli pezzi
insieme e formano un sai liscio
video continuo per te
e quei piccoli file possono venire da
uno dei diversi maghi e
è così che arriva il tuo lettore video
la possibilità di trasmettere e modificare il
qualità che conosci dinamicamente senza di te
doversi davvero preoccupare di dove
viene da così è molto diverso
modifiche che abbiamo apportato a questi video
abbiamo cambiato la codifica
e ritaglio e bit rate e roba
in questo modo, come possiamo effettivamente tenere traccia
di tutte queste cose, noi idealmente
vuoi tutti quei cambiamenti in un posto
perché siamo molto diversi
formatta il tipo di passaggi di cui abbiamo bisogno
fare per ciascuno dei file sta per
essere diversi e non vogliamo avere
pensare troppo a quello che stiamo andando
fare lì così salviamo la lista di
modifiche per ogni singolo tipo di video in
qualcosa ha chiamato un profilo e questo è
è un insieme di istruzioni che possiamo
cercare ogni volta che otteniamo un nuovo file in
il nostro sistema sembra un po ‘come questo
uso stilistico, così i nostri parametri hanno ottenuto un
posizione di origine in cui si trovano tutti i file
abbandonato e per iniziare con noi solo gentile
di mappare una cartella su un profilo e quello
serve tutti i video rilasciati in questa cartella
Ho questo set di istruzioni su di loro
e quindi questa cartella contiene il contenuto GSX gxf
questa è la roba che farà a un gxf
file e finiamo con una transcodifica
esempio che abbiamo appena visto ma se lo otteniamo
qualche altro tipo di contenuto come la bocca
file formato Perez Apple ProRes c’è
in realtà meno cose da fare non noi
non ottenere quel contenuto con il nero
bar in realtà non otteniamo quel contenuto
siamo nella proporzione sbagliata, è già così
già fatto per noi, quindi c’è di meno
istruzioni che in realtà dobbiamo fare
per finire quello e così effettivamente per fare tutto
di quello per eseguire tutto questo video
copiando il ridimensionamento ecc. usiamo ffmpeg
che è un supporto open source
strumento di transcodifica è incredibilmente
potente ed è stato in giro per circa
15 anni questo è un esempio di un campione
Comanda che per eseguire qualcosa in ffmpeg
e fa molte ipotesi su
il formato di input sulla qualità voi
vogliono circa i formati di output che si
volere
questa è la cosa vera che finiamo
utilizzando per ore ed è legato alla
profilo quindi se ne stiamo producendo sei
diverse interpretazioni ne avremo sei
diverse versioni di questo comando e
il comando ti mostrerà cose come
che cos’è la codifica che vogliamo come
mostra il ritaglio che deinterlaccia questo
è il rapporto di aspetto di scala alcune cose
con la filigrana cose che sono
controllo qualità video e audio e
solo alcune altre opzioni e c’è un
molte cose diverse che sono qui dentro
Io non ho intenzione di essere in grado di coprire in
dettaglio ma ffmpeg la comunità è
veramente attivo e utile ed è molto
ben documentato quindi è fantastico
pezzo di software che davvero non potevamo
ho costruito Metro senza questo, quindi è così
tipo di una panoramica di come il
processo di transcodifica funziona e il nostro obiettivo
è davvero prendere quel video in ingresso e
produrre il set standard di video
produrre video che useremo per il nostro
prosperare così vogliamo ora dare un’occhiata
su come effettivamente lo eseguiamo su larga scala
Metro è un flusso di lavoro quindi tutto il contenuto
quello che entra li seguirà
passi di alto livello in modo da ottenere un file e noi
trasferirlo in AWS , quindi accodare il file
contenuto e ci assicuriamo che sia pronto
per l’ elaborazione la codificheremo per
eseguendo ffmpeg su di esso spostiamo il
risultanti rendimenti al nostro CDN e
poi racconta dal vivo che odi tutti i tuoi
rendition ora sono pronti e si può
pubblicare ed ecco come appare
alcuni un punto di vista dell’architettura così
prima il file di input viene caricato in un file
s3 bucket e quando è finito
caricando usiamo s3 xin costruito
notifiche per mettere un messaggio su a
coda Amazon SQS quindi abbiamo scritto
molti piccoli servizi che chiamiamo coda
Lissa e uno di loro controlleranno
questa coda e il suo unico lavoro è quello di
messaggi in corso su quella coda e su
dillo a un altro componente che questo ha
è successo così non appena il
il messaggio viene aggiunto lì che invierà
quel messaggio a e un altro componente in
il nostro sistema chiamato l’orchestratore per
Dite che se i lavori sono stati aggiunti e il
l’orchestratore è una specie di cervello di
la nostra operazione è l’unico componente
questo è in realtà lo stato consapevole del solo
componente che ha un archivio dati è
responsabile del monitoraggio di dove
tutto è nel sistema e
controlli controlla anche il numero di
transcoders che abbiamo secondo
il numero di lavori in cui siamo entrati
volo in modo che venga salvato e poi mentre
sta salvando il lavoro che cercherà anche
quella lista di profili e corrisponderà
questo video per un profilo e quel profilo
ci dirà quante interpretazioni siamo
cercando di creare e lo dirà anche
noi il comando ffmpeg per quelli
renditions e input e output
location così è davvero come tre
cose importanti che otteniamo in realtà
ottenere più informazioni che inviamo insieme
con quel profilo ma per noi di fare il nostro
transcodificare quelle sono le tre cose che abbiamo
davvero bisogno e così in questa fase abbiamo
in realtà ha abbastanza informazioni per iniziare
il nostro transcodificare sarà l’orchestratore
accodare un messaggio per una resa a
la nostra coda di trasmissione quindi se diciamo
stiamo producendo sei diverse interpretazioni
poi siamo in sei messaggi qui e bene
anche l’orchestratore calcolerà
se abbiamo bisogno di più transcodifica ec2
istanze per soddisfare effettivamente il numero di
posti di lavoro nel sistema in modo se lo facciamo gira
su nuove istanze un esterno lo farò
in realtà ora girare giù così tutti
le nostre istanze di transcodifica sono il marshalling
questa coda con i messaggi del codice di trance
su di esso ogni transcoder ne prenderà uno
messaggio alla volta una transcodifica in a
tempo e fai il suo lavoro e questo è dove
la parte più intensa con ffmpeg è
effettivamente fatto ora
sistema in modo che impieghi più tempo
è come il 90% del tempo nel sistema
è dentro questa macchina qui e il tempo
al trasferimento è anche andando a essere
dipende molto dal tipo di contenuto
che stai transcodificando quindi se è un
lungo pezzo di contenuto lo faranno
ovviamente impiega molto tempo anche se lo è
è un contenuto di alta qualità
andando a prendere molto più tempo di un inferiore
pezzo di contenuto di qualità così una volta
la transcodifica viene eseguita per il salvataggio del file
un secchio s3 di output che usiamo anche noi
l’orchestratore viene detto e poi esso
salverà lo stato di questo lavoro ora così
che trasferiamo queste interpretazioni alla luce
per il CDN quindi il processo di trasferimento
prende le consegne finite e invia
loro al CDN e questo significa che loro
in realtà diventa pronto a pubblicare su I
guarda scusa si ok così l’orchestratore
segnerà quella resa come completa e
notificherà I view in modo che i video
può essere pubblicato anche a questo punto
dice hey c’è qualcos’altro nel
sistema e se non sta andando per spegnere
tutti i transcoders in modo che non lo siamo
macchine da corsa quando in realtà non lo siamo
fare qualsiasi lavoro in media ci vuole
circa 8 minuti e mezzo per effettivamente
passare attraverso la pipeline e basta
la figura è tutto dal caricamento del file a
s3 fino alla notifica I view e
come ho detto abbiamo una varietà di contenuti
da te conosci cinque minuti di video
sono un po ‘come molto breve a
documentari che possono essere di 90 minuti o
due ore e così il sistema del timer davvero
dipende da quanto tempo è qui è un po ‘
di informazioni su alcune medie di come
lungo ci vuole così la qualità più bassa
interpretazione che produciamo che è in realtà
una traccia audio e che tende a prendere
circa il 7% o il 12% del contenuto originale
tempo nel sistema e il nostro massimo
pulsante di qualità tende a prendere circa il 70%
di tempo reale quindi se un pezzo di un’ora di
il contenuto va nell’audio
sette minuti per uscire e un più alto
il contenuto in bitrate richiederà 40 a
in termini di tecnologia che usiamo
raccogliere per costruire questo sistema le cose che abbiamo
costruito noi stessi sono in realtà scritti in
due lingue diverse usiamo il nodo e
usiamo andare così il primo di questi è il
orchestratore è il cervello del nostro
sistema che è l’ unico che abbiamo scritto
nel nodo è perché è semplice e veloce
di scrivere un’API per fondamentalmente e
la squadra sapeva già cosa stava succedendo
on con nodo così tanto nelle vite intelligenti
qui abbiamo ciò che è in volo
quanti transcodificatori ho bisogno di cosa è
lo stato di ogni lavoro e tu sai
guardando le informazioni di cui ho bisogno
sapere su ciascuna delle interpretazioni che è
passando attraverso il profilo questi
i servizi quelli che sono seduti su
la fine della coda e in realtà non lo sono
non sono molto indicativi sono scritti e
andare e quindi sono molto piccoli sono
servizi di lunga durata indipendenti e loro
il lavoro è fondamentalmente monitorare questi eventi
che entrano e fanno qualcosa con loro
e così quei passi ci sono tre di loro
questi passaggi sono per registrare un nuovo media
file qui per trascrivere il contenuto e
anche per trasferire il contenuto al
CDN quindi sono stati davvero stabili e
davvero facile da implementare perché sono
solo loro si costruiscono in un binario e
lo buttiamo giù e lo è stato
fantastico quindi non abbiamo bisogno di uno speciale
runtime o qualcosa del genere per go e
è anche stato bello per le tubature di grandi dimensioni
file che possono essere utilizzati attraverso il nostro CDN
un flusso fantasma che puoi usare fondamentalmente
un file di qualsiasi dimensione e utilizzerà a
quantità costante di spazio su disco di memoria e
inviare qualsiasi cosa, quindi è così
in realtà è super vantaggioso in termini
di infrastrutture è tutto il nostro stack
costruito su AWS in modo da coprire questi
li uso in breve in modo equo
moda standard e abbiamo anche solo
appena parlato in termini di
architettura usiamo MySQL su RDS solo per
memorizzare tutti i nostri lavori e ci permette di fare
alcune cose piuttosto semplici in termini di
analisi abbiamo alcuni auto-ridimensionamento ec2
i gruppi dispongono di quattro diversi
Servizi
ed è grandioso perché possiamo scalare
loro indipendentemente e particolarmente qui
i nostri trans coder sono quelli che noi
scala in un modo insolito così noi
cambiato frequentemente il numero di
istanze in esecuzione in qualsiasi momento a
soddisfare la domanda e ho intenzione di essere
spiegando molto di più su questo nel
la prossima sezione useremo s3 per l’input e
archiviazione di output e mantenere il contenuto per
sette giorni e purifica il contrario e lo siamo
usando la coda qui come code qsr per
affidabile riprovare i messaggi tra i nostri
componenti quindi è fondamentalmente così noi
non perdere nulla nel mezzo di
elaborazione in modo da sapere se qualcosa ottiene
buio o non possiamo contattare il CDN a
in realtà metto roba lì e non grande
affare, ci sediamo in coda
aspettando che tutto sia disponibile
ancora una volta la stessa cosa si applica se lo siamo
effettivamente ridistribuendo uno dei nostri servizi
fa la coda di quali messaggi ci sediamo
lì aspettando che tutto sia finito
e pronto a riceverli di nuovo così il
è solo una specie di cosa insolita per noi
i transcodificatori possono richiedere fino a due
ore per fare effettivamente il loro lavoro e
è un po ‘ troppo tempo per essere
elaborare un messaggio quindi dobbiamo
riferire periodicamente e dire
in realtà sì, ci sto ancora lavorando
ancora lavorando su questo altrimenti abbiamo trovato
che qualche altra transcodifica avrebbe scelto
su un pezzo di lavoro e lo faremmo
duplice sforzo e sì no
davvero ideale quindi dobbiamo essere sicuri
è solo un pezzo di contenuto
gestito da un transcoder in uno qualsiasi
tempo alcuni dei vantaggi sul design
come un piccolo servizio sono nuove distribuzioni
davvero facile ci piace come ho detto che non lo facciamo
avere una perdita di messaggistica dei dati perché
stiamo usando i loro messaggi di spunti solo
aspetta lì fino a quando tutto è finito e
pronto a gestire loro un’altra cosa che
abbiamo davvero trovato utile è il
abilità che si orientano per scalare le cose
indipendentemente
e lo vedrete tra poco
sezione di transcodifica che possiamo avere
decine di trascrizioni in esecuzione a centinaia
se lo volessi davvero e sarebbe successo
non essere un problema è anche molto facile
per noi per aggiungere nuovi pezzi senza
colpendo qualcuno di quelli esistenti noi
ho parlato di didascalia
estrazione in modo che la barra nera che era a
la parte superiore del contenuto del video prima
in realtà eliminiamo una cosa che faremmo
l’amore da fare è estrarlo
noi stessi e il fatto è questo
sembra essere in un formato davvero unico
e per noi farlo lo faremmo noi
in realtà non è un grosso problema creare un nuovo
servizio facciamo che possiamo effettivamente eseguirlo
in parallelo insieme a tutti gli altri
macchine di transcodifica e sarebbe
bene anche io amo molto il differito
responsabilità per tipo di individuo
servizi in modo da avere una fonte di dati
per il nostro sistema è stato davvero fantastico
perché se facciamo modifiche allo schema o
qualcosa di simile e il raggio di esplosione
per quello è molto limitato proprio lì
solo un servizio in realtà infastidito e
gli altri in realtà non loro
in realtà non devono avere lo stato che ricevono
i messaggi in tutto ciò di cui hanno bisogno è dentro
quel messaggio fanno un po ‘di lavoro e poi
dicono qualcos’altro che ho fatto
quindi davvero non dobbiamo preoccuparci
sulla sincronizzazione delle cose, se lo siamo
schierando tutto può andare
indipendentemente quando vuole
cose che abbiamo trovato stimolanti
implementazioni che assicurano tutti i servizi
sono effettivamente cablati insieme correttamente
è stato impegnativo così a tal fine
abbiamo avuto a concentrarsi davvero su
automatizzando le cose il più possibile
usa i modelli di CloudFormation AWS
Modelli di CloudFormation da realizzare
tutto ripetibile e coerente e
Il 95% del nostro sistema è in realtà un modello
noi e noi ci schieriamo anche da un CI che realizziamo
certo che tutto ciò che sai è come
piccolo coinvolgimento umano possibile
perché abbiamo messo in scena dev prod e
non c’è modo che volessimo
configurare manualmente qualsiasi cosa tramite
noi stessi
è ovviamente più lavoro da costruire e
sviluppare piccoli servizi in modo indipendente
piuttosto che mettere tutto in un’unica grande cosa
ma per noi sono davvero la grande cosa
che abbiamo guadagnato da questo è stato il
possibilità di avere un ridimensionamento indipendente
in particolare per i nostri transcoders e
questo è ciò che valeva la pena farlo in piccolo
servizi in modo che è una panoramica di voi
sapere quale fosse la nostra architettura su AWS
il fatto che stiamo usando ffmpeg e
usando i nostri piccoli servizi indipendenti
così ora ne vedremo uno
dei pezzi veramente interessanti che
è come transcodificare tutto il contenuto in a
modo tempestivo in modo come ho detto prima abbiamo
cambiare frequentemente il numero di
transcoders che stiamo eseguendo e
questo perché se ne abbiamo un sacco
contenuto per elaborare sai che possiamo girare
un sacco di casi, ma se abbiamo
niente poi si sa che non abbiamo a
eseguire qualsiasi cosa così quando si dovrebbe effettivamente
far ruotare o abbattere queste istanze
non è una domanda semplice a cui rispondere
questo in realtà è molto diverso
fattori che entrano in gioco così il primo
di loro è la velocità del contenuto
dobbiamo essere disponibili, ne riceviamo molte
contenuto molto in anticipo ma spettacoli dal vivo
sono un’eccezione quindi se hai il nuovo
trasmissione di notizie
lo avremo in anticipo una volta
lo spettacolo è fatto ci viene inviato
attraverso la nostra pipeline di transcodifica e noi
bisogno di provare e renderlo disponibile come
rapidamente possibile
In realtà invidiamo pede con uno spunto
è stata una scelta consapevole quindi se entrambi alti
priorità e contenuto di priorità regolare
va in questa coda quindi se otteniamo un
pezzo di contenuto ad alta priorità che abbiamo gentile
di necessità di esaurire la coda che conosci noi
bisogno di elaborare tutto lì dentro
assicurati che quel pezzo ad alta priorità
del contenuto viene anche elaborato noi
Inoltre non so quando le persone mettono i contenuti
nella nostra pipeline se c’era un set
modello
potremmo eseguire transcodificatori allo stesso modo
volta ogni giorno, quindi sai che l’hanno messo
tra 3 e 8 pm e il loro problema
sì, inizieremo a produrre 10 fili
20 trascrittori lasciano lì ma
non lo capiamo, quindi arriva il contenuto
attraverso a caso e davvero non lo facciamo
voglio lasciarli correre bene c’è
niente da elaborare abbiamo anche una varietà
di lunghezze di contenuti diversi, così abbiamo
capito questi video di cinque minuti
che sono molto brevi e li abbiamo
documentari che sono una specie di 90
lunghi minuti in modo da poter effettivamente elaborare
un sacco di video di cinque minuti in un’ora
ma un documentario di 90 minuti potrebbe richiedere un
intera ora su un transcoder da solo dentro
termini delle considerazioni di AWS per il ridimensionamento
ha una fatturazione oraria così presto come te
iniziato nell’istanza per due minuti
hai praticamente pagato per un’ora te
potrebbe anche tipo di lasciarlo in esecuzione
ma c’è anche un equilibrio tra i costi
e la velocità così si potrebbe iniziare un
istanza veloce e potresti trascrivere
questo pezzo di contenuto in due minuti ma
allora sarà inattivo per cinquantotto di
in modo che tu stia davvero meglio
quell’istanza è comprare più lentamente
esempio e pagare meno per esso e si
sai forse prendere 40 minuti o qualcosa del genere
invece di transcodificare il ridimensionamento di Amazon
metriche per un tipo di gruppo di ridimensionamento automatico
di norma circa cinque minuti
monitoraggio a destra prendo circa cinque
minuti per reagire in modo che tu sappia in un normale
cosa in scala si può dire hey se tutti i miei
le istanze qui colpiscono questa soglia di memoria
Mi piacerebbe davvero che tu intraprendessi un’azione
e far girare altre istanze in modo che
Posso diffondere il carico per noi e se
c’è qualcosa di caldo ad alta priorità
passando attraverso in realtà vogliamo noi
voglio provare e reagire più velocemente di così
così facile anche alle istanze ci vorrà un
pochi minuti è stato così tutto il
tutto va da zero a due questo
è forse circa sette o otto minuti
vogliamo reagire abbastanza velocemente
e al momento abbiamo costruito questo noi
in realtà non aveva il controllo su quale
istanze in un gruppo di ridimensionamento automatico ottenuto
spento Amazon avrebbe scelto il più vecchio
quelli e li chiudi e questo sarebbe
non essere buono se fosse effettivamente in esecuzione a
transcodificare nel momento in cui dovremmo rifare
tutto ciò che funziona vale la pena di dirlo
ora hanno una protezione di istanza
disponibile così sai che puoi dire hey
questo è occupato a fare il lavoro, per favore
non spegnerlo ma questo è stato fatto in
alla fine del 2015 e non ce l’abbiamo
disponibile così invece di provare a
indirizzare tutto qui ci siamo concentrati solo
sul nostro MVP non fare anche le cose
a lungo per una serie di motivi che abbiamo scelto
avere una coda così abbiamo entrambi
cose regolari e ad alta priorità lì
non far aspettare troppo a lungo le cose
coda per fare quella coda
scarico – per fluire effettivamente dobbiamo essere
proattivo sulla fornitura di abbastanza
capacità di gestire tutto nel
fare la fila in qualsiasi momento, quindi sappiamo che è così
sarà elaborato all’interno di a
tempo prevedibile così proattivo
la fornitura è necessaria in due casi uno se
è di alta qualità perché sta andando
prendere molto tempo che bloccherà
roba dietro di esso è se è
contenuto ad alta priorità quindi cose come il
notizie che vogliamo davvero alzare come
il più presto possibile
quindi se ricordi questo profilo da
Elia in realtà ci dice quelli
condizioni giuste, può dirci quando
è alta priorità o quando è alta
alta qualità quindi se è di alta qualità
contenuto ci vorrà molto tempo
per transcodificare avviare un nuovo transcoder per
ogni istanza di alta qualità che siamo
effettivamente provando qui se lo è
contenuti ad alta priorità più alta priorità
il contenuto ha solo una qualità inferiore
rendition questo è un affare strano
strano, ma in realtà è super veloce per
noi per trascrivere quelli di qualità inferiore
su lì in un solo caso così noi
ne giri solo uno per gestirlo quindi non c’è
due casi sono di alta qualità
priorità che stiamo iniziando in modo specifico
nuovo Transpo
per gestire quelle situazioni se è un
né alta priorità né alta qualità
vogliamo verificare il rapporto tra i posti di lavoro in
il sistema – quanti trasportatori abbiamo
ha funzionato e se quel rapporto va bene noi
lasciarlo altrimenti se il rapporto è troppo
in alto creeremo una nuova istanza così
che possiamo gestirlo se non ci sono
transcoders in esecuzione quindi vogliamo girare
uno su per garantire che la pipeline è
muovendosi così non dovrebbe mai esserci un tempo
quando c’è un contenuto di coda senza a
transcodificato eseguendo una cosa che dovrei
anche menzionare qui è che noi otteniamo
diversi numeri di consegne
producendo da ogni singolo video
che entra così il motivo per cui potremmo
hanno solo due interpretazioni provenienti da a
file particolare è che potrebbe provenire da a
fonte diversa
quindi vedremo che possiamo prendere in alto
consegne di qualità da qualcosa e
per alta qualità o aggiunta inferiore
consegne di qualità da una diversa
cosa e punto quelli insieme e
quelli sono i sei che in realtà finiranno
up up live on I view in modo da adattarsi
il numero di transcodificatori che abbiamo
eseguirlo è una linea di codice il
l’orchestratore decide quante istanze
è il numero ideale da avere e lo sarà
imposta la capacità sul gruppo e su AWS
processi che richiedono e avremo
le nostre nuove istanze iniziano praticamente
immediatamente, quindi è molto, è molto
pressione un po ‘più preferibile per noi
per fare questo, invece di aspettare per auto
metriche di ridimensionamento per dare il via al prossimo
la domanda è quale dimensione dell’istanza di ec2 facciamo
in realtà vuole transcodifica è piuttosto CPU
pesante e così anche noi vogliamo pensare
costo contro velocità di questi così abbiamo voluto
guardare la serie c4 di istanze
da AWS che ha il miglior prezzo per
calcolare il rapporto di potenza in loro e questo è
un grafico dell’analisi che abbiamo fatto
mostra la quantità di tempo da trasferire a a
pezzo di contenuto di un’ora contro come
molte di quelle istanze
stiamo per lanciare e puoi vederlo
relazione inversa che conosci tra
costo e velocità volevamo trovare un
tipo di istanza che stava per soddisfare il nostro
requisiti migliori la maggior parte di
il nostro contenuto non è pressioni temporali se lo è
prende un po ‘di più per transcodificare esso
è di nuovo okay , questo è gentile
di un bilanciamento di cosa abbiamo bisogno per il
maggioranza di tutto contro come possiamo
produrre cose che faranno il nostro
flusso di contenuti ad alta priorità elevata
che ti ricorderò che lo siamo
finanziato pubblicamente per l’efficienza dei costi
in realtà davvero importante, quindi in realtà
ho deciso di andare con la C per extra-large
poiché la maggior parte del nostro contenuto non lo è
Velocità guidato che volevamo davvero
salvare salvare la differenza il prossimo è a
taglia fino al doppio del costo l’ultimo
la domanda è quando decidi di farlo
diminuisce la capacità, quindi il ridimensionamento è
piuttosto facile se ottieni un sacco di contenuti
e tu non hai capacità che puoi aggiungere
più istanze ma richiede ridimensionamento
sapere quando le istanze sono occupate
questo sai che non vuoi fermarti
transcodificare che è in corso così al
tempo abbiamo costruito questo se si diminuisce il
numero di istanze Amazon sarebbe solo
scegli i più vecchi e uccidili così
per cominciare dovevamo effettivamente aspettare
fino a quando l’ intera pipeline era pulita
prima che potessimo chiudere tutto e
se pensi che suona davvero
inefficiente è così è qui
esempio di ciò in azione proprio questo è
il numero di transcodifica è in esecuzione in a
finestra di quattro ore in modo da poter vedere abbastanza a
molte attività di ridimensionamento su e giù qui
ma puoi vedere l’inefficienza di
aspettando che tutti questi contenuti siano stati completati
prima abbiamo spento tutto così
puoi vedere queste scogliere e te
può anche vedere l’ effetto di noi lacrimare
giù le cose immediatamente ci sono tempo
quindi abbiamo trasformato tutto solo in
avviarlo letteralmente a due minuti
più tardi e idealmente vogliamo davvero solo
abbattere
il nostro era di ottenere il massimo dal nostro
istanze questa è un’altra visione di quelli
stesse istanze di transcodifica che noi
creato in precedenza questo è un grafico di
istanza di vita in quella quattro ore
finestra quindi questo non è solo ciò che è
attualmente in esecuzione ma questo è questo
tutto ciò che era lì così è
fortemente distorto a istanze di breve durata
questo è che è abbastanza inefficiente voi
sappiamo che stiamo pagando per un’ora intera di
calcolare il tempo ma stiamo usando l’a
frazione di ciò che è lì in modo che quelli in
blu sono quelli che usano più di 30
minuti di un’ora e tutto il resto
è sottoutilizzato questo è questo è un
peggio della media , tutto bene io sono
tipo di esposizione a noi come un estremo
esempio dipende molto da quando
il contenuto viene inserito nella pipeline quindi a
produrrà mangimi regolari e costanti
macchine ben utilizzate ma un’enorme discarica
del contenuto in là sta per girare
un gruppo intero subito e poi chiuso
le cose vanno giù così io sono il ridimensionamento automatico
mettere in pausa il contenuto e suona
come abbiamo lasciato le cose in un modo davvero strano
state qui, ma guarderemo i costi
e questo spiegherà perché ci siamo fermati
quindi adesso abbiamo un minimo
approccio e questo è basato su
profili e ci dice più o meno come
molto tempo ci vuole per transcodificare a
pezzo di contenuto o se è a
pezzo di contenuto ad alta priorità e noi
reagire in base a ciò quindi è un’area di
il sistema in cui tutto ciò che facciamo sta andando
a tutto ciò che modifichiamo o cambiamo
andando ad avere un impatto enorme sui costi così
ora stiamo andando a vedere quanto
costi per eseguire effettivamente questo un comune
la domanda che mi viene fatta è perché lo farebbe
costruisci il tuo sistema quando ci sono
alcuni transcodificatori commerciali disponibili
diamo un’occhiata ad alcuni, quindi se si sta andando
utilizzare una transcodifica di servizio completo
fornitore di profili che otterrai
un bel front-end pulito che otterrai
alcune cose sarete in grado di chiamarli
con cose che vanno male, avrai
tutto transcodificato il più rapidamente
possibile in modo da inviare i lavori per intero
il tutto è orientato al dare
a te non appena lo hai lasciato cadere
in ciò che sappiamo per la maggior parte dei nostri
contenuto in realtà non ne abbiamo davvero bisogno
APPENA POSSIBILE, quindi abbiamo iniziato con questo modello
dove stiamo producendo tutto al più presto
ma abbiamo la capacità di non farlo
transcodificare tutto immediatamente rapidamente
quindi non abbiamo necessariamente bisogno di pagare
un servizio che ci darà
tutto il più rapidamente possibile
è come un bel po ‘ di soldi a
numero di figura a sei cifre che non lo faccio
nemmeno sapere cosa fosse ma per transcodificare
il volume di contenuti che abbiamo prodotto
all’ABC c’era un gran numero che c’è
anche alcuni tipi fai-da-te
opzioni di transcodifica disponibili
come un transcoder elastico da AWS e così via
c’è un servizio dove puoi
invia i file che devi fare un po ‘
configurazione devi ancora scrivere a
un po ‘di codice per farlo funzionare davvero
probabilmente verrai a risolvere i problemi se
stanno andando male ed è ancora un po ‘
non incontra alcuni dei nostri strani
requisiti quindi questa barra nera al
top qui con ritaglio asimmetrico è
in realtà non è un super comune
requisito di voler ritagliare un video in
un modo asimmetrico e quando eravamo
costruire questo non era in realtà
supportato da molti transcodificatori quindi
questa era una ragione per cui non potevamo fare
questo abbiamo anche il nostro formato di didascalie
che è leggermente oscuro di nuovo è un
Quark di ABC è che è dentro a cui è
il formato chiamato Opie 47 e non lo è
davvero usato da molte cose diverse
quindi in realtà non è supportato da molto
di posti così ancora se volessimo provare
ed espandi il nostro sistema per fare più cose
non potremmo usare alcuni di questi
sistemi roll-your-own o fai-da-te per farlo
attraverso il transcoder elastico è circa 45
K
dalla metropolitana quanto costa per un intero
anno di contenuto di iview ricorda che abbiamo
risolto il problema del pagamento per ASCAP
contenuto in un modo economicamente efficiente e noi
in grado di gestire questi requisiti dispari come
ritaglio asimmetrico e abbiamo il
capacità di essere in grado di gestire cose come
didascalie in futuro quindi per Metro in
Il nostro intero anno 2016 costa 11 punti
2 K e questo è ancora in parte perché noi
incliniamo ad alcune rendimenti di fascia bassa che siamo
un’emittente pubblica siamo economici ma dentro
2017 sai dove vengono pubblicate le cose
un sacco di interpretazioni di alta qualità
e questo significa che i nostri costi stanno andando
essere più alto ma in realtà lo abbiamo
pagato per quello in cui abbiamo già investito
essere in grado di scalare per questo costruendo
questo nuovo sistema quindi ecco un giorno di esempio
come esempio per il nostro sistema otteniamo a
varietà di diversi modelli di utilizzo che sono
sto solo per mostrarti una coppia
una vista delle rendition completate all’ora
sono 24 ore e quindi puoi vedere la maggior parte
i lavori fatti durante il giorno qui ma
abbiamo ancora un sacco di transcodifica
correndo più tardi al nono
quindi ci sono novità ci sono spettacoli come un QA
e questo particolare giorno costa $ 42 e 86
centesimi e il crollo era quello
Il 90% del nostro costo è legato alla facile
database è il 6% di archiviazione del file di archiviazione è
4% e perché stai pagando per sq
messaggi di milioni di persone che conosci
conosci il registro su quella scala che farà
mostrarti la variegata natura della nostra produzione
questo è letteralmente il giorno dopo questo è un
mucchio di contenuti che ha finito per essere
programmato alle 3:00 di mattina da alcuni
persona o sistema e quindi è semplicemente giusto
illustra il non sappiamo quando
le cose si mettono in noi non possiamo gestire le cose
in particolari orari prestabiliti e così via
la flessibilità per la nostra transcodifica è
in realtà
scala in base al contenuto in volo è
Super benefico $ 25, quindi ho detto che tu
sapere che questi costi sono in realtà enormi
affare per noi
l’ ABC è un’emittente pubblica che amiamo
che amiamo il fatto che otteniamo il
flessibilità che vogliamo ma possiamo
ancora fare questo in un modo economicamente efficiente
modo e siamo arrivati al punto
dove i costi sono così bassi che noi
non potrebbe giustificare spendere più dev
sforzo su di esso e quindi è per questo che abbiamo
ha lasciato il nostro algoritmo di transcodifica come esso
è esattamente così com’è
così tratteniamo in efficienza lo è
ancora facendo il lavoro di cui abbiamo bisogno in a
modo davvero conveniente in modo da avere solo
ha detto che non possiamo giustificare le ottimizzazioni
è super divertente teorizzare su cosa
puoi farlo davvero, lo farò a
coppia rapidamente così una cosa ovvia noi
può fare è in realtà introdurre una priorità
fare la coda qui, oltre al nostro
coda regolare e la nostra priorità ti fa code
potrebbe transcodificare su un molto più grande
istanza che viene attivata immediatamente
e il contenuto regolare che non lo fa
bisogno di essere transcodificato immediatamente possibile
in realtà basta aspettare che ci sia
abbastanza da produrre sì per produrne di più
trasferimento costante e transcodifica completa così
che possiamo evitare questo grafico dove abbiamo
ha ottenuto tutte queste istanze sottoutilizzate
un’altra cosa che possiamo fare è in realtà
transcodificare in segmenti in modo che possiamo dividere
il file sorgente in quei blocchi e
allora possiamo usare ffmpeg per aiutare veramente
noi lo facciamo e questo significa che il nostro tempo
trascrivere per un particolare file è
andando ad essere costante, non importa
se ci dai un video di cinque minuti o un
documentario di due ore lo tiriamo fuori
da qualche parte e inviarlo possiamo farlo
in un tempo costante quindi questo era un numero primo
candidato per qualcosa come lambda
non esisteva nella regione di Sydney al
appuntamento lo stavamo costruendo noi
in realtà ha fatto un’analisi dei costi per voi sapere
spedire tutto verso gli Stati Uniti
trasferito lì in lambda e vieni
indietro ma abbiamo finito per costruirlo in a
quindi l’ultima cosa che possiamo fare è
in realtà rimuovere la nostra fiducia
su profili hard-coded quindi possiamo usare FF
prova che sappiamo che usiamo i profili al
momento sorta di hard-coded non è grande
invece dovremmo esaminare ogni file come
entra e in effetti vede il
attributi sul file usando la sonda FF
e così possiamo vedere qui che abbiamo
informazioni sulla risoluzione che possiamo
sappiamo che non è una dimensione standard
quindi sappiamo che in realtà dobbiamo ritagliarlo
possiamo vedere che ha 50 fotogrammi a
in secondo luogo, vogliamo un output a 25
incornicia un secondo così sappiamo che dobbiamo
eseguire un filtro di unione verso il basso per risolverlo
e qui se otteniamo un flusso audio
flusso che è il nostro flusso di didascalia questo
stream sconosciuto qui, quindi ffmpeg no
riconoscilo immediatamente ma se vediamo
che sappiamo che le didascalie sono e noi possiamo
possiamo effettivamente estrarli come parte di
il nostro processo così giusto per concludere bene
transcodifica è una parte molto importante
di preparare i contenuti per lo streaming
servizi come la vista dell’occhio così il nostro nuovo sistema
è stato progettato specificamente per essere veloce
ma economicamente efficiente abbiamo piccolo
servizi che abbiamo finito per costruire
nodo e in oro e usiamo ffmpeg a
gestire la nostra trascrizione nel lavoro e noi
fare affidamento sui servizi AWS per resilienza e
scala così in termini di ridimensionamento sai come noi
approfittare di diverse tecniche
qui in modo che possiamo soddisfare i mutevoli livelli
della domanda ma risparmiamo sui costi quando siamo
in realtà non fare nulla con quelli
istanze e puntiamo davvero a fornire
tutto ciò in un modo molto ragionevole
lasso di tempo e con un costo ragionevole quindi io
spero davvero che tu abbia apprezzato questa panoramica
di transcodifica e di come la nostra trascrizione
sistema funziona grazie mille per il tuo
volta ho davvero vi incoraggio a piacere
valutare o porre domande sull’app e
Sarò in grado di rispondere loro nel
Arrestato sezione Dibble prossimo Grazie
tu
Please follow and like us: