Avviso di fine del supporto: il 13 novembre 2025, il supporto per Amazon Elastic Transcoder AWS verrà interrotto. Dopo il 13 novembre 2025, non potrai più accedere alla console Elastic Transcoder o alle risorse Elastic Transcoder.
Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Codice di esempio SDK AWS
Questa sezione contiene il codice di esempio che mostra come utilizzare i kit SDK AWS per Java, Ruby, PHP e Python per le seguenti operazioni:
Crea una playlist HLS in Amazon Elastic Transcoder
Crea un lavoro in Elastic Transcoder
Sondaggio di una coda Amazon Simple Queue Service (Amazon SQS)
Analizza una notifica da Amazon Simple Notification Service (Amazon SNS)
Gestisci la notifica da Amazon SNS
Queste operazioni rappresentano le migliori pratiche di Elastic Transcoder. Il polling di una coda Amazon SQS consente un polling lungo, con una scalabilità più efficiente rispetto ai polling normali, e l'impostazione delle notifiche Amazon SNS consente a Elastic Transcoder di recapitare i messaggi alla coda Amazon SQS.
Il codice di esempio mostra come transcodificare per HLS (HTTP Live Streaming) e come gestire la notifica Amazon SNS una volta rimossa dalla coda Amazon SQS.
Se si utilizza un linguaggio per il quale esiste un kit SDK, consigliamo di adottare il kit SDK invece di provare a utilizzare le API. Gli SDK semplificano l'autenticazione, si integrano senza problemi nell'ambiente di sviluppo e forniscono rapido accesso ai comandi correlati.
Argomenti
Background per il codice di esempio di SDK AWS
HTTP Live Streaming (HLS)
Utilizzate le uscite HTTP Live Streaming (HLS) per fornire contenuti con bit rate adattivo ai lettori compatibili con HLS. Esempi di dispositivi compatibili con HLS sono dispositivi Android 4+, dispositivi iOS, lettori multimediali desktop come QuickTime o VLC e lettori browser come jwplayer. La velocità di trasmissione adattiva consente di regolare automaticamente la qualità dei contenuti distribuiti in base alla qualità della connessione client.
Notifiche
Se si esegue un sondaggio sull'ReadJob
API di Elastic Transcoder per monitorare lo stato del lavoro, è necessario richiamareReadJob
continuamente ogni lavoro inviato. Questa metodologia non può essere scalata all'aumentare del numero di processi di transcodifica. Per risolvere questo problema, Elastic Transcoder può pubblicare notifiche su Amazon SNS che fornisce un meccanismo basato sugli eventi per tracciare lo stato del lavoro.
Ogni notifica Elastic Transcoder viene inviata come oggetto JSON nelMessage
campo. Poiché le notifiche vengono esse stesse inviate in formato JSON, è necessario sfuggire alla notifica Elastic Transcoder nella stringa del messaggio. Per informazioni sul formato e sul contenuto delle notifiche di Elastic Transcoder, consulta la sezione Notifiche.
Quando scrivi codice personalizzato per gestire le notifiche sullo stato del lavoro, segui queste best practice:
I gestori devono essere idempotenti. È possibile che una notifica venga recapitata più di una volta.
I gestori devono supportare le notifiche fuori servizio. È possibile che le notifiche vengano consegnate fuori servizio.
I gestori devono essere in grado di elaborare una notifica per qualsiasi lavoro. Non c'è modo di garantire che una notifica per un determinato lavoro venga consegnata a un determinato lavoratore.
I gestori dovrebbero essere operazioni brevi. Tutti i messaggi devono essere gestiti ed eliminati prima del timeout di visibilità. Se il timeout di visibilità è di 15 secondi e verranno restituiti un massimo di 5 messaggi da Amazon SQS, ogni messaggio deve essere gestito ed eliminato dalla coda in meno di 3 secondi. Se la gestione richiede più tempo, i messaggi non elaborati scadono e vengono consegnati a un altro lavoratore.
Per Java, Python e Ruby, ti consigliamo di utilizzare le notifiche interrogando una coda Amazon SQS sottoscritta al tuo argomento di notifica. Poiché Amazon SQS utilizza un meccanismo di poll a lungo termine, il polling della coda Amazon SQS offre un metodo scalabile per utilizzare le notifiche di lavoro. Amazon SQS semplifica inoltre la disponibilità e la scalabilità in caso di guasto degli host o durante i periodi di carico elevato e in genere non richiede alcuna configurazione ACL speciale.
Per PHP in esecuzione in Apache, ti consigliamo di iscrivere il tuo endpoint direttamente all'argomento Amazon SNS. Ciò richiede che l'endpoint sia disponibile al pubblico poiché Amazon SNS dovrà essere in grado di inviare notifiche direttamente a te.
Configurazione dell'ambiente
Per eseguire il codice di esempio, è necessario disporre di un ambiente AWS configurato. Questa sezione illustra il processo di configurazione e mostra come creare le risorse AWS di cui Elastic Transcoder ha bisogno per funzionare in modo ottimale.
Argomenti
Configurazione dell'ambiente Java
Questa sezione guida nella configurazione dell'ambiente Java.
Argomenti
- Configurazione del kit SDK AWS per Java
- Creazione di bucket di input e output Amazon S3
- Creazione di un argomento Amazon SNS per ricevere notifiche di stato del lavoro
- Creazione di una coda Amazon SQS per il sondaggio delle notifiche dello stato del lavoro
- Iscrizione della coda Amazon SQS all'argomento Amazon SNS
- Creazione di una pipeline Elastic Transcoder
- Creazione di una CloudFront distribuzione Amazon per distribuire contenuti in modo scalabile
- Modifica della policy del bucket Amazon S3
Il codice di esempio prevede due presupposti fondamentali:
Gli esempi sono scritti in modo da funzionare con Java versione 1.6 o superiore.
Gli esempi sono eseguiti con Eclipse e il Toolkit for Eclipse di AWS.
Configurazione del kit SDK AWS per Java
Gli esempi presumono che l'utente utilizzi il Toolkit for Eclipse di AWS. Sono necessari sia il kit SDK AWS per Java
Jackson Core
Jackson Databind
Jackson Annotations
Il processore JSON Jackson gestisce le notifiche di stato di un processo.
In alternativa, se si utilizza Maven per gestire le dipendenze, è possibile aggiungere i seguenti snippet al file pom.xml
:
Proprietà della versione:
<jackson-2-version>2.2.3</jackson-2-version>
Dipendenze:
<dependency> <groupId>com.amazonaws</groupId> <artifactId>aws-java-sdk</artifactId> <version>LATEST</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-core</artifactId> <version>${jackson-2-version}</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-annotations</artifactId> <version>${jackson-2-version}</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>${jackson-2-version}</version> </dependency>
Per ulteriori informazioni, consultare la pagina relativa alla documentazione sul kit SDK AWS per Java
Creazione di bucket di input e output Amazon S3
Aprire la console Amazon S3
. Nella console, fai clic su Crea bucket.
Nel campo Nome bucket, inserisci il nome desiderato per il bucket di input.
Sempre nella console Amazon S3, fai nuovamente clic su Create Bucet (Crea bucket).
Nel campo Nome bucket, inserisci il nome desiderato per il bucket di output.
Creazione di un argomento Amazon SNS per ricevere notifiche di stato del lavoro
Aprire la console Amazon SNS
. Nella console, fai clic su Crea e aggiungi e seleziona Crea nuovo argomento.
Nel campo Nome argomento, inserisci
ets-sample-topic
e fai clic su Crea argomento.Registra l'ARN di
ets-sample-topic
.
Creazione di una coda Amazon SQS per il sondaggio delle notifiche dello stato del lavoro
Apri la console Amazon SQS
. Nella console, fai clic su Crea nuova coda.
Nel campo Nome coda, inserisci
ets-sample-queue
e fai clic su Crea coda.Registra l'URL coda di Amazon SQS.
Iscrizione della coda Amazon SQS all'argomento Amazon SNS
Apri la console Amazon SQS
. Nella console, seleziona ets-sample-queuedall'elenco delle code.
In Azioni di coda, seleziona Abbonati alla coda all'argomento Amazon SNS.
In Scegli un argomento, seleziona ets-sample-topice fai clic su Iscriviti.
Dovresti vedere una conferma che la tua coda è stata sottoscritta con successo al tuo argomento.
Creazione di una pipeline Elastic Transcoder
Apri la console Amazon Elastic Transcoder
. Nella console, fai clic su Crea nuova pipeline.
Nel campo Nome tubazione, immettere
ets-sample-pipeline
.Nel campo Bucket di input, inserisci il nome del tuo bucket di input.
Lascia il ruolo IAM come
Console Default Role
.In Configura il bucket Amazon S3 per file e playlist transcodificati, inserisci il nome del bucket di output.
Sempre in Configura il bucket Amazon S3 per file e playlist transcodificati, seleziona la classe di archiviazione standard.
Espandi utilizzare il menu a discesa Notifiche.
Per tutti e quattro i tipi di eventi, seleziona Usa un argomento SNS esistente e, in Seleziona un argomento, seleziona
ets-sample-topic
.Fare clic su Create Pipeline (Crea pipeline).
Registra l'ID della pipeline di Elastic Transcoder.
Creazione di una CloudFront distribuzione Amazon per distribuire contenuti in modo scalabile
Apri la CloudFront console Amazon
. Nel pannello di navigazione della console, espandi Contenuti privati e quindi fai clic su Origin Access Identity.
Fai clic su Crea identità Origin Access.
Fai clic su Create (Crea).
Registra l'ID utente canonico di Amazon S3 generato quando crei l'identità di accesso di origine.
Nel riquadro di navigazione, fai clic su Distribuzione.
Fai clic su Create Distribution (Crea distribuzione).
Seleziona Web, quindi fai clic su Continua.
In Impostazioni Origin, inserisci il tuo bucket di output Amazon S3 come nome di dominio Origin.
Nel campo ID di origine, inserisci
S3-transcoder-sample-output
.Per Limita l'accesso al bucket, seleziona Sì.
Fai clic su Crea distribuzione e registra il nome di dominio della distribuzione.
Modifica della policy del bucket Amazon S3
Aprire la console Amazon S3
. Accanto al bucket di output, fai clic sull'icona della lente di ingrandimento per visualizzare le proprietà del bucket.
Espandi le autorizzazioni e fai clic su Aggiungi politica del bucket.
Inserisci la seguente dichiarazione politica, sostituendo CloudFront-oai-s3-canonical-user-id con
your recorded Amazon S3 canonical user ID
e s3-output-bucket-name conthe name of your output bucket
.Fare clic su Save (Salva).
{ "Version":"2012-10-17", "Id":"PolicyForCloudFrontPrivateContent", "Statement":[{ "Sid":" Granting CloudFront OAI access to private content", "Effect":"Allow", "Principal":{ "CanonicalUser":"<CloudFront-oai-s3-canonical-user-id>" }, "Action":"s3:GetObject", "Resource":"arn:aws:s3:::<s3-output-bucket-name>/*" }] }
Passare a Esempi Java.
Configurazione dell'ambiente Ruby
Questa sezione guida nella configurazione dell'ambiente Ruby.
Argomenti
- Configurazione del kit SDK AWS per Ruby
- Creazione di bucket di input e output Amazon S3
- Creazione di un argomento Amazon SNS per ricevere notifiche di stato del lavoro
- Creazione di una coda Amazon SQS per il sondaggio delle notifiche dello stato del lavoro
- Iscrizione della coda Amazon SQS all'argomento Amazon SNS
- Creazione di una pipeline Elastic Transcoder
- Creazione di una CloudFront distribuzione Amazon per distribuire contenuti in modo scalabile
- Modifica della policy del bucket Amazon S3
Il codice di esempio prevede un presupposto fondamentale:
Gli esempi sono scritti per essere compatibili con Ruby versione 1.9.
Configurazione del kit SDK AWS per Ruby
Il kit SDK AWS per Ruby è disponibile qui
gem install aws-sdk
Per ulteriori informazioni, consultare la pagina relativa alla documentazione sul kit SDK AWS per Ruby
Creazione di bucket di input e output Amazon S3
Aprire la console Amazon S3
. Nella console, fai clic su Crea bucket.
Nel campo Nome bucket, inserisci il nome desiderato per il bucket di input.
Sempre nella console Amazon S3, fai nuovamente clic su Create Bucet (Crea bucket).
Nel campo Nome bucket, inserisci il nome desiderato per il bucket di output.
Creazione di un argomento Amazon SNS per ricevere notifiche di stato del lavoro
Aprire la console Amazon SNS
. Nella console, fai clic su Crea e aggiungi e seleziona Crea nuovo argomento.
Nel campo Nome argomento, inserisci
ets-sample-topic
e fai clic su Crea argomento.Registra l'ARN di
ets-sample-topic
.
Creazione di una coda Amazon SQS per il sondaggio delle notifiche dello stato del lavoro
Apri la console Amazon SQS
. Nella console, fai clic su Crea nuova coda.
Nel campo Nome coda, inserisci
ets-sample-queue
e fai clic su Crea coda.Registra l'URL coda di Amazon SQS.
Iscrizione della coda Amazon SQS all'argomento Amazon SNS
Apri la console Amazon SQS
. Nella console, seleziona ets-sample-queuedall'elenco delle code.
In Azioni di coda, seleziona Abbonati alla coda all'argomento Amazon SNS.
In Scegli un argomento, seleziona ets-sample-topice fai clic su Iscriviti.
Dovresti vedere una conferma che la tua coda è stata sottoscritta con successo al tuo argomento.
Creazione di una pipeline Elastic Transcoder
Apri la console Amazon Elastic Transcoder
. Nella console, fai clic su Crea nuova pipeline.
Nel campo Nome tubazione, immettere
ets-sample-pipeline
.Nel campo Bucket di input, inserisci il nome del tuo bucket di input.
Lascia il ruolo IAM come
Console Default Role
.In Configura il bucket Amazon S3 per file e playlist transcodificati, inserisci il nome del bucket di output.
Sempre in Configura il bucket Amazon S3 per file e playlist transcodificati, seleziona la classe di archiviazione standard.
Espandi utilizzare il menu a discesa Notifiche.
Per tutti e quattro i tipi di eventi, seleziona Usa un argomento SNS esistente e, in Seleziona un argomento, seleziona
ets-sample-topic
.Fare clic su Create Pipeline (Crea pipeline).
Registra l'ID della pipeline di Elastic Transcoder.
Creazione di una CloudFront distribuzione Amazon per distribuire contenuti in modo scalabile
Apri la CloudFront console Amazon
. Nel pannello di navigazione della console, espandi Contenuti privati e quindi fai clic su Origin Access Identity.
Fai clic su Crea identità Origin Access.
Fai clic su Create (Crea).
Registra l'ID utente canonico di Amazon S3 generato quando crei l'identità di accesso di origine.
Nel riquadro di navigazione, fai clic su Distribuzione.
Fai clic su Create Distribution (Crea distribuzione).
Seleziona Web, quindi fai clic su Continua.
In Impostazioni Origin, inserisci il tuo bucket di output Amazon S3 come nome di dominio Origin.
Nel campo ID di origine, inserisci
S3-transcoder-sample-output
.Per Limita l'accesso al bucket, seleziona Sì.
Fai clic su Crea distribuzione e registra il nome di dominio della distribuzione.
Modifica della policy del bucket Amazon S3
Aprire la console Amazon S3
. Accanto al bucket di output, fai clic sull'icona della lente di ingrandimento per visualizzare le proprietà del bucket.
Espandi le autorizzazioni e fai clic su Aggiungi politica del bucket.
Inserisci la seguente dichiarazione politica, sostituendo CloudFront-oai-s3-canonical-user-id con
your recorded Amazon S3 canonical user ID
e s3-output-bucket-name conthe name of your output bucket
.Fare clic su Save (Salva).
{ "Version":"2012-10-17", "Id":"PolicyForCloudFrontPrivateContent", "Statement":[{ "Sid":" Granting CloudFront OAI access to private content", "Effect":"Allow", "Principal":{ "CanonicalUser":"<CloudFront-oai-s3-canonical-user-id>" }, "Action":"s3:GetObject", "Resource":"arn:aws:s3:::<s3-output-bucket-name>/*" }] }
Passare a Esempi di Ruby.
Configurazione dell'ambiente PHP
Questa sezione guida nella configurazione dell'ambiente PHP.
Argomenti
- Installazione del codice di esempio
- Configurazione del kit SDK AWS per PHP
- Creazione di bucket di input e output Amazon S3
- Creazione di un argomento Amazon SNS per ricevere notifiche di stato del lavoro
- Iscrizione del server ad Amazon SNS
- Creazione di una pipeline Elastic Transcoder
- Creazione di una CloudFront distribuzione Amazon per distribuire contenuti in modo scalabile
- Modifica della policy del bucket Amazon S3
Il codice di esempio prevede tre presupposti fondamentali:
Gli esempi di PHP sono eseguiti all'interno di un server Apache.
Il server Apache deve essere in grado di ricevere input da Internet per ricevere le notifiche Amazon SNS.
Gli esempi sono scritti per funzionare con PHP versione 5.4 o superiore.
Installazione del codice di esempio
Per utilizzare il codice di esempio PHP, prima occorre scaricarlo e installarlo.
Scaricare il codice di esempio:
Decomprimere il codice di esempio.
Inserisci il codice sotto quello del tuo server Apache DocumentRoot.
Rimuovere il file .zip del codice di esempio scaricato.
Aggiornare il percorso per l'installazione del kit SDK AWS.
Nota
Nei file HlsJobCreationSample.php
e JobStatusNotificationsSample.php
, aggiornare il percorso per il file autoload.php
. Se si utilizza l'installazione phar, è possibile usare il percorso per il file aws.phar
scaricato, che include tutte le dipendenze necessarie.
Configurazione del kit SDK AWS per PHP
Il kit SDK AWS per PHP si trova qui
Per ulteriori informazioni, consulta la documentazione relativa al kit SDK AWS per PHP
Creazione di bucket di input e output Amazon S3
Aprire la console Amazon S3
. Nella console, fai clic su Crea bucket.
Nel campo Nome bucket, inserisci il nome desiderato per il bucket di input.
Sempre nella console Amazon S3, fai nuovamente clic su Create Bucet (Crea bucket).
Nel campo Nome bucket, inserisci il nome desiderato per il bucket di output.
Creazione di un argomento Amazon SNS per ricevere notifiche di stato del lavoro
Aprire la console Amazon SNS
. Nella console, fai clic su Crea e aggiungi e seleziona Crea nuovo argomento.
Nel campo Nome argomento, inserisci
ets-sample-topic
e fai clic su Crea argomento.Registra l'ARN di
ets-sample-topic
.
Iscrizione del server ad Amazon SNS
Verificare che il codice di esempio PHP sia installato.
Aprire la console Amazon SNS
. Nella sezione AdditionalActions, fai clic su Crea abbonamento.
Selezionare HTTP o HTTPS in base alla configurazione del server.
In Endpoint (Endpoint), immettere l'endpoint del server. Il percorso dell'endpoint deve puntare a
JobStatusNotificationsSampleNotificationHandler.php
.Fai clic su Subscribe (Esegui sottoscrizione). L'operazione invia una richiesta di sottoscrizione all'endpoint PHP.
Il codice di esempio PHP gestisce automaticamente la richiesta di sottoscrizione e conferma una sottoscrizione. La richiesta e la risposta di sottoscrizione sono scritte sul file /tmp/subscribe_requests.txt
.
Creazione di una pipeline Elastic Transcoder
Apri la console Amazon Elastic Transcoder
. Nella console, fai clic su Crea nuova pipeline.
Nel campo Nome tubazione, immettere
ets-sample-pipeline
.Nel campo Bucket di input, inserisci il nome del tuo bucket di input.
Lascia il ruolo IAM come
Console Default Role
.In Configura il bucket Amazon S3 per file e playlist transcodificati, inserisci il nome del bucket di output.
Sempre in Configura il bucket Amazon S3 per file e playlist transcodificati, seleziona la classe di archiviazione standard.
Espandi utilizzare il menu a discesa Notifiche.
Per tutti e quattro i tipi di eventi, seleziona Usa un argomento SNS esistente e, in Seleziona un argomento, seleziona
ets-sample-topic
.Fare clic su Create Pipeline (Crea pipeline).
Registra l'ID della pipeline di Elastic Transcoder.
Creazione di una CloudFront distribuzione Amazon per distribuire contenuti in modo scalabile
Apri la CloudFront console Amazon
. Nel pannello di navigazione della console, espandi Contenuti privati e quindi fai clic su Origin Access Identity.
Fai clic su Crea identità Origin Access.
Fai clic su Create (Crea).
Registra l'ID utente canonico di Amazon S3 generato quando crei l'identità di accesso di origine.
Nel riquadro di navigazione, fai clic su Distribuzione.
Fai clic su Create Distribution (Crea distribuzione).
Seleziona Web, quindi fai clic su Continua.
In Impostazioni Origin, inserisci il tuo bucket di output Amazon S3 come nome di dominio Origin.
Nel campo ID di origine, inserisci
S3-transcoder-sample-output
.Per Limita l'accesso al bucket, seleziona Sì.
Fai clic su Crea distribuzione e registra il nome di dominio della distribuzione.
Modifica della policy del bucket Amazon S3
Aprire la console Amazon S3
. Accanto al bucket di output, fai clic sull'icona della lente di ingrandimento per visualizzare le proprietà del bucket.
Espandi le autorizzazioni e fai clic su Aggiungi politica del bucket.
Inserisci la seguente dichiarazione politica, sostituendo CloudFront-oai-s3-canonical-user-id con
your recorded Amazon S3 canonical user ID
e s3-output-bucket-name conthe name of your output bucket
.Fare clic su Save (Salva).
{ "Version":"2012-10-17", "Id":"PolicyForCloudFrontPrivateContent", "Statement":[{ "Sid":" Granting CloudFront OAI access to private content", "Effect":"Allow", "Principal":{ "CanonicalUser":"<CloudFront-oai-s3-canonical-user-id>" }, "Action":"s3:GetObject", "Resource":"arn:aws:s3:::<s3-output-bucket-name>/*" }] }
Passare a Esempi PHP.
Configurazione dell'ambiente Python
Questa sezione guida nella configurazione dell'ambiente Python.
Argomenti
- Configurazione del kit SDK AWS per Python
- Creazione di bucket di input e output Amazon S3
- Creazione di un argomento Amazon SNS per ricevere notifiche di stato del lavoro
- Creazione di una coda Amazon SQS per il sondaggio per le notifiche sullo stato del lavoro
- Iscrizione della coda Amazon SQS all'argomento Amazon SNS
- Creazione di una pipeline Elastic Transcoder
- Creazione di una CloudFront distribuzione Amazon per distribuire contenuti in modo scalabile
- Modifica della policy del bucket Amazon S3
Prevede un presupposto fondamentale:
Gli esempi sono scritti per essere compatibili con Python versione 2.7.
Configurazione del kit SDK AWS per Python
Il kit SDK AWS per Python si trova qui
pip-2.7 install boto
Per ulteriori informazioni, consultare la pagina relativa alla documentazione sul kit SDK AWS per Python
Creazione di bucket di input e output Amazon S3
Aprire la console Amazon S3
. Nella console, fai clic su Crea bucket.
Nel campo Nome bucket, inserisci il nome desiderato per il bucket di input.
Sempre nella console Amazon S3, fai nuovamente clic su Create Bucet (Crea bucket).
Nel campo Nome bucket, inserisci il nome desiderato per il bucket di output.
Creazione di un argomento Amazon SNS per ricevere notifiche di stato del lavoro
Aprire la console Amazon SNS
. Nella console, fai clic su Crea e aggiungi e seleziona Crea nuovo argomento.
Nel campo Nome argomento, inserisci
ets-sample-topic
e fai clic su Crea argomento.Registra l'ARN di
ets-sample-topic
.
Creazione di una coda Amazon SQS per il sondaggio per le notifiche sullo stato del lavoro
Apri la console Amazon SQS
. Nella console, fai clic su Crea nuova coda.
Nel campo Nome coda, inserisci
ets-sample-queue
e fai clic su Crea coda.Registra l'URL coda di Amazon SQS.
Iscrizione della coda Amazon SQS all'argomento Amazon SNS
Apri la console Amazon SQS
. Nella console, seleziona ets-sample-queuedall'elenco delle code.
In Azioni di coda, seleziona Abbonati alla coda all'argomento Amazon SNS.
In Scegli un argomento, seleziona ets-sample-topice fai clic su Iscriviti.
Dovresti vedere una conferma che la tua coda è stata sottoscritta con successo al tuo argomento.
Creazione di una pipeline Elastic Transcoder
Apri la console Amazon Elastic Transcoder
. Nella console, fai clic su Crea nuova pipeline.
Nel campo Nome tubazione, immettere
ets-sample-pipeline
.Nel campo Bucket di input, inserisci il nome del tuo bucket di input.
Lascia il ruolo IAM come
Console Default Role
.In Configura il bucket Amazon S3 per file e playlist transcodificati, inserisci il nome del bucket di output.
Sempre in Configura il bucket Amazon S3 per file e playlist transcodificati, seleziona la classe di archiviazione standard.
Espandi utilizzare il menu a discesa Notifiche.
Per tutti e quattro i tipi di eventi, seleziona Usa un argomento SNS esistente e, in Seleziona un argomento, seleziona
ets-sample-topic
.Fare clic su Create Pipeline (Crea pipeline).
Registra l'ID della pipeline di Elastic Transcoder.
Creazione di una CloudFront distribuzione Amazon per distribuire contenuti in modo scalabile
Apri la CloudFront console Amazon
. Nel pannello di navigazione della console, espandi Contenuti privati e quindi fai clic su Origin Access Identity.
Fai clic su Crea identità Origin Access.
Fai clic su Create (Crea).
Registra l'ID utente canonico di Amazon S3 generato quando crei l'identità di accesso di origine.
Nel riquadro di navigazione, fai clic su Distribuzione.
Fai clic su Create Distribution (Crea distribuzione).
Seleziona Web, quindi fai clic su Continua.
In Impostazioni Origin, inserisci il tuo bucket di output Amazon S3 come nome di dominio Origin.
Nel campo ID di origine, inserisci
S3-transcoder-sample-output
.Per Limita l'accesso al bucket, seleziona Sì.
Fai clic su Crea distribuzione e registra il nome di dominio della distribuzione.
Modifica della policy del bucket Amazon S3
Aprire la console Amazon S3
. Accanto al bucket di output, fai clic sull'icona della lente di ingrandimento per visualizzare le proprietà del bucket.
Espandi le autorizzazioni e fai clic su Aggiungi politica del bucket.
Inserisci la seguente dichiarazione politica, sostituendo CloudFront-oai-s3-canonical-user-id con
your recorded Amazon S3 canonical user ID
e s3-output-bucket-name conthe name of your output bucket
.Fare clic su Save (Salva).
{ "Version":"2012-10-17", "Id":"PolicyForCloudFrontPrivateContent", "Statement":[{ "Sid":" Granting CloudFront OAI access to private content", "Effect":"Allow", "Principal":{ "CanonicalUser":"<CloudFront-oai-s3-canonical-user-id>" }, "Action":"s3:GetObject", "Resource":"arn:aws:s3:::<s3-output-bucket-name>/*" }] }
Passare a Esempi Python.
Esempi Java
Tutti gli esempi Java prevedono due presupposti:
Gli esempi sono scritti in modo da funzionare con Java versione 1.6 o superiore.
Gli esempi sono eseguiti con Eclipse e il Toolkit for Eclipse di AWS.
Esempi HLS
Questo esempio mostra come creare un job HLS e un file di playlist HLS che può essere utilizzato per riprodurre un flusso di bit rate adattivo.
Download esempio HLS Java
Scaricare il codice di esempio qui.
Parti del codice di esempio
Il codice di esempio Java include:
La classe
HlsJobCreationSample
Processi
Per eseguire l'esempio, attenersi alla seguente procedura:
Configurare l'ambiente secondo le seguenti istruzioni: Configurazione dell'ambiente Java
Scaricare il codice di esempio.
In Eclipse, aprire il file
com/amazonaws/services/elastictranscoder/samples/HlsJobCreationSample.java
.Sostituire PIPELINE_ID e INPUT_KEY con i valori appropriati.
Eseguire gli esempi su Eclipse.
Esempi di notifica
Argomenti
Esempi di sintassi per le notifiche
{ "Type" : "Notification", "MessageId" : "341527b6-9081-5f3d-b933-6c8472c3be40", "TopicArn" : "arn:aws:sns:us-east-1:123456789012:ets-sample-topic", "Subject" : "Amazon Elastic Transcoder has scheduled job 1387847681009 -abcdef for transcoding.", "Message" : "{\n \"state\" : \"PROGRESSING\",\n \"version\" : \"2012-09-25\",\n \"jobId\" : \"1387847681009-abcdef\", \n \"pipelineId\" : \"1387847629327-fedcba\",\n \"input\" : {\n \"key\" : \"input/example/key.mp4\",\n \"frameRate\" : \"auto\",\n \"resolution\" : \"auto\",\n \"aspectRatio\" : \"auto\",\n \"interlaced\" : \"auto\",\n \"container\" : \"auto\"\n },\n \"outputKeyPrefix\" : \"elastic-transcoder-samples/\",\n \"outputs\" : [ {\n \"id\" : \"1\",\n \"presetId\" : \"1351620000001-000020\",\n \"key\" : \"output/example/key.mp4\",\n \"thumbnailPattern\" : \"\",\n \"rotate\" : \"auto\",\n \"status\" : \"Progressing\"\n } ]\n}", "Timestamp" : "2013-12-24T01:14:42.493Z", "SignatureVersion" : "1", "Signature" : "ElSqJW3ZksCPViYGTayI/p+LjdF2HB42iJlIJRJ+jWzWwygXdiJXvZXl94qhd/tLln1lxPqijjivb5RWu7n5yzdZwbod6lpLwyZ2TfWM6dZt57OzsG3GbdTxgqwVsztVSyWCYhcV8f+CrT3IQrfrU3Me/SRYVUqrSUXXsu4Ls7A2q9mosG7v0Sn+3Z1rAa9+Rf6QmkfAg05UX0sLyA+I2hFqTu5oAGDK4Cm6FHuIwV+oYJXNBbGWuS7tD6mRNwrYvPBlUvBLXx9m3CbqSXv5Yoj39vglv+1djtaLA3GpwX+B1hHx8QT373lgmmsmGDRWhSQretpOTWDYb81PV2K0bg==", "SigningCertURL" : "https://sns.us-east-1.amazonaws.com/SimpleNotificationService-e372f8ca30337fdb084e8ac449342c77.pem", "UnsubscribeURL" : "https://sns.us-east-1.amazonaws.com/?Action= Unsubscribe&SubscriptionArn=arn:aws:sns:us-east-1:123456789012:ets- sample-topic:b3ec47e5-e1f0-401f-a0a5-98c7fe405c2b" }
Download esempio di notifica Java
Scaricare il codice di esempio qui.
Parti del codice di esempio
Il codice di esempio Java include:
Classe
Notification
: per consumare le notifiche da Java, utilizziamo la libreria JSON Jackson per deserializzare le notifiche di stato dei processi in POJO. LaNotification
classe modella il messaggio che riceviamo dalla coda Amazon SQS.La classe
JobStatusNotification
: laJobStatusNotification
classe modella una notifica Elastic Transcoder.La classe
SqsQueueNotificationWorker
: laSqsQueueNotificationWorker
classe può essere avviata in un thread separato per interrogare Amazon SQS e gestire le notifiche sullo stato del lavoro. Questa classe riceve messaggi, chiama tutti gli handler registrati per ogni notifica ricevuta ed elimina il messaggio dalla coda.Interfaccia
JobStatusNotificationHandler
: l'interfacciaJobStatusNotificationHandler
può essere implementata per consentire la gestione personalizzata delle notifiche.Classe
JobStatusNotificationsSample
: la classeJobStatusNotificationsSample
crea un processo e ne attende il completamento. Quando il processo entra in uno stato di completamento, il worker della coda si arresta e l'applicazione esce.
Processi
Per eseguire l'esempio, attenersi alla seguente procedura:
Configurare l'ambiente secondo le seguenti istruzioni: Configurazione dell'ambiente Java.
Scaricare il codice di esempio.
Decomprimere il codice di esempio nella directory dei sorgenti del progetto JAVA.
Aprire il file
com/amazonaws/services/elastictranscoder/samples/JobStatusNotificationsSample.java
in Eclipse.Sostituire PIPELINE_ID, SQS_QUEUE_URL e INPUT_KEY con i valori appropriati.
Eseguire l'esempio su Eclipse.
Esempi di Ruby
Tutti gli esempi Ruby prevedono un presupposto fondamentale:
Gli esempi sono scritti per essere compatibili con Ruby versione 1.9.
Esempi HLS
Questo esempio mostra come creare un job HLS e un file di playlist HLS che può essere utilizzato per riprodurre un flusso di bit rate adattivo.
Download esempio HLS Ruby
Scaricare il codice di esempio qui.
Parti del codice di esempio
Il codice di esempio Ruby include:
Il file
HlsJobCreationSample.rb
Processi
Per eseguire l'esempio, attenersi alla seguente procedura:
Configurare l'ambiente secondo le seguenti istruzioni: Configurazione dell'ambiente Ruby
Scaricare il codice di esempio.
Decomprimere il codice di esempio nella directory dei sorgenti del progetto Ruby.
Modificare il file
HlsJobCreationSample.rb
e sostituire pipeline_id e input_key con i valori appropriati.Da un terminal, passare alla directory in cui è stato decompresso il codice di esempio ed eseguire:
$ruby HlsJobCreationSample.rb
Esempi di notifica
Argomenti
Esempi di sintassi per le notifiche
{ "Type" : "Notification", "MessageId" : "341527b6-9081-5f3d-b933-6c8472c3be40", "TopicArn" : "arn:aws:sns:us-east-1:123456789012:ets-sample-topic", "Subject" : "Amazon Elastic Transcoder has scheduled job 1387847681009 -abcdef for transcoding.", "Message" : "{\n \"state\" : \"PROGRESSING\",\n \"version\" : \"2012-09-25\",\n \"jobId\" : \"1387847681009-abcdef\", \n \"pipelineId\" : \"1387847629327-fedcba\",\n \"input\" : {\n \"key\" : \"input/example/key.mp4\",\n \"frameRate\" : \"auto\",\n \"resolution\" : \"auto\",\n \"aspectRatio\" : \"auto\",\n \"interlaced\" : \"auto\",\n \"container\" : \"auto\"\n },\n \"outputKeyPrefix\" : \"elastic-transcoder-samples/\",\n \"outputs\" : [ {\n \"id\" : \"1\",\n \"presetId\" : \"1351620000001-000020\",\n \"key\" : \"output/example/key.mp4\",\n \"thumbnailPattern\" : \"\",\n \"rotate\" : \"auto\",\n \"status\" : \"Progressing\"\n } ]\n}", "Timestamp" : "2013-12-24T01:14:42.493Z", "SignatureVersion" : "1", "Signature" : "ElSqJW3ZksCPViYGTayI/p+LjdF2HB42iJlIJRJ+jWzWwygXdiJXvZXl94qhd/tLln1lxPqijjivb5RWu7n5yzdZwbod6lpLwyZ2TfWM6dZt57OzsG3GbdTxgqwVsztVSyWCYhcV8f+CrT3IQrfrU3Me/SRYVUqrSUXXsu4Ls7A2q9mosG7v0Sn+3Z1rAa9+Rf6QmkfAg05UX0sLyA+I2hFqTu5oAGDK4Cm6FHuIwV+oYJXNBbGWuS7tD6mRNwrYvPBlUvBLXx9m3CbqSXv5Yoj39vglv+1djtaLA3GpwX+B1hHx8QT373lgmmsmGDRWhSQretpOTWDYb81PV2K0bg==", "SigningCertURL" : "https://sns.us-east-1.amazonaws.com/SimpleNotificationService-e372f8ca30337fdb084e8ac449342c77.pem", "UnsubscribeURL" : "https://sns.us-east-1.amazonaws.com/?Action= Unsubscribe&SubscriptionArn=arn:aws:sns:us-east-1:123456789012:ets- sample-topic:b3ec47e5-e1f0-401f-a0a5-98c7fe405c2b" }
Download esempio di notifica Ruby
Scaricare il codice di esempio qui.
Parti del codice di esempio
Il codice di esempio Ruby include:
La classe
SqsQueueNotificationWorker
: laSqsQueueNotificationWorker
classe interroga Amazon SQS per le notifiche, chiama tutti i gestori registrati per ogni notifica ed elimina il messaggio dalla coda. Notare che il worker è in esecuzione su un thread separato. Se l'implementazione Ruby utilizza thread "green", allora viene eseguito un singolo thread per volta (nessuna elaborazione multipla reale).Lo script
JobStatusNotificationsSample.rb
: questo script crea un job Elastic Transcoder, avvia un worker Amazon SQS e attende il completamento del lavoro. Il gestore fornito indica al lavoratore Amazon SQS di interrompersi quando l'elaborazione del lavoro creato è completa. La gestione delle notifiche avviene chiamando il metodo add_handlers e fornendo un Proc o lambda come handler che acquisisce un singolo argomento. Per ogni notifica ricevuta, tutti gli handler registrati sono chiamati con la notifica fornita come argomento di input all'handler.
Processi
Per eseguire l'esempio, attenersi alla seguente procedura:
Configurare l'ambiente secondo le seguenti istruzioni: Configurazione dell'ambiente Ruby
Scaricare il codice di esempio.
Decomprimere il codice di esempio nella directory dei sorgenti del progetto Ruby.
Modificare il file
JobStatusNotificationsSample.rb
e sostituire pipeline_id, sqs_queue_url e input_key con i valori appropriati.Da un terminal, passare alla directory in cui è stato decompresso il codice di esempio ed eseguire:
$ruby JobStatusNotificationsSample.rb
Esempi PHP
Tutti gli esempi PHP prevedono tre presupposti fondamentali:
Gli esempi di PHP sono eseguiti all'interno di un server Apache.
Il server Apache deve essere in grado di ricevere input da Internet per ricevere le notifiche Amazon SNS.
Gli esempi sono scritti per funzionare con PHP versione 5.4 o superiore.
Esempi HLS
Questo esempio mostra come creare un job HLS e un file di playlist HLS che può essere utilizzato per riprodurre un flusso di bit rate adattivo.
Download esempio HLS PHP
Scaricare il codice di esempio qui.
Parti del codice di esempio
Il codice di esempio PHP include:
Il file
HlsJobCreationSample.php
Processi
Per eseguire l'esempio, attenersi alla seguente procedura:
Configurare l'ambiente secondo le seguenti istruzioni: Configurazione dell'ambiente PHP
Scaricare il codice di esempio.
Nel tuo browser, carica la pagina http://<your-endpoint>/transcoder-samples/HlsJobCreationSample .php.
Completare ID pipeline e chiave di input, quindi inviare il modulo per creare un processo.
Esempi di notifica
Argomenti
Esempi di sintassi per le notifiche
{ "Type" : "Notification", "MessageId" : "341527b6-9081-5f3d-b933-6c8472c3be40", "TopicArn" : "arn:aws:sns:us-east-1:123456789012:ets-sample-topic", "Subject" : "Amazon Elastic Transcoder has scheduled job 1387847681009 -abcdef for transcoding.", "Message" : "{\n \"state\" : \"PROGRESSING\",\n \"version\" : \"2012-09-25\",\n \"jobId\" : \"1387847681009-abcdef\", \n \"pipelineId\" : \"1387847629327-fedcba\",\n \"input\" : {\n \"key\" : \"input/example/key.mp4\",\n \"frameRate\" : \"auto\",\n \"resolution\" : \"auto\",\n \"aspectRatio\" : \"auto\",\n \"interlaced\" : \"auto\",\n \"container\" : \"auto\"\n },\n \"outputKeyPrefix\" : \"elastic-transcoder-samples/\",\n \"outputs\" : [ {\n \"id\" : \"1\",\n \"presetId\" : \"1351620000001-000020\",\n \"key\" : \"output/example/key.mp4\",\n \"thumbnailPattern\" : \"\",\n \"rotate\" : \"auto\",\n \"status\" : \"Progressing\"\n } ]\n}", "Timestamp" : "2013-12-24T01:14:42.493Z", "SignatureVersion" : "1", "Signature" : "ElSqJW3ZksCPViYGTayI/p+LjdF2HB42iJlIJRJ+jWzWwygXdiJXvZXl94qhd/tLln1lxPqijjivb5RWu7n5yzdZwbod6lpLwyZ2TfWM6dZt57OzsG3GbdTxgqwVsztVSyWCYhcV8f+CrT3IQrfrU3Me/SRYVUqrSUXXsu4Ls7A2q9mosG7v0Sn+3Z1rAa9+Rf6QmkfAg05UX0sLyA+I2hFqTu5oAGDK4Cm6FHuIwV+oYJXNBbGWuS7tD6mRNwrYvPBlUvBLXx9m3CbqSXv5Yoj39vglv+1djtaLA3GpwX+B1hHx8QT373lgmmsmGDRWhSQretpOTWDYb81PV2K0bg==", "SigningCertURL" : "https://sns.us-east-1.amazonaws.com/SimpleNotificationService-e372f8ca30337fdb084e8ac449342c77.pem", "UnsubscribeURL" : "https://sns.us-east-1.amazonaws.com/?Action= Unsubscribe&SubscriptionArn=arn:aws:sns:us-east-1:123456789012:ets- sample-topic:b3ec47e5-e1f0-401f-a0a5-98c7fe405c2b" }
Download esempio di notifica PHP
Scaricare il codice di esempio qui.
Parti del codice di esempio
Il codice di esempio PHP include:
File
JobStatusNotificationsSampleNotificationHandler.php
: quando viene POSTata una notifica sul server, l'handler della notifica riscrive lo stato su un file nella cartella /tmp/<id processo>.File
JobStatusNotificationsSample.php
: quando l'handler della notifica riscrive lo stato su un file nella cartella /tmp/<id processo>, il fileJobStatusNotificationsSample.php
carica il file di stato della cartella /tmp/<id processo> specificato dall'ID della stringa di query fornita.
Processi
Per eseguire l'esempio, attenersi alla seguente procedura:
Configurare l'ambiente secondo le seguenti istruzioni: Configurazione dell'ambiente PHP
Scaricare il codice di esempio.
Decomprimere il codice di esempio nella directory dei sorgenti del progetto PHP.
Nel tuo browser, carica la pagina http://<your-endpoint>/transcoder-samples/JobStatusNotificationsSample .php.
Completare ID pipeline e chiave di input da transcodificare, quindi premere il pulsante Create Job (Crea processo).
Esempi Python
Tutti gli esempi Python prevedono un presupposto fondamentale:
Gli esempi sono scritti per essere compatibili con Python versione 2.7.
Esempi HLS
Questo esempio mostra come creare un job HLS e un file di playlist HLS che può essere utilizzato per riprodurre un flusso di bit rate adattivo.
Download esempio HLS Python
Scaricare il codice di esempio qui.
Parti del codice di esempio
Il codice di esempio Python include:
Il file
HlsJobCreationSample.py
Processi
Per eseguire l'esempio, attenersi alla seguente procedura:
Configurare l'ambiente secondo le seguenti istruzioni: Configurazione dell'ambiente Python
Scaricare il codice di esempio.
Decomprimere il codice di esempio.
Modificare il file
HlsJobCreationSample.py
e sostituire pipeline_id e input_key con i valori appropriati.Da un terminal, passare alla directory in cui è stato decompresso il codice di esempio ed eseguire:
$python HlsJobCreationSample.py
Esempi di notifica
Argomenti
Esempi di sintassi per le notifiche
{ "Type" : "Notification", "MessageId" : "341527b6-9081-5f3d-b933-6c8472c3be40", "TopicArn" : "arn:aws:sns:us-east-1:123456789012:ets-sample-topic", "Subject" : "Amazon Elastic Transcoder has scheduled job 1387847681009 -abcdef for transcoding.", "Message" : "{\n \"state\" : \"PROGRESSING\",\n \"version\" : \"2012-09-25\",\n \"jobId\" : \"1387847681009-abcdef\", \n \"pipelineId\" : \"1387847629327-fedcba\",\n \"input\" : {\n \"key\" : \"input/example/key.mp4\",\n \"frameRate\" : \"auto\",\n \"resolution\" : \"auto\",\n \"aspectRatio\" : \"auto\",\n \"interlaced\" : \"auto\",\n \"container\" : \"auto\"\n },\n \"outputKeyPrefix\" : \"elastic-transcoder-samples/\",\n \"outputs\" : [ {\n \"id\" : \"1\",\n \"presetId\" : \"1351620000001-000020\",\n \"key\" : \"output/example/key.mp4\",\n \"thumbnailPattern\" : \"\",\n \"rotate\" : \"auto\",\n \"status\" : \"Progressing\"\n } ]\n}", "Timestamp" : "2013-12-24T01:14:42.493Z", "SignatureVersion" : "1", "Signature" : "ElSqJW3ZksCPViYGTayI/p+LjdF2HB42iJlIJRJ+jWzWwygXdiJXvZXl94qhd/tLln1lxPqijjivb5RWu7n5yzdZwbod6lpLwyZ2TfWM6dZt57OzsG3GbdTxgqwVsztVSyWCYhcV8f+CrT3IQrfrU3Me/SRYVUqrSUXXsu4Ls7A2q9mosG7v0Sn+3Z1rAa9+Rf6QmkfAg05UX0sLyA+I2hFqTu5oAGDK4Cm6FHuIwV+oYJXNBbGWuS7tD6mRNwrYvPBlUvBLXx9m3CbqSXv5Yoj39vglv+1djtaLA3GpwX+B1hHx8QT373lgmmsmGDRWhSQretpOTWDYb81PV2K0bg==", "SigningCertURL" : "https://sns.us-east-1.amazonaws.com/SimpleNotificationService-e372f8ca30337fdb084e8ac449342c77.pem", "UnsubscribeURL" : "https://sns.us-east-1.amazonaws.com/?Action= Unsubscribe&SubscriptionArn=arn:aws:sns:us-east-1:123456789012:ets- sample-topic:b3ec47e5-e1f0-401f-a0a5-98c7fe405c2b" }
Download esempio di notifica Python
Scaricare il codice di esempio qui.
Parti del codice di esempio
Il codice di esempio Python include:
La classe
SqsQueueNotificationWorker.py
: laSqsQueueNotificationWorker
classe esegue un sondaggio su Amazon SQS e gestisce le notifiche in un processo separato. Questo consente una reale multielaborazione in Python. Questa classe riceve messaggi, chiama tutti gli handler registrati per ogni notifica ricevuta ed elimina il messaggio dalla coda. Questa classe include anche la definizione dellaJobStatusNotificationHandler
classe, che viene fornita per fornire un framework per la gestione delle notifiche di Elastic Transcoder. Questa classe può essere estesa e il metodo di gestione sovrascritto per fornire una gestione personalizzata del processo. Osservare come questo non segua gli standard Python di duck typing, ma offra una definizione formale degli handler per gli scopi del presente esempio.Lo script
JobStatusNotificationSample.py
: loJobStatusNotificationSample.py
script crea un lavoro in Elastic Transcoder e attende che venga completato. Al termine del processo, interrompe il processo di polling della coda ed esce. La sincronizzazione tra processi utilizzando l'oggetto del valore di multielaborazione è necessaria in quanto l'handler opera in un processo separato rispetto alla coda sulla quale esegue il polling.
Processi
Per eseguire l'esempio, attenersi alla seguente procedura:
Configurare l'ambiente secondo le seguenti istruzioni: Configurazione dell'ambiente Python
Scaricare il codice di esempio.
Decomprimere il codice di esempio in una cartella locale.
Modificare il file
JobStatusNotificationsSample.py
e sostituire pipeline_id, sqs_queue_url e input_key con i valori appropriati.Da un terminal, passare alla directory in cui è stato decompresso il codice di esempio ed eseguire:
$python JobStatusNotificationsSample.py