Codice di esempio SDK AWS - Amazon Elastic Transcoder

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.

Per ulteriori informazioni sulla transizione a, consulta questo post del blog AWS Elemental MediaConvert.

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.

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'ReadJobAPI 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.

Configurazione dell'ambiente Java

Questa sezione guida nella configurazione dell'ambiente Java.

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, sia i seguenti file JAR del processore JSON Jackson:

  • 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

  1. Aprire la console Amazon S3.

  2. Nella console, fai clic su Crea bucket.

  3. Nel campo Nome bucket, inserisci il nome desiderato per il bucket di input.

  4. Sempre nella console Amazon S3, fai nuovamente clic su Create Bucet (Crea bucket).

  5. 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

  1. Aprire la console Amazon SNS.

  2. Nella console, fai clic su Crea e aggiungi e seleziona Crea nuovo argomento.

  3. Nel campo Nome argomento, inserisciets-sample-topic e fai clic su Crea argomento.

  4. Registra l'ARN diets-sample-topic.

Creazione di una coda Amazon SQS per il sondaggio delle notifiche dello stato del lavoro

  1. Apri la console Amazon SQS.

  2. Nella console, fai clic su Crea nuova coda.

  3. Nel campo Nome coda, inserisciets-sample-queue e fai clic su Crea coda.

  4. Registra l'URL coda di Amazon SQS.

Iscrizione della coda Amazon SQS all'argomento Amazon SNS

  1. Apri la console Amazon SQS.

  2. Nella console, seleziona ets-sample-queuedall'elenco delle code.

  3. In Azioni di coda, seleziona Abbonati alla coda all'argomento Amazon SNS.

  4. 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

  1. Apri la console Amazon Elastic Transcoder.

  2. Nella console, fai clic su Crea nuova pipeline.

  3. Nel campo Nome tubazione, immettereets-sample-pipeline.

  4. Nel campo Bucket di input, inserisci il nome del tuo bucket di input.

  5. Lascia il ruolo IAM comeConsole Default Role.

  6. In Configura il bucket Amazon S3 per file e playlist transcodificati, inserisci il nome del bucket di output.

  7. Sempre in Configura il bucket Amazon S3 per file e playlist transcodificati, seleziona la classe di archiviazione standard.

  8. Espandi utilizzare il menu a discesa Notifiche.

  9. Per tutti e quattro i tipi di eventi, seleziona Usa un argomento SNS esistente e, in Seleziona un argomento, selezionaets-sample-topic.

  10. Fare clic su Create Pipeline (Crea pipeline).

  11. Registra l'ID della pipeline di Elastic Transcoder.

Creazione di una CloudFront distribuzione Amazon per distribuire contenuti in modo scalabile

  1. Apri la CloudFront console Amazon.

  2. Nel pannello di navigazione della console, espandi Contenuti privati e quindi fai clic su Origin Access Identity.

  3. Fai clic su Crea identità Origin Access.

  4. Fai clic su Create (Crea).

  5. Registra l'ID utente canonico di Amazon S3 generato quando crei l'identità di accesso di origine.

  6. Nel riquadro di navigazione, fai clic su Distribuzione.

  7. Fai clic su Create Distribution (Crea distribuzione).

  8. Seleziona Web, quindi fai clic su Continua.

  9. In Impostazioni Origin, inserisci il tuo bucket di output Amazon S3 come nome di dominio Origin.

  10. Nel campo ID di origine, inserisciS3-transcoder-sample-output.

  11. Per Limita l'accesso al bucket, seleziona .

  12. Fai clic su Crea distribuzione e registra il nome di dominio della distribuzione.

Modifica della policy del bucket Amazon S3

  1. Aprire la console Amazon S3.

  2. Accanto al bucket di output, fai clic sull'icona della lente di ingrandimento per visualizzare le proprietà del bucket.

  3. Espandi le autorizzazioni e fai clic su Aggiungi politica del bucket.

  4. Inserisci la seguente dichiarazione politica, sostituendo CloudFront-oai-s3-canonical-user-id conyour recorded Amazon S3 canonical user ID e s3-output-bucket-name conthe name of your output bucket.

  5. 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.

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. Si installa facilmente utilizzando Ruby gems con il seguente comando:

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

  1. Aprire la console Amazon S3.

  2. Nella console, fai clic su Crea bucket.

  3. Nel campo Nome bucket, inserisci il nome desiderato per il bucket di input.

  4. Sempre nella console Amazon S3, fai nuovamente clic su Create Bucet (Crea bucket).

  5. 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

  1. Aprire la console Amazon SNS.

  2. Nella console, fai clic su Crea e aggiungi e seleziona Crea nuovo argomento.

  3. Nel campo Nome argomento, inserisciets-sample-topic e fai clic su Crea argomento.

  4. Registra l'ARN diets-sample-topic.

Creazione di una coda Amazon SQS per il sondaggio delle notifiche dello stato del lavoro

  1. Apri la console Amazon SQS.

  2. Nella console, fai clic su Crea nuova coda.

  3. Nel campo Nome coda, inserisciets-sample-queue e fai clic su Crea coda.

  4. Registra l'URL coda di Amazon SQS.

Iscrizione della coda Amazon SQS all'argomento Amazon SNS

  1. Apri la console Amazon SQS.

  2. Nella console, seleziona ets-sample-queuedall'elenco delle code.

  3. In Azioni di coda, seleziona Abbonati alla coda all'argomento Amazon SNS.

  4. 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

  1. Apri la console Amazon Elastic Transcoder.

  2. Nella console, fai clic su Crea nuova pipeline.

  3. Nel campo Nome tubazione, immettereets-sample-pipeline.

  4. Nel campo Bucket di input, inserisci il nome del tuo bucket di input.

  5. Lascia il ruolo IAM comeConsole Default Role.

  6. In Configura il bucket Amazon S3 per file e playlist transcodificati, inserisci il nome del bucket di output.

  7. Sempre in Configura il bucket Amazon S3 per file e playlist transcodificati, seleziona la classe di archiviazione standard.

  8. Espandi utilizzare il menu a discesa Notifiche.

  9. Per tutti e quattro i tipi di eventi, seleziona Usa un argomento SNS esistente e, in Seleziona un argomento, selezionaets-sample-topic.

  10. Fare clic su Create Pipeline (Crea pipeline).

  11. Registra l'ID della pipeline di Elastic Transcoder.

Creazione di una CloudFront distribuzione Amazon per distribuire contenuti in modo scalabile

  1. Apri la CloudFront console Amazon.

  2. Nel pannello di navigazione della console, espandi Contenuti privati e quindi fai clic su Origin Access Identity.

  3. Fai clic su Crea identità Origin Access.

  4. Fai clic su Create (Crea).

  5. Registra l'ID utente canonico di Amazon S3 generato quando crei l'identità di accesso di origine.

  6. Nel riquadro di navigazione, fai clic su Distribuzione.

  7. Fai clic su Create Distribution (Crea distribuzione).

  8. Seleziona Web, quindi fai clic su Continua.

  9. In Impostazioni Origin, inserisci il tuo bucket di output Amazon S3 come nome di dominio Origin.

  10. Nel campo ID di origine, inserisciS3-transcoder-sample-output.

  11. Per Limita l'accesso al bucket, seleziona .

  12. Fai clic su Crea distribuzione e registra il nome di dominio della distribuzione.

Modifica della policy del bucket Amazon S3

  1. Aprire la console Amazon S3.

  2. Accanto al bucket di output, fai clic sull'icona della lente di ingrandimento per visualizzare le proprietà del bucket.

  3. Espandi le autorizzazioni e fai clic su Aggiungi politica del bucket.

  4. Inserisci la seguente dichiarazione politica, sostituendo CloudFront-oai-s3-canonical-user-id conyour recorded Amazon S3 canonical user ID e s3-output-bucket-name conthe name of your output bucket.

  5. 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.

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 questo tutorial, consigliamo l'installazione phar, anche se i progetti a lungo termine sono gestiti in modo migliore con composer.

Per ulteriori informazioni, consulta la documentazione relativa al kit SDK AWS per PHP.

Creazione di bucket di input e output Amazon S3

  1. Aprire la console Amazon S3.

  2. Nella console, fai clic su Crea bucket.

  3. Nel campo Nome bucket, inserisci il nome desiderato per il bucket di input.

  4. Sempre nella console Amazon S3, fai nuovamente clic su Create Bucet (Crea bucket).

  5. 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

  1. Aprire la console Amazon SNS.

  2. Nella console, fai clic su Crea e aggiungi e seleziona Crea nuovo argomento.

  3. Nel campo Nome argomento, inserisciets-sample-topic e fai clic su Crea argomento.

  4. Registra l'ARN diets-sample-topic.

Iscrizione del server ad Amazon SNS

  1. Verificare che il codice di esempio PHP sia installato.

  2. Aprire la console Amazon SNS.

  3. Nella sezione AdditionalActions, fai clic su Crea abbonamento.

  4. Selezionare HTTP o HTTPS in base alla configurazione del server.

  5. In Endpoint (Endpoint), immettere l'endpoint del server. Il percorso dell'endpoint deve puntare a JobStatusNotificationsSampleNotificationHandler.php.

  6. 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

  1. Apri la console Amazon Elastic Transcoder.

  2. Nella console, fai clic su Crea nuova pipeline.

  3. Nel campo Nome tubazione, immettereets-sample-pipeline.

  4. Nel campo Bucket di input, inserisci il nome del tuo bucket di input.

  5. Lascia il ruolo IAM comeConsole Default Role.

  6. In Configura il bucket Amazon S3 per file e playlist transcodificati, inserisci il nome del bucket di output.

  7. Sempre in Configura il bucket Amazon S3 per file e playlist transcodificati, seleziona la classe di archiviazione standard.

  8. Espandi utilizzare il menu a discesa Notifiche.

  9. Per tutti e quattro i tipi di eventi, seleziona Usa un argomento SNS esistente e, in Seleziona un argomento, selezionaets-sample-topic.

  10. Fare clic su Create Pipeline (Crea pipeline).

  11. Registra l'ID della pipeline di Elastic Transcoder.

Creazione di una CloudFront distribuzione Amazon per distribuire contenuti in modo scalabile

  1. Apri la CloudFront console Amazon.

  2. Nel pannello di navigazione della console, espandi Contenuti privati e quindi fai clic su Origin Access Identity.

  3. Fai clic su Crea identità Origin Access.

  4. Fai clic su Create (Crea).

  5. Registra l'ID utente canonico di Amazon S3 generato quando crei l'identità di accesso di origine.

  6. Nel riquadro di navigazione, fai clic su Distribuzione.

  7. Fai clic su Create Distribution (Crea distribuzione).

  8. Seleziona Web, quindi fai clic su Continua.

  9. In Impostazioni Origin, inserisci il tuo bucket di output Amazon S3 come nome di dominio Origin.

  10. Nel campo ID di origine, inserisciS3-transcoder-sample-output.

  11. Per Limita l'accesso al bucket, seleziona .

  12. Fai clic su Crea distribuzione e registra il nome di dominio della distribuzione.

Modifica della policy del bucket Amazon S3

  1. Aprire la console Amazon S3.

  2. Accanto al bucket di output, fai clic sull'icona della lente di ingrandimento per visualizzare le proprietà del bucket.

  3. Espandi le autorizzazioni e fai clic su Aggiungi politica del bucket.

  4. Inserisci la seguente dichiarazione politica, sostituendo CloudFront-oai-s3-canonical-user-id conyour recorded Amazon S3 canonical user ID e s3-output-bucket-name conthe name of your output bucket.

  5. 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.

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. È anche facilmente installabile utilizzando PIP tramite il comando seguente:

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

  1. Aprire la console Amazon S3.

  2. Nella console, fai clic su Crea bucket.

  3. Nel campo Nome bucket, inserisci il nome desiderato per il bucket di input.

  4. Sempre nella console Amazon S3, fai nuovamente clic su Create Bucet (Crea bucket).

  5. 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

  1. Aprire la console Amazon SNS.

  2. Nella console, fai clic su Crea e aggiungi e seleziona Crea nuovo argomento.

  3. Nel campo Nome argomento, inserisciets-sample-topic e fai clic su Crea argomento.

  4. Registra l'ARN diets-sample-topic.

Creazione di una coda Amazon SQS per il sondaggio per le notifiche sullo stato del lavoro

  1. Apri la console Amazon SQS.

  2. Nella console, fai clic su Crea nuova coda.

  3. Nel campo Nome coda, inserisciets-sample-queue e fai clic su Crea coda.

  4. Registra l'URL coda di Amazon SQS.

Iscrizione della coda Amazon SQS all'argomento Amazon SNS

  1. Apri la console Amazon SQS.

  2. Nella console, seleziona ets-sample-queuedall'elenco delle code.

  3. In Azioni di coda, seleziona Abbonati alla coda all'argomento Amazon SNS.

  4. 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

  1. Apri la console Amazon Elastic Transcoder.

  2. Nella console, fai clic su Crea nuova pipeline.

  3. Nel campo Nome tubazione, immettereets-sample-pipeline.

  4. Nel campo Bucket di input, inserisci il nome del tuo bucket di input.

  5. Lascia il ruolo IAM comeConsole Default Role.

  6. In Configura il bucket Amazon S3 per file e playlist transcodificati, inserisci il nome del bucket di output.

  7. Sempre in Configura il bucket Amazon S3 per file e playlist transcodificati, seleziona la classe di archiviazione standard.

  8. Espandi utilizzare il menu a discesa Notifiche.

  9. Per tutti e quattro i tipi di eventi, seleziona Usa un argomento SNS esistente e, in Seleziona un argomento, selezionaets-sample-topic.

  10. Fare clic su Create Pipeline (Crea pipeline).

  11. Registra l'ID della pipeline di Elastic Transcoder.

Creazione di una CloudFront distribuzione Amazon per distribuire contenuti in modo scalabile

  1. Apri la CloudFront console Amazon.

  2. Nel pannello di navigazione della console, espandi Contenuti privati e quindi fai clic su Origin Access Identity.

  3. Fai clic su Crea identità Origin Access.

  4. Fai clic su Create (Crea).

  5. Registra l'ID utente canonico di Amazon S3 generato quando crei l'identità di accesso di origine.

  6. Nel riquadro di navigazione, fai clic su Distribuzione.

  7. Fai clic su Create Distribution (Crea distribuzione).

  8. Seleziona Web, quindi fai clic su Continua.

  9. In Impostazioni Origin, inserisci il tuo bucket di output Amazon S3 come nome di dominio Origin.

  10. Nel campo ID di origine, inserisciS3-transcoder-sample-output.

  11. Per Limita l'accesso al bucket, seleziona .

  12. Fai clic su Crea distribuzione e registra il nome di dominio della distribuzione.

Modifica della policy del bucket Amazon S3

  1. Aprire la console Amazon S3.

  2. Accanto al bucket di output, fai clic sull'icona della lente di ingrandimento per visualizzare le proprietà del bucket.

  3. Espandi le autorizzazioni e fai clic su Aggiungi politica del bucket.

  4. Inserisci la seguente dichiarazione politica, sostituendo CloudFront-oai-s3-canonical-user-id conyour recorded Amazon S3 canonical user ID e s3-output-bucket-name conthe name of your output bucket.

  5. 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.

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:

  1. Configurare l'ambiente secondo le seguenti istruzioni: Configurazione dell'ambiente Java

  2. Scaricare il codice di esempio.

  3. In Eclipse, aprire il file com/amazonaws/services/elastictranscoder/samples/HlsJobCreationSample.java.

  4. Sostituire PIPELINE_ID e INPUT_KEY con i valori appropriati.

  5. Eseguire gli esempi su Eclipse.

Esempi di notifica

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" }

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 classeJobStatusNotification: laJobStatusNotification classe modella una notifica Elastic Transcoder.

  • La classeSqsQueueNotificationWorker: 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'interfaccia JobStatusNotificationHandler può essere implementata per consentire la gestione personalizzata delle notifiche.

  • Classe JobStatusNotificationsSample: la classe JobStatusNotificationsSample 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:

  1. Configurare l'ambiente secondo le seguenti istruzioni: Configurazione dell'ambiente Java.

  2. Scaricare il codice di esempio.

  3. Decomprimere il codice di esempio nella directory dei sorgenti del progetto JAVA.

  4. Aprire il file com/amazonaws/services/elastictranscoder/samples/JobStatusNotificationsSample.java in Eclipse.

  5. Sostituire PIPELINE_ID, SQS_QUEUE_URL e INPUT_KEY con i valori appropriati.

  6. 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.

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:

  1. Configurare l'ambiente secondo le seguenti istruzioni: Configurazione dell'ambiente Ruby

  2. Scaricare il codice di esempio.

  3. Decomprimere il codice di esempio nella directory dei sorgenti del progetto Ruby.

  4. Modificare il file HlsJobCreationSample.rb e sostituire pipeline_id e input_key con i valori appropriati.

  5. Da un terminal, passare alla directory in cui è stato decompresso il codice di esempio ed eseguire:

$ruby HlsJobCreationSample.rb

Esempi di notifica

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" }

Scaricare il codice di esempio qui.

Parti del codice di esempio

Il codice di esempio Ruby include:

  • La classeSqsQueueNotificationWorker: 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 scriptJobStatusNotificationsSample.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:

  1. Configurare l'ambiente secondo le seguenti istruzioni: Configurazione dell'ambiente Ruby

  2. Scaricare il codice di esempio.

  3. Decomprimere il codice di esempio nella directory dei sorgenti del progetto Ruby.

  4. Modificare il file JobStatusNotificationsSample.rb e sostituire pipeline_id, sqs_queue_url e input_key con i valori appropriati.

  5. 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.

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:

  1. Configurare l'ambiente secondo le seguenti istruzioni: Configurazione dell'ambiente PHP

  2. Scaricare il codice di esempio.

  3. Nel tuo browser, carica la pagina http://<your-endpoint>/transcoder-samples/HlsJobCreationSample .php.

  4. Completare ID pipeline e chiave di input, quindi inviare il modulo per creare un processo.

Esempi di notifica

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" }

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 file JobStatusNotificationsSample.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:

  1. Configurare l'ambiente secondo le seguenti istruzioni: Configurazione dell'ambiente PHP

  2. Scaricare il codice di esempio.

  3. Decomprimere il codice di esempio nella directory dei sorgenti del progetto PHP.

  4. Nel tuo browser, carica la pagina http://<your-endpoint>/transcoder-samples/JobStatusNotificationsSample .php.

  5. 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.

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:

  1. Configurare l'ambiente secondo le seguenti istruzioni: Configurazione dell'ambiente Python

  2. Scaricare il codice di esempio.

  3. Decomprimere il codice di esempio.

  4. Modificare il file HlsJobCreationSample.py e sostituire pipeline_id e input_key con i valori appropriati.

  5. Da un terminal, passare alla directory in cui è stato decompresso il codice di esempio ed eseguire:

$python HlsJobCreationSample.py

Esempi di notifica

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" }

Scaricare il codice di esempio qui.

Parti del codice di esempio

Il codice di esempio Python include:

  • La classeSqsQueueNotificationWorker.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 scriptJobStatusNotificationSample.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:

  1. Configurare l'ambiente secondo le seguenti istruzioni: Configurazione dell'ambiente Python

  2. Scaricare il codice di esempio.

  3. Decomprimere il codice di esempio in una cartella locale.

  4. Modificare il file JobStatusNotificationsSample.py e sostituire pipeline_id, sqs_queue_url e input_key con i valori appropriati.

  5. Da un terminal, passare alla directory in cui è stato decompresso il codice di esempio ed eseguire:

$python JobStatusNotificationsSample.py