Menù tutorialSommario in questa pagina

Muxer e demuxer (formati)

1 Descrizione

Questo documento descrive i formati supportati (muxer e demuxer) forniti dalla libreria libavformat.

2 Opzioni di formato

La libreria libavformat fornisce alcune opzioni globali generiche, che possono essere impostate su tutti i muxer e demuxer. Inoltre ciascun muxer o demuxer può supportare le cosiddette opzioni private, specifiche per quel componente.

Le opzioni possono essere impostate specificando il valore -option negli strumenti FFmpeg o impostando esplicitamente il valore nelle opzioni AVFormatContext o utilizzando l'API libavutil/opt.h per uso programmatico.

Di seguito l'elenco delle opzioni supportate:

avioflags flags (input/output)

Valori possibili:

direct

Ridurre il buffering.

probesize integer (input)

Imposta la dimensione del sondaggio in byte, ovvero la dimensione dei dati da analizzare per ottenere informazioni sul flusso. Un valore più alto consentirà di rilevare più informazioni nel caso in cui siano disperse nel flusso, ma aumenterà la latenza. Deve essere un numero intero non inferiore a 32. Per impostazione predefinita è 5.000.000.

max_probe_packets integer (input)

Imposta il numero massimo di pacchetti bufferizzati durante il sondaggio di un codec. L'impostazione predefinita è 2500 pacchetti.

packetsize integer (output)

Imposta la dimensione del pacchetto.

fflags flags

Imposta i flag di formato. Alcuni sono implementati per un numero limitato di formati.

Possibili valori per i file di input:

discardcorrupt

Scarta i pacchetti danneggiati.

fastseek

Abilita ricerche veloci ma imprecise per alcuni formati.

genpts

Genera PTS mancante se DTS è presente.

igndts

Ignorare DTS se è impostato anche PTS. Nel caso in cui sia impostato il PTS, il valore DTS è impostato su NOPTS. Questo viene ignorato quando è impostato il flag nofillin.

ignidx

Ignora l'indice.

nobuffer

Riduci la latenza introdotta dal buffering durante l'analisi iniziale dei flussi di input.

nofillin

Non inserire valori mancanti nei campi del pacchetto che possono essere calcolati esattamente.

noparse

Disabilita AVParsers, anche questo richiede +nofillin.

sortdts

Prova ad intercalare i pacchetti di output tramite DTS. Al momento disponibile solo per AVI con indice.

Possibili valori per i file di output:

autobsf

Applica automaticamente i filtri bitstream come richiesto dal formato di output. Abilitato per impostazione predefinita.

bitexact

Scrivi solo dati indipendenti dalla piattaforma, dalla build e dal tempo. Ciò garantisce che i checksum di file e dati siano riproducibili e corrispondano tra le piattaforme. Il suo utilizzo principale è per i test di regressione.

flush_packets

Scrivi immediatamente i pacchetti.

shortest

Interrompi il multiplexing alla fine dello streaming più breve. Potrebbe essere necessario aumentare max_interleave_delta per evitare di scaricare i flussi più lunghi prima di EOF.

seek2any integer (input)

Consenti la ricerca di fotogrammi non chiave a livello di demuxer quando supportato se impostato su 1. L'impostazione predefinita è 0.

analyzeduration integer (input)

Specificare quanti microsecondi vengono analizzati per sondare l'input. Un valore più alto consentirà di rilevare informazioni più precise, ma aumenterà la latenza. Il valore predefinito è 5.000.000 di microsecondi = 5 secondi.

cryptokey hexadecimal string (input)

Imposta la chiave di decrittazione.

indexmem integer (input)

Imposta la memoria massima utilizzata per l'indice del timestamp (per flusso).

rtbufsize integer (input)

Imposta la memoria massima utilizzata per il buffering dei frame in tempo reale.

fdebug flags (input/output)

Stampa informazioni di debug specifiche.

Valori possibili:

ts
max_delay integer (input/output)

Imposta il ritardo massimo di muxing o demuxing in microsecondi.

fpsprobesize integer (input)

Imposta il numero di fotogrammi utilizzati per verificare gli fps.

audio_preload integer (output)

Imposta i microsecondi in base ai quali i pacchetti audio dovrebbero essere interlacciati prima.

chunk_duration integer (output)

Imposta i microsecondi per ogni blocco.

chunk_size integer (output)

Imposta la dimensione in byte per ogni blocco.

err_detect, f_err_detect flags (input)

Imposta i flag di rilevamento degli errori. f_err_detect è deprecato e dovrebbe essere utilizzato solo tramite lo strumento ffmpeg.

Valori possibili:

crccheck

Verificare i CRC incorporati.

bitstream

Rileva le deviazioni delle specifiche del flusso di bit.

buffer

Rileva la lunghezza del flusso di bit non corretta.

explode

Interrompe la decodifica al rilevamento di errori minori.

careful

Considera le cose che violano le specifiche e non sono state viste in natura come errori.

compliant

Considerare tutte le non conformità alle specifiche come errori.

aggressive

Considera le cose che un codificatore sano di mente non dovrebbe fare come un errore.

max_interleave_delta integer (output)

Imposta la durata massima del buffering per l'interlacciamento. La durata è espressa in microsecondi e il valore predefinito è 10000000 (10 secondi).

Per garantire che tutti i flussi siano interlacciati correttamente, libavformat attenderà finché non avrà almeno un pacchetto per ciascun flusso prima di scrivere effettivamente qualsiasi pacchetto nel file di output. Quando alcuni flussi sono "sparsi" (ovvero vi sono ampi intervalli tra i pacchetti successivi), ciò può comportare un buffering eccessivo.

Questo campo specifica la differenza massima tra i timestamp del primo e dell'ultimo pacchetto nella coda di muxing, oltre la quale libavformat produrrà un pacchetto indipendentemente dal fatto che abbia messo in coda un pacchetto per tutti i flussi.

Se impostato su 0, libavformat continuerà a bufferizzare i pacchetti finché non avrà un pacchetto per ogni flusso, indipendentemente dalla differenza massima di timestamp tra i pacchetti bufferizzati.

use_wallclock_as_timestamps integer (input)

Utilizza wallclock come timestamp se impostato su 1. L'impostazione predefinita è 0.

avoid_negative_ts integer (output)

Valori possibili:

make_non_negative

Sposta i timestamp per renderli non negativi. Si noti inoltre che ciò influisce solo sui timestamp negativi iniziali e non sui timestamp negativi non monotoni.

make_zero

Sposta i timestamp in modo che il primo timestamp sia 0.

auto (default)

Abilita lo spostamento quando richiesto dal formato di destinazione.

disabled

Disabilita lo spostamento del timestamp.

Quando lo spostamento è abilitato, tutti i timestamp di uscita vengono spostati della stessa quantità. La desincronizzazione di audio, video e sottotitoli e le relative differenze di timestamp vengono preservate rispetto a come sarebbero state senza lo spostamento.

skip_initial_bytes integer (input)

Imposta il numero di byte da saltare prima di leggere l'intestazione e i frame se impostato su 1. Il valore predefinito è 0.

correct_ts_overflow integer (input)

Correggere gli overflow del timestamp singolo se impostato su 1. Il valore predefinito è 1.

flush_packets integer (output)

Svuota il flusso I/O sottostante dopo ogni pacchetto. L'impostazione predefinita è -1 (auto), il che significa che sarà il protocollo sottostante a decidere, 1 lo abilita e ha l'effetto di ridurre la latenza, 0 lo disabilita e in alcuni casi può aumentare il throughput IO.

output_ts_offset offset (output)

Imposta l'offset del tempo di uscita.

L'offset deve essere una specifica di durata temporale,Vedere (ffmpeg-utils) la sezione Durata tempo nel manuale ffmpeg-utils(1).

L'offset viene aggiunto dal muxer ai timestamp di output.

Specificare un offset positivo significa che i flussi corrispondenti vengono ritardati della durata temporale specificata in offset. Il valore predefinito è 0 (il che significa che non viene applicato alcun offset).

format_whitelist list (input)

"," elenco separato dei demuxer consentiti. Per impostazione predefinita sono tutti consentiti.

dump_separator string (input)

Separatore utilizzato per separare i campi stampati sulla riga di comando relativi ai parametri Stream. Ad esempio, per separare i campi con caratteri di fine riga e rientro:

ffprobe -dump_separator "                          "  -i ~/videos/matrixbench_mpeg2.mpg

max_streams integer (input)

Specifica il numero massimo di flussi. Questo può essere utilizzato per rifiutare file che richiederebbero troppe risorse a causa di un numero elevato di flussi.

skip_estimate_duration_from_pts bool (input)

Salta la stima della durata dell'input se richiede un'ulteriore indagine per PTS alla fine del file. Attualmente applicabile per MPEG-PS e MPEG-TS.

duration_probesize integer (input)

Imposta la dimensione del sondaggio, in byte, per la stima della durata dell'input quando effettivamente richiede un sondaggio aggiuntivo per PTS alla fine del file (attualmente: MPEG-PS e MPEG-TS). È rivolto agli utenti interessati a durate migliori per sondare se stesso, o indirettamente perché utilizzano il demuxer concat, ad esempio. Il tipico caso d'uso è un CBR MPEG-TS con bitrate elevato, buffering video elevato e pulizia finale con PTS simili per video e audio: in uno scenario del genere, l'ampio divario fisico tra l'ultimo pacchetto video e l'ultimo pacchetto audio lo rende necessario leggere molti byte per ottenere la durata del flusso video. Un altro caso d'uso è quello in cui il comportamento di sondaggio predefinito raggiunge solo un singolo fotogramma video che non è l'ultimo del flusso a causa del riordino dei fotogrammi, quindi la durata non è precisa. L'impostazione di questa opzione ha un impatto sulle prestazioni anche per i file di piccole dimensioni poiché la dimensione del sondaggio è fissa. Il comportamento predefinito è un compromesso generale, in gran parte adattivo, ma la dimensione del sondaggio non verrà estesa per ottenere la durata dei flussi a tutti i costi. Deve essere un numero intero non inferiore a 1 o 0 per il comportamento predefinito.

strict, f_strict integer (input/output)

Specificare quanto rigorosamente seguire gli standard. f_strict è deprecato e dovrebbe essere utilizzato solo tramite lo strumento ffmpeg.

Valori possibili:

very

Rigorosamente conforme a una versione precedente e più rigorosa delle specifiche o del software di riferimento

strict

Rigorosamente conforme a tutte le cose nelle specifiche, indipendentemente dalle conseguenze

normal
unofficial

Consentire estensioni non ufficiali

experimental

Consentire cose sperimentali non standardizzate, decodificatori e codificatori sperimentali (non finiti/in lavorazione/non ben testati). Nota: i decoder sperimentali possono rappresentare un rischio per la sicurezza, non utilizzarli per decodificare input non attendibili.

2.1 Specificatori del flusso di formato

Gli identificatori del flusso di formato consentono la selezione di uno o più flussi che corrispondono a proprietà specifiche.

La semantica esatta degli specificatori di flusso è definita dalla funzione avformat_match_stream_specifier() dichiarata nel filelibavformat/avformat.hE documentato nella sezione (ffmpeg)Stream specifiers nel manuale ffmpeg(1).

3 demuxer

I demuxer sono elementi configurati in FFmpeg in grado di leggere i flussi multimediali da un particolare tipo di file.

Quando configuri la build di FFmpeg, tutti i demuxer supportati sono abilitati per impostazione predefinita. Puoi elencare tutti quelli disponibili utilizzando l'opzione di configurazione --list-demuxers.

È possibile disabilitare tutti i demuxer utilizzando l'opzione di configurazione --disable-demuxers e abilitare selettivamente un singolo demuxer con l'opzione --enable-demuxer=DEMUXER o disabilitarlo con l'opzione --disable-demuxer=DEMUXER.

L'opzione -demuxers degli strumenti ff* mostrerà l'elenco dei demuxer abilitati. Utilizzare -formats per visualizzare un elenco combinato di demuxer e muxer abilitati.

Segue la descrizione di alcuni dei demuxer attualmente disponibili.

3.1 aa

Demuxer in formato Audible 2, 3 e 4.

Questo demuxer viene utilizzato per demuxare file Audible Format 2, 3 e 4 (.aa).

3,2 ca

Demuxer AAC del flusso di trasporto dei dati audio grezzi.

Questo demuxer viene utilizzato per demuxare un input ADTS contenente un singolo flusso AAC insieme a eventuali tag ID3v1/2 o APE al suo interno.

3,3 ap

Demuxer animato di grafica di rete portatile.

Questo demuxer viene utilizzato per demuxare i file APNG. Tutte le intestazioni, tranne la firma PNG, fino al primo pezzo fcTL (escluso) vengono trasmessi come extradati. I frame vengono quindi divisi come tutti i blocchi tra due fcTL o tra gli ultimi blocchi fcTL e IEND.

-ignore_loop bool

Ignora la variabile loop nel file, se impostata. L'impostazione predefinita è abilitata.

-max_fps int

Frequenza fotogrammi massima in fotogrammi al secondo. Il valore predefinito 0 non impone alcun limite.

-default_fps int

Frequenza fotogrammi predefinita in fotogrammi al secondo quando non ne è specificato nessuno nel file (0 significa il più veloce possibile). L'impostazione predefinita è 15.

3,4 qs

Demuxer di formati per sistemi avanzati.

Questo demuxer viene utilizzato per demuxare file ASF e flussi di rete MMS.

-no_resync_search bool

Non tentare di risincronizzarsi cercando un determinato codice di avvio opzionale.

3,5 concat

Demuxer di script di concatenazione virtuale.

Questo demuxer legge un elenco di file e altre direttive da un file di testo e li demux uno dopo l'altro, come se tutti i loro pacchetti fossero stati messi insieme.

I timestamp nei file vengono regolati in modo che il primo file inizi da 0 e ogni file successivo inizi dove finisce quello precedente. Tieni presente che viene eseguito a livello globale e potrebbe causare lacune se tutti i flussi non hanno esattamente la stessa lunghezza.

Tutti i file devono avere gli stessi flussi (stessi codec, stessa base temporale, ecc.).

La durata di ciascun file viene utilizzata per regolare i timestamp del file successivo: se la durata non è corretta (perché è stata calcolata utilizzando il bit-rate o perché il file è troncato, ad esempio), può causare artefatti. La direttiva sulla durata può essere utilizzata per sovrascrivere la durata memorizzata in ciascun file.

3.5.1 Sintassi

Lo script è un file di testo in formato ASCII esteso, con una direttiva per riga. Le righe vuote, gli spazi iniziali e le righe che iniziano con '#' vengono ignorate. Viene riconosciuta la seguente direttiva:

file path

Percorso di un file da leggere; i caratteri speciali e gli spazi devono essere preceduti da una barra rovesciata o da virgolette singole.

Tutte le successive direttive relative ai file si applicano a quel file.

ffconcat version 1.0

Identificare il tipo e la versione dello script.

Per fare in modo che FFmpeg riconosca automaticamente il formato, questa direttiva deve apparire esattamente così com'è (senza spazi aggiuntivi o segni di ordine dei byte) sulla primissima riga dello script.

duration dur

Durata del file. Queste informazioni possono essere specificate dal file; specificarlo qui potrebbe essere più efficiente o utile se le informazioni del file non sono disponibili o accurate.

Se la durata è impostata per tutti i file, è possibile cercare nell'intero video concatenato.

inpoint timestamp

Nel punto del fascicolo. Quando il demuxer apre il file cerca immediatamente il timestamp specificato. La ricerca viene eseguita in modo che tutti i flussi possano essere presentati con successo nel punto In.

Questa direttiva funziona meglio con i codec intra frame, perché per quelli non intra frame di solito otterrai pacchetti aggiuntivi prima del punto In effettivo e il contenuto decodificato molto probabilmente conterrà frame anche prima del punto In.

Per ogni file, i pacchetti prima del file In point avranno un timestamp inferiore al timestamp di inizio calcolato del file (negativo nel caso del primo file), e la durata dei file (se non specificata dalla direttiva di durata) sarà ridotta in base al punto In specificato.

A causa dei potenziali pacchetti prima del punto In specificato, i timestamp dei pacchetti potrebbero sovrapporsi tra due file concatenati.

outpoint timestamp

Punto di stacco del file. Quando il demuxer raggiunge il timestamp di decodifica specificato in uno qualsiasi dei flussi, lo gestisce come una condizione di fine file e salta il pacchetto corrente e tutti quelli rimanenti da tutti i flussi.

Il punto Out è esclusivo, il che significa che il demuxer non emetterà pacchetti con un timestamp di decodifica maggiore o uguale al punto Out.

Questa direttiva funziona meglio con codec intraframe e formati in cui tutti i flussi sono strettamente interlacciati. Per i codec non intra frame di solito riceverai pacchetti aggiuntivi con timestamp di presentazione dopo il punto Out, quindi molto probabilmente il contenuto decodificato conterrà frame anche dopo il punto Out. Se i tuoi flussi non sono strettamente interlacciati potresti non ricevere tutti i pacchetti da tutti i flussi prima del punto Out e potresti essere in grado di decodificare solo il primo flusso fino al punto Out.

La durata dei file (se non specificata dalla direttiva sulla durata) verrà ridotta in base al punto Out specificato.

file_packet_metadata key=value

Metadati dei pacchetti del file. I metadati specificati verranno impostati per ciascun pacchetto di file. È possibile specificare questa direttiva più volte per aggiungere più voci di metadati. Questa direttiva è deprecata, utilizza invece file_packet_meta.

file_packet_meta key value

Metadati dei pacchetti del file. I metadati specificati verranno impostati per ciascun pacchetto di file. È possibile specificare questa direttiva più volte per aggiungere più voci di metadati.

option key value

Opzione per accedere, aprire e sondare il file. Può essere presente più volte.

stream

Introdurre uno stream nel file virtuale. Tutte le successive direttive relative allo stream si applicano all'ultimo stream introdotto. Alcune proprietà dei flussi devono essere impostate per consentire l'identificazione dei flussi corrispondenti nei sottofile. Se nello script non sono definiti flussi, vengono copiati i flussi del primo file.

exact_stream_id id

Imposta l'ID dello stream. Se viene fornita questa direttiva, verrà utilizzata la stringa con l'id corrispondente nei sottofile. Ciò è particolarmente utile per i file MPEG-PS (VOB), dove l'ordine dei flussi non è affidabile.

stream_meta key value

Metadati per lo streaming. Può essere presente più volte.

stream_codec value

Codec per lo streaming.

stream_extradata hex_string

Extradati per la stringa, codificati in esadecimale.

chapter id start end

Aggiungi un capitolo. id è un identificatore univoco, possibilmente piccolo e consecutivo.

3.5.2 Opzioni

Questo demuxer accetta la seguente opzione:

safe

Se impostato su 1, rifiuta percorsi e direttive di file non sicuri. Un percorso file è considerato sicuro se non contiene una specifica di protocollo ed è relativo e tutti i componenti contengono solo caratteri del set di caratteri portabili (lettere, cifre, punto, carattere di sottolineatura e trattino) e non hanno punto all'inizio di un componente.

Se impostato su 0, viene accettato qualsiasi nome di file.

Il valore predefinito è 1.

auto_convert

Se impostato su 1, prova a eseguire conversioni automatiche sui dati a pacchetto per rendere i flussi concatenabili. Il valore predefinito è 1.

Attualmente, l'unica conversione è l'aggiunta del filtro bitstream h264_mp4toannexb ai flussi H.264 in formato MP4. Ciò è necessario soprattutto in caso di modifiche della risoluzione.

segment_time_metadata

Se impostato su 1, ogni pacchetto conterrà i valori dei metadati del pacchetto lavf.concat.start_time e lavf.concat.duration che sono start_time e la durata dei rispettivi segmenti di file nell'output concatenato espressi in microsecondi. I metadati della durata vengono impostati solo se noti in base al file concat. Il valore predefinito è 0.

3.5.3 Esempi

  • Utilizza nomi di file assoluti e includi alcuni commenti:# my first filenamefile /mnt/share/file-1.wav# my second filename including whitespacefile '/mnt/share/file 2.wav'# my third filename including whitespace plus single quotefile '/mnt/share/file 3'\''.wav'
  • Consenti il rilevamento automatico del formato di input, utilizza nomi di file sicuri e imposta la durata del primo file:ffconcat version 1.0file file-1.wavduration 20.0file subdir/file-2.wav

3.6 trattino

Streaming adattivo dinamico su demuxer HTTP.

Questo demuxer presenta tutti gli AVStream trovati nel manifest. Impostando i flag di scarto su AVStreams il chiamante può decidere quali flussi ricevere effettivamente. Ciascun flusso rispecchia le proprietà ID e larghezza di banda della <Rappresentazione> come chiavi di metadati denominate rispettivamente "id" e "variant_bitrate".

3.6.1 Opzioni

Questo demuxer accetta la seguente opzione:

cenc_decryption_key

Chiave da 16 byte, in formato esadecimale, per decrittografare i file crittografati utilizzando la crittografia comune ISO (CENC/AES-128 CTR; ISO/IEC 23001-7).

3.7 dvdvideo

Demuxer DVD-Video, basato su libdvdnav e libdvdread.

Può importare direttamente titoli DVD, in particolare PGC sequenziali, in una pipeline di conversione. Anche le risorse del menu, come video o audio di sfondo, possono essere demuxate in base alle coordinate del menu (nella migliore delle ipotesi). La ricerca non è supportata al momento.

Sono accettati dispositivi a blocchi (unità DVD), file ISO e strutture di directory. Attivalo con -f dvdvideo davanti a uno di questi ingressi.

Questo demuxer NON ha codici di decrittazione di alcun tipo. Stai lavorando da solo con DVD crittografati e non dovresti aspettarti supporto in merito.

La riproduzione sottostante è gestita da libdvdnav e l'analisi della struttura da libdvdread. FFmpeg deve essere creato con il supporto della libreria GPL disponibile così come le opzioni di configurazione --enable-libdvdnav e --enable-libdvdread.

Dovrai fornire il "numero del titolo" desiderato o le coordinate PGC/PG esatte. Molti lettori e strumenti DVD open source possono aiutare a fornire queste informazioni. Se non specificato, il demuxer utilizzerà per impostazione predefinita il titolo 1 che funziona con molti dischi. Tuttavia, data la flessibilità del formato, si consiglia di effettuare il controllo manualmente. Esistono molti dischi la cui creazione è strana o con intestazioni non valide.

Se l'input è una vera unità DVD, tieni presente che ci sono alcune unità che potrebbero fallire silenziosamente nella lettura dei settori danneggiati dal disco, restituendo invece bit casuali che sono effettivamente dati corrotti. Ciò è particolarmente evidente sui dischi invecchiati o marci. Sarebbero necessari un secondo passaggio e controlli di integrità per rilevare la corruzione. Questo non è un problema di FFmpeg.

3.7.1 Contesto

Il DVD-Video non è un formato contenitore lineare direttamente accessibile nel senso tradizionale. Invece, consente la riproduzione complessa e programmatica di flussi MPEG-PS attentamente muxizzati archiviati in file VOB senza intestazione. Per l'utente finale, questi flussi sono conosciuti semplicemente come "titoli", ma la sequenza logica di riproduzione effettiva è definita da uno o più "PGC", o catene di gruppi di programmi, all'interno del titolo. Il PGC è a sua volta composto da più "PG", o programmi", che sono i segmenti video effettivi (e per una caratteristica video tipica, ordinati in sequenza). La struttura PGC, insieme al layout dello streaming e ai metadati, sono archiviati nei file IFO che devono essere analizzati, i PGC possono essere considerati come playlist in termini più semplici.

Un vero lettore DVD si basa sull'interazione della GUI dell'utente tramite menu e una VM interna per guidare la direzione del demuxing. Generalmente, l'utente naviga (tramite i menu) o viene automaticamente reindirizzato al PGC di sua scelta. Durante questo processo e la successiva riproduzione, anche la VM interna del lettore DVD mantiene uno stato ed esegue istruzioni che possono creare salti a diversi settori durante la riproduzione. Questo è il motivo per cui è coinvolto libdvdnav, poiché una lettura lineare dei blob MPEG-PS sul disco (VOB) non è sufficiente per produrre la sequenza corretta in molti casi.

Ci sono molte altre strutture DVD (un argomento lungo) che non verranno discusse qui. I pacchetti NAV, in particolare, vengono gestiti da questo demuxer per creare tempistiche accurate ma non emessi come flusso. Per una buona comprensione di alto livello, fare riferimento a:  Https://code.videolan.org/videolan/libdvdnav/-/blob/master/doc/dvd_structures

3.7.2 Opzioni

Questo demuxer accetta le seguenti opzioni:

title int

Il numero del titolo da riprodurre. Deve essere impostato sepgcEpgNon sono impostati. Non applicabile ai menu. Il valore predefinito è 0 (auto), che attualmente seleziona solo il primo titolo disponibile (titolo 1) e avvisa l'utente delle implicazioni.

chapter_start int

Il numero del capitolo, o PTT (parte del titolo), da cui iniziare. Non applicabile ai menu. L'impostazione predefinita è 1.

chapter_end int

Il numero del capitolo, o PTT (parte del titolo), con cui terminare. Non applicabile ai menu. Il valore predefinito è 0, che è un valore speciale per segnalare la fine all'ultimo capitolo possibile.

angle int

Il numero dell'angolo video, che si riferisce a quello che è essenzialmente un flusso video aggiuntivo composto da fotogrammi alternati intercalati nei VOB. Non applicabile ai menu. L'impostazione predefinita è 1.

region int

Il codice regionale da utilizzare per la riproduzione. Alcuni dischi potrebbero utilizzarlo per la riproduzione predefinita con un angolo particolare in diverse regioni. Questa opzione non influenzerà il codice regionale di un'unità DVD reale, se utilizzata come input. Non applicabile ai menu. L'impostazione predefinita è 0, "mondo".

menu bool

Demux delle risorse del menu invece di navigare in un titolo. Richiede le coordinate esatte del menu (menu_lu, menu_vts, pgc, pg). L'impostazione predefinita è falsa.

menu_lu int

La lingua del menu da demuxare. Nel DVD, i menu sono raggruppati per lingua. L'impostazione predefinita è 0, la prima unità linguistica.

menu_vts int

Il VTS in cui risiede il menu, o 0 se è un menu VMG (livello root). L'impostazione predefinita è 0, menu VMG.

pgc int

La voce PGC per avviare la riproduzione, insieme a pag. Alternativa all'impostazione del titolo. I marcatori di capitolo non sono supportati al momento. Deve essere impostato esplicitamente per i menu. Il valore predefinito è 0, risolto automaticamente dal valore del titolo.

pg int

La voce PG per avviare la riproduzione, insieme a pgc. Alternativa all'impostazione del titolo. I marcatori di capitolo non sono supportati al momento. L'impostazione predefinita è 0, risolve automaticamente dal valore del titolo o inizia dall'inizio (PG 1) del menu.

preindex bool

Abilitarlo per avere marcatori di capitolo (PTT) accurati e misurazione della durata, che richiede una lettura lenta del secondo passaggio per indicizzare i timestamp dei marcatori di capitolo dai pacchetti NAV. Questo non è un lavoro extra non ideale per le unità ottiche reali. Si consiglia e più velocemente di utilizzare questa opzione con un backup della struttura del DVD memorizzata su un disco rigido. Non compatibile con pgc e pg. Non applicabile ai menu. Il valore predefinito è 0, falso.

trim bool

Salta le celle di riempimento (ovvero le celle più corte di 1 secondo) dall'inizio. Esistono molti dischi con segmenti di riempimento all'inizio del PGC, spesso con dati spazzatura destinati a controllare la velocità di buffering di un vero lettore DVD e senza altri valori di dati materiali. Non applicabile ai menu. Il valore predefinito è 1, vero.

3.7.3 Esempi

  • Apri il titolo 3 da una determinata struttura DVD:ffmpeg -f dvdvideo -title 3 -i
  • Apri i capitoli 3-6 dal titolo 1 da una determinata struttura del DVD:ffmpeg -f dvdvideo -chapter_start 3 -chapter_end 6 -title 1 -i
  • Apri solo il capitolo 5 dal titolo 1 di una determinata struttura DVD:ffmpeg -f dvdvideo -chapter_start 5 -chapter_end 5 -title 1 -i
  • Menu Demux con lingua 1 da VTS 1, PGC 1, a partire da PG 1:ffmpeg -f dvdvideo -menu 1 -menu_lu 1 -menu_vts 1 -pgc 1 -pg 1 -i

3,8 cad

Demuxer del formato multimediale di Electronic Arts.

Questo formato è utilizzato da vari giochi Electronic Arts.

3.8.1 Opzioni

merge_alpha bool

Normalmente il canale alfa VP6 (se esiste) viene restituito come flusso video secondario, impostando questa opzione è possibile fare in modo che il demuxer restituisca un singolo flusso video che contiene il canale alfa oltre al video ordinario.

3,9 FMI

Demuxer interoperabile Master Format.

Questo demuxer presenta i flussi audio e video trovati in una composizione IMF, come specificato in SMPTE ST 2067-2.

ffmpeg [-assetmaps <path of ASSETMAP1>,<path of ASSETMAP2>,...] -i <path of CPL> ...

Se -assetmaps non è specificato, il demuxer cerca un file chiamato ASSETMAP.xml nella stessa directory del CPL.

3.10 flv, live_flv, kux

Demuxer del formato video Adobe Flash.

Questo demuxer viene utilizzato per demuxare file FLV e flussi di rete RTMP. In caso di streaming di rete live, se forzi il formato, puoi utilizzare l'opzione live_flv invece di flv per sopravvivere alle discontinuità del timestamp. KUX è una variante flv utilizzata sulla piattaforma Youku.

ffmpeg -f flv -i myfile.flv ...
ffmpeg -f live_flv -i rtmp://<any.server>/anything/key ....
-flv_metadata bool

Assegnare i flussi in base al contenuto dell'array onMetaData.

-flv_ignore_prevtag bool

Ignora la dimensione del valore del tag precedente.

-flv_full_metadata bool<15:30>

Genera tutto il contesto di onMetadata.

3.11 gif

Demuxer di GIF animate.

Accetta le seguenti opzioni:

min_delay

Imposta il ritardo minimo valido tra i fotogrammi in centesimi di secondo. L'intervallo è compreso tra 0 e 6000. Il valore predefinito è 2.

max_gif_delay

Imposta il ritardo massimo valido tra i fotogrammi in centesimi di secondo. L'intervallo è compreso tra 0 e 65535. Il valore predefinito è 65535 (quasi undici minuti), il valore massimo consentito dalle specifiche.

default_delay

Imposta il ritardo predefinito tra i fotogrammi in centesimi di secondo. L'intervallo è compreso tra 0 e 6000. Il valore predefinito è 10.

ignore_loop

I file GIF possono contenere informazioni da ripetere un certo numero di volte (o all'infinito). Seignore_loopÈ impostato su 1, l'impostazione del loop dall'ingresso verrà ignorata e il loop non si verificherà. Se impostato su 0, si verificherà il looping e verrà ripetuto il numero di volte in base alla GIF. Il valore predefinito è 1.

Ad esempio, con il filtro di sovrapposizione, posiziona una GIF in loop infinito su un altro video:

ffmpeg -i input.mp4 -ignore_loop 0 -i input.gif -filter_complex overlay=shortest=1 out.mkv

Tieni presente che nell'esempio sopra l'opzione più breve per il filtro di sovrapposizione viene utilizzata per terminare il video di output alla lunghezza del file di input più breve, che in questo caso èinput.mp4Poiché la GIF in questo esempio si ripete all'infinito.

3,12 hl

Demuxer HLS

Demuxer Apple HTTP Live Streaming.

Questo demuxer presenta tutti gli AVStream da tutti i flussi varianti. Il campo id è impostato sul numero di indice della variante del bitrate. Impostando i flag di scarto su AVStreams (premendo 'a' o 'v' in ffplay), il chiamante può decidere quali varianti di flusso ricevere effettivamente. Il bitrate totale della variante a cui appartiene lo stream è disponibile in una chiave di metadati denominata "variant_bitrate".

Accetta le seguenti opzioni:

live_start_index

Indice del segmento da cui avviare i live streaming (i valori negativi partono dalla fine).

prefer_x_start

Preferisci usare #EXT-X-START se è nella playlist invece di live_start_index.

allowed_extensions

’,’ elenco separato di estensioni di file a cui hls può accedere.

max_reload

Numero massimo di tentativi di ricaricare un elenco insufficiente. Il valore predefinito è 1000.

m3u8_hold_counters

Il numero massimo di volte in cui caricare m3u8 quando si aggiorna senza nuovi segmenti. Il valore predefinito è 1000.

http_persistent

Utilizza connessioni HTTP persistenti. Applicabile solo per i flussi HTTP. Abilitato per impostazione predefinita.

http_multiple

Utilizza più connessioni HTTP per scaricare segmenti HTTP. Abilitato per impostazione predefinita per i server HTTP/1.1.

http_seekable

Utilizza le richieste parziali HTTP per scaricare segmenti HTTP. 0 = disabilita, 1 = abilita, -1 = automatico, l'impostazione predefinita è automatica.

seg_format_options

Imposta le opzioni per il demuxer dei segmenti multimediali utilizzando un elenco di coppie chiave=valore separate da :.

seg_max_retry

Numero massimo di volte per ricaricare un segmento in caso di errore, utile quando non si desidera saltare il segmento in caso di errore di rete. Il valore predefinito è 0.

3.13 immagine2

Demuxer di file immagine.

Questo demuxer legge da un elenco di file immagine specificati da un modello. La sintassi e il significato del modello sono specificati dall'opzione pattern_type.

Il modello può contenere un suffisso utilizzato per determinare automaticamente il formato delle immagini contenute nei file.

La dimensione, il formato in pixel e il formato di ciascuna immagine devono essere gli stessi per tutti i file della sequenza.

Questo demuxer accetta le seguenti opzioni:

framerate

Imposta la frequenza fotogrammi per il flusso video. Il valore predefinito è 25.

loop

Se impostato su 1, esegue il loop sull'ingresso. Il valore predefinito è 0.

pattern_type

Seleziona il tipo di pattern utilizzato per interpretare il nome file fornito.

Pattern_type accetta uno dei seguenti valori.

none

Disabilita la corrispondenza dei modelli, quindi il video conterrà solo l'immagine specificata. Dovresti utilizzare questa opzione se non desideri creare sequenze da più immagini e i nomi dei file potrebbero contenere caratteri di pattern speciali.

sequence

Seleziona un tipo di modello di sequenza, utilizzato per specificare una sequenza di file indicizzati da numeri sequenziali.

Un modello di sequenza può contenere la stringa "%d" o "%0Nd", che specifica la posizione dei caratteri che rappresentano un numero sequenziale in ciascun nome di file corrispondente al modello. Se viene utilizzata la forma "%d0Nd", la stringa che rappresenta il numero in ciascun nome file è completata da 0 e N è il numero totale di cifre completate da 0 che rappresentano il numero. Il carattere letterale '%' può essere specificato nel modello con la stringa "%%".

Se il modello di sequenza contiene "%d" o "%0Nd", il primo nome file dell'elenco di file specificato dal modello deve contenere un numero incluso compreso tra numero_iniziale e numero_iniziale+intervallo_numeri_iniziali-1 e tutti i numeri successivi devono essere sequenziali.

Ad esempio, il modello "img-%03d.bmp" corrisponderà a una sequenza di nomi di file nella forma img-001.bmp, img-002.bmp, ..., img-010.bmp, ecc.; il modello "i%%m%%g-%d.jpg" corrisponderà a una sequenza di nomi di file nel formato i%m%g-1.jpg, i%m%g-2.jpg, ..., i %m%g-10.jpg, ecc.

Tieni presente che il pattern non deve necessariamente contenere "%d" o "%0Nd", ad esempio per convertire un singolo file immagine img.jpeg puoi utilizzare il comando:ffmpeg -i img.jpeg img.png

glob

Seleziona un tipo di modello di caratteri jolly glob.

Il modello viene interpretato come un modello glob(). Questo è selezionabile solo se libavformat è stato compilato con il supporto globbing.

glob_sequence (deprecated, will be removed)

Seleziona un modello di sequenza/carattere glob misto.

Se la tua versione di libavformat è stata compilata con il supporto globbing e il modello fornito contiene almeno un metacarattere glob tra %*?[]{} preceduto da un "%" senza caratteri di escape, il modello viene interpretato come un modello glob() , altrimenti viene interpretato come un modello di sequenza.

Tutti i caratteri speciali glob %*?[]{} devono avere il prefisso "%". Per sfuggire a un "%" letterale è necessario utilizzare "%%".

Ad esempio, il modello foo-%*.jpeg corrisponderà a tutti i nomi di file con il prefisso "foo-" e che terminano con ".jpeg", e foo-%?%?%?.jpeg corrisponderà a tutti i nomi di file con il prefisso "foo- ", seguito da una sequenza di tre caratteri e terminante con ".jpeg".

Questo tipo di modello è deprecato a favore di glob e sequenza.

Il valore predefinito è glob_sequence.

pixel_format

Imposta il formato pixel delle immagini da leggere. Se non specificato, il formato pixel viene ricavato dal primo file immagine nella sequenza.

start_number

Imposta l'indice del file corrispondente al modello del file immagine da cui iniziare la lettura. Il valore predefinito è 0.

start_number_range

Imposta l'intervallo dell'indice da controllare quando si cerca il primo file immagine nella sequenza, a partire da start_number. Il valore predefinito è 5.

ts_from_file

Se impostato su 1, imposterà il timestamp del fotogramma sull'ora di modifica del file immagine. Tieni presente che la monotonia dei timestamp non è fornita: le immagini vanno nello stesso ordine come senza questa opzione. Il valore predefinito è 0. Se impostato su 2, imposterà il timestamp del fotogramma sul tempo di modifica del file immagine con precisione al nanosecondo.

video_size

Imposta la dimensione video delle immagini da leggere. Se non specificato, la dimensione del video viene ricavata dal primo file immagine nella sequenza.

export_path_metadata

Se impostato su 1, aggiungerà due campi extra ai metadati trovati in input, rendendoli disponibili anche per altri filtri (vedi filtro drawtext per esempi). Il valore predefinito è 0. I campi aggiuntivi sono descritti di seguito:

lavf.image2dec.source_path

Corrisponde al percorso completo del file di input da leggere.

lavf.image2dec.source_basename

Corrisponde al nome del file letto.

3.13.1 Esempi

  • Utilizza ffmpeg per creare un video dalle immagini nella sequenza di file img-001.jpeg, img-002.jpeg, ..., presupponendo una frequenza fotogrammi di input di 10 fotogrammi al secondo:ffmpeg -framerate 10 -i 'img-%03d.jpeg' out.mkv
  • Come sopra, ma inizia leggendo da un file con indice 100 nella sequenza:ffmpeg -framerate 10 -start_number 100 -i 'img-%03d.jpeg' out.mkv
  • Legge le immagini che corrispondono al pattern glob "*.png", ovvero tutti i file che terminano con il suffisso ".png":ffmpeg -framerate 10 -pattern_type glob -i "*.png" out.mkv

3.14libgme

La libreria Game Music Emu è una raccolta di emulatori di file musicali per videogiochi.

Vedi https://bitbucket.org/mpyne/game-music-emu/overview per ulteriori informazioni.

Accetta le seguenti opzioni:

track_index

Imposta l'indice della traccia da demuxare. Il demuxer può esportare solo una traccia. Gli indici delle tracce iniziano da 0. L'impostazione predefinita è scegliere la prima traccia. Il numero di tracce viene esportato come voce di metadati delle tracce.

sample_rate

Imposta la frequenza di campionamento della traccia esportata. L'intervallo è compreso tra 1000 e 999999. Il valore predefinito è 44100.

max_size (bytes)

Il demuxer bufferizza l'intero file in memoria. Regola questo valore per impostare la dimensione massima del buffer, che a sua volta funge da limite massimo per la dimensione dei file che possono essere letti. L'impostazione predefinita è 50 MiB.

3.15 libmodplug

Demuxer di moduli basato su ModPlug

Vedi https://github.com/Konstanty/libmodplug

Esporterà un flusso audio a 2 canali a 16 bit 44,1 kHz. Facoltativamente, è possibile esportare un flusso video pal8 a 16 colori con o senza metadati stampati.

Accetta le seguenti opzioni:

noise_reduction

Applicare un semplice filtro passa-basso. Può essere 1 (acceso) o 0 (spento). L'impostazione predefinita è 0.

reverb_depth

Imposta la quantità di riverbero. Intervallo 0-100. L'impostazione predefinita è 0.

reverb_delay

Imposta il ritardo in ms, limitato a 40-250 ms. L'impostazione predefinita è 0.

bass_amount

Applica l'espansione dei bassi, ovvero XBass o megabass. L'intervallo è compreso tra 0 (basso) e 100 (alto). L'impostazione predefinita è 0.

bass_range

Imposta il limite superiore, ovvero il limite superiore, per le frequenze dei bassi. La gamma è 10-100 Hz. L'impostazione predefinita è 0.

surround_depth

Applicare un effetto surround Dolby Pro-Logic. L'intervallo è compreso tra 0 (silenzioso) e 100 (pesante). L'impostazione predefinita è 0.

surround_delay

Imposta il ritardo surround in ms, limitato a 5-40 ms. L'impostazione predefinita è 0.

max_size

Il demuxer bufferizza l'intero file in memoria. Regola questo valore per impostare la dimensione massima del buffer, che a sua volta funge da limite massimo per la dimensione dei file che possono essere letti. L'intervallo è compreso tra 0 e 100 MiB. 0 rimuove il limite della dimensione del buffer (non consigliato). L'impostazione predefinita è 5 MiB.

video_stream_expr

Stringa che viene valutata utilizzando l'API eval per assegnare colori al flusso video generato. Le variabili che possono essere utilizzate sono x, y, w, h, t, velocità, tempo, ordine, pattern e riga.

video_stream

Genera flusso video. Può essere 1 (acceso) o 0 (spento). L'impostazione predefinita è 0.

video_stream_w

Imposta la larghezza del fotogramma video in "caratteri" dove un carattere indica 8 pixel. L'intervallo è 20-512. L'impostazione predefinita è 30.

video_stream_h

Imposta l'altezza del fotogramma video in "caratteri" dove un carattere indica 8 pixel. L'intervallo è 20-512. L'impostazione predefinita è 30.

video_stream_ptxt

Stampa i metadati sul flusso video. Include velocità, tempo, ordine, pattern, riga e ts (tempo in ms). Può essere 1 (acceso) o 0 (spento). L'impostazione predefinita è 1.

3.16libopenmpt

Demuxer di moduli basato su libopenmpt

Vedi https://lib.openmpt.org/libopenmpt/ per ulteriori informazioni.

Alcuni file hanno più sottobrani (tracce), che possono essere impostati con il filesubsongOpzione.

Accetta le seguenti opzioni:

subsong

Imposta l'indice della sottocanzone. Può essere "all", "auto" o l'indice del sottobrano. Gli indici dei brani secondari iniziano da 0. Il valore predefinito è 'auto'.

Il valore predefinito è lasciare che libopenmpt scelga.

layout

Imposta il layout del canale. I valori validi sono i layout a 1, 2 e 4 canali. Il valore predefinito è STEREO.

sample_rate

Imposta la frequenza di campionamento per libopenmpt sull'output. L'intervallo è compreso tra 1000 e INT_MAX. Il valore predefinito è 48000.

3.17mov/mp4/3gp

Demuxer per formato file Quicktime e formato file multimediale di base ISO/IEC (ISO/IEC 14496-12 o MPEG-4 Parte 12, ISO/IEC 15444-12 o JPEG 2000 Parte 12).

Estensioni registrate: mov, mp4, m4a, 3gp, 3g2, mj2, psp, m4b, ism, ismv, isma, f4v

3.17.1 Opzioni

Questo demuxer accetta le seguenti opzioni:

enable_drefs

Abilita il caricamento di tracce esterne, disabilitato per impostazione predefinita. Abilitare questa opzione può teoricamente far trapelare informazioni in alcuni casi d'uso.

use_absolute_path

Consente il caricamento di tracce esterne tramite percorsi assoluti, disabilitati per impostazione predefinita. Abilitarlo comporta un rischio per la sicurezza. Dovrebbe essere abilitato solo se è noto che la fonte non è dannosa.

seek_streams_individually

Durante la ricerca, identificare individualmente il punto più vicino in ciascun flusso e demuxare i pacchetti in quel flusso dal punto identificato. Ciò può portare a una diversa sequenza di pacchetti rispetto al demuxing lineare dall'inizio. L'impostazione predefinita è vera.

ignore_editlist

Ignora eventuali atomi dell'elenco di modifica. Il demuxer, per impostazione predefinita, modifica l'indice del flusso per riflettere la sequenza temporale descritta dall'elenco di modifica. L'impostazione predefinita è falsa.

advanced_editlist

Modifica l'indice del flusso in modo che rifletta la sequenza temporale descritta dall'elenco di modifica. ignore_editlist deve essere impostato su false affinché questa opzione sia effettiva. Se sia ignore_editlist che questa opzione sono impostati su false, solo l'inizio dell'indice del flusso viene modificato per riflettere il tempo di permanenza iniziale o il timestamp di inizio descritto dall'elenco di modifica. L'impostazione predefinita è vera.

ignore_chapters

Non analizzare i capitoli. Ciò include tag/momenti GoPro "HiLight". Tieni presente che i capitoli vengono analizzati solo quando l'input è ricercabile. L'impostazione predefinita è falsa.

use_mfra_for

Per l'input frammentato ricercabile, imposta il timestamp iniziale del frammento dalla casella di accesso casuale del frammento multimediale, se presente.

Sono disponibili le seguenti opzioni:

auto

Rileva automaticamente se impostare i timestamp mfra come PTS o DTS (impostazione predefinita)

dts

Imposta i timestamp mfra come DTS

pts

Imposta i timestamp di mfra come PTS

0

Non utilizzare la casella mfra per impostare i timestamp

use_tfdt

Per l'input frammentato, imposta il timestamp iniziale del frammento su baseMediaDecodeTime dalla casella tfdt. Per impostazione predefinita è abilitato, che preferirà utilizzare la casella tfdt per impostare DTS. Disabilita l'utilizzo del early_presentation_time dalla casella sidx. In entrambi i casi, verrà utilizzato il timestamp della casella mfra se disponibile e use_mfra_for è impostato su pts o dts.

export_all

Esporta caselle non riconosciute all'interno della casella udta come voci di metadati. I primi quattro caratteri del tipo di casella vengono impostati come chiave. L'impostazione predefinita è falsa.

export_xmp

Esporta l'intero contenuto della casella XMP_ e della casella uuid come una stringa con la chiave xmp. Tieni presente che se export_all è impostato e questa opzione non lo è, il contenuto della casella XMP_ viene comunque esportato ma con la chiave XMP_. L'impostazione predefinita è falsa.

activation_bytes

Chiave da 4 byte necessaria per decrittografare i file Audible AAX e AAX+. Vedere la sottosezione Audible AAX di seguito.

audible_fixed_key

Chiave fissa utilizzata per gestire i file Audible AAX/AAX+. È stato preimpostato quindi non dovrebbe essere necessario specificarlo.

decryption_key

Chiave da 16 byte, in formato esadecimale, per decrittografare i file crittografati utilizzando la crittografia comune ISO (CENC/AES-128 CTR; ISO/IEC 23001-7).

max_stts_delta

Occasionalmente possono essere intesi delta di esempio molto elevati scritti nella casella stts di un trak, ma di solito vengono scritti per errore o utilizzati per memorizzare un valore negativo per la correzione dts quando trattati come interi a 32 bit con segno. Questa opzione consente all'utente di impostare un limite superiore, oltre il quale il delta viene bloccato a 1. I valori maggiori del limite se negativi quando vengono trasmessi a int32 vengono utilizzati per regolare i dts successivi.

L'unità è la scala temporale della traccia. L'intervallo è compreso tra 0 e UINT_MAX. L'impostazione predefinita è UINT_MAX - 48000*10 che consente una correzione dts fino a 10 secondi per flussi audio a 48 kHz soddisfacendo il 99,9% dell'intervallo uint32.

interleaved_read

Interlaccia i pacchetti da più tracce a livello di demuxer. Per i file con interlacciamento errato, ciò previene problemi di riproduzione causati da ampi divari tra i pacchetti in tracce diverse, poiché MOV/MP4 non hanno requisiti di posizionamento dei pacchetti. Tuttavia, ciò può causare una ricerca eccessiva su file con interlacciamento molto errato, a causa della ricerca tra le tracce, quindi disabilitarla potrebbe prevenire problemi di I/O, a scapito della riproduzione.

3.17.2 AAX sonoro

I file Audible AAX sono file M4B crittografati e possono essere decrittografati specificando un segreto di attivazione di 4 byte.

ffmpeg -activation_bytes 1CEB00DA -i test.aax -vn -c:a copy output.mp4

3,18 mpeg

Demuxer del flusso di trasporto MPEG-2.

Questo demuxer accetta le seguenti opzioni:

resync_size

Imposta il limite di dimensione per la ricerca di una nuova sincronizzazione. Il valore predefinito è 65536.

skip_unknown_pmt

Salta PMT per programmi non definiti nel PAT. Il valore predefinito è 0.

fix_teletext_pts

Sostituisce i valori PTS e DTS del pacchetto televideo con i timestamp calcolati dalla PCR del primo programma di cui fa parte il flusso televideo e non viene scartato. Il valore predefinito è 1, impostare questa opzione su 0 se si desidera che i valori PTS e DTS del pacchetto televideo non vengano modificati.

ts_packetsize

Opzione di output che trasporta la dimensione del pacchetto non elaborato in byte. Mostra la dimensione del pacchetto raw rilevato, non può essere impostata dall'utente.

scan_all_pmts

Scansiona e combina tutti i PMT. Il valore è un numero intero con valore compreso tra -1 e 1 (-1 significa impostazione automatica, 1 significa abilitato, 0 significa disabilitato). Il valore predefinito è -1.

merge_pmt_versions

Riutilizza i flussi esistenti quando la versione di PMT viene aggiornata e i flussi elementari vengono spostati su PID diversi. Il valore predefinito è 0.

max_packet_size

Imposta la dimensione massima, in byte, del pacchetto emesso dal demuxer. I carichi utili superiori a questa dimensione vengono suddivisi su più pacchetti. L'intervallo è compreso tra 1 e INT_MAX/2. Il valore predefinito è 204800 byte.

3,19 mpjpeg

MJPEG incapsulato in un demuxer MIME multiparte.

Questo demuxer consente la lettura di MJPEG, dove ciascun fotogramma è rappresentato come parte di un flusso multipart/x-mixed-replace.

strict_mime_boundary

L'implementazione predefinita applica uno standard rilassato al rilevamento dei limiti MIME in più parti, per impedire la regressione con numerosi endpoint esistenti che non generano un flusso MIME MJPEG corretto. Attivando questa opzione impostandola su 1 si otterrà un controllo più rigoroso del valore limite.

3.20 video grezzo

Demuxer video grezzo.

Questo demuxer consente di leggere i dati video grezzi. Poiché non esiste un'intestazione che specifichi i parametri video assunti, l'utente deve specificarli per poter decodificare correttamente i dati.

Questo demuxer accetta le seguenti opzioni:

framerate

Imposta la frequenza dei fotogrammi del video in ingresso. Il valore predefinito è 25.

pixel_format

Imposta il formato pixel del video in ingresso. Il valore predefinito è yuv420p.

video_size

Imposta la dimensione del video in ingresso. Questo valore deve essere specificato esplicitamente.

Ad esempio per leggere un file rawvideoinput.rawCon ffplay, presupponendo un formato pixel rgb24, una dimensione video di 320x240 e un frame rate di 10 immagini al secondo, utilizzare il comando:

ffplay -f rawvideo -pixel_format rgb24 -video_size 320x240 -framerate 10 input.raw

3,21 rcwt

RCWT (Raw Captions With Time) è un formato nativo di ccextractor, uno strumento open source comunemente utilizzato per l'elaborazione di sorgenti di sottotitoli chiusi (CC) 608/708. Per ulteriori informazioni sul formato, vedere (ffmpeg-formats)rcwtenc.

Questo demuxer implementa la specifica a partire da marzo 2024, che è rimasta stabile e invariata da aprile 2014.

3.21.1 Esempi

  • Renderizza CC in ASS utilizzando il decodificatore integrato:
  • Converti un backup RCWT nel formato Scenarist (SCC):

3,22 sb

Demuxer di script SBaGen.

Questo demuxer legge il linguaggio di script utilizzato da SBaGen http://uazu.net/sbagen/ per generare sessioni di battiti binaurali. Uno script SBG è simile al seguente:

-SE
a: 300-2.5/3 440+4.5/0
b: 300-2.5/0 440+4.5/3
off: -
NOW      == a
+0:07:00 == b
+0:14:00 == a
+0:21:00 == b
+0:30:00    off

Uno script SBG può combinare timestamp assoluti e relativi. Se lo script utilizza solo timestamp assoluti (inclusa l'ora di inizio dello script) o solo relativi, il suo layout è fisso e la conversione è semplice. D'altra parte, se lo script combina entrambi i tipi di timestamp, il riferimento ADESSO per i timestamp relativi verrà preso dall'ora del giorno corrente nel momento in cui lo script viene letto e il layout dello script verrà congelato in base a quel riferimento. Ciò significa che se lo script viene riprodotto direttamente, i tempi effettivi corrisponderanno ai timestamp assoluti fino alla precisione dell'orologio del controller del suono, ma se l'utente in qualche modo mette in pausa la riproduzione o effettua la ricerca, tutti i tempi verranno spostati di conseguenza.

3.23 tedcaptions

Sottotitoli JSON utilizzati per i TED Talks.

TED non fornisce collegamenti alle didascalie, ma è possibile intuirle dalla pagina. Il file tools/bookmarklets.html dall'albero dei sorgenti di FFmpeg contiene un bookmarklet per esporli.

Questo demuxer accetta la seguente opzione:

start_time

Imposta l'ora di inizio della conferenza TED, in millisecondi. Il valore predefinito è 15000 (15 s). Viene utilizzato per sincronizzare i sottotitoli con i video scaricabili, poiché includono un'introduzione di 15 secondi.

Esempio: converti i sottotitoli in un formato comprensibile alla maggior parte dei giocatori:

ffmpeg -i http://www.ted.com/talks/subtitles/id/1/lang/en talk1-en.srt

3.24 vaporsintetico

Involucro di vaporynth.

Per motivi di sicurezza, gli script Vapoursynth non verranno rilevati automaticamente, quindi il formato di input dovrà essere forzato. Per gli strumenti CLI ff*, aggiungi -f vapoursynth prima dell'input -i yourscript.vpy.

Questo demuxer accetta la seguente opzione:

max_script_size

Il demuxer bufferizza l'intero script in memoria. Regola questo valore per impostare la dimensione massima del buffer, che a sua volta funge da limite massimo per la dimensione degli script che possono essere letti. L'impostazione predefinita è 1 MiB.

3.25 w64

Demuxatore audio Sony Wave64.

Questo demuxer accetta le seguenti opzioni:

max_size

Vedi la stessa opzione per il demuxer wav.

3,26 ond

Demuxer RIFF Wave Audio.

Questo demuxer accetta le seguenti opzioni:

max_size

Specificare la dimensione massima del pacchetto in byte per i pacchetti demux. Per impostazione predefinita è impostato su 0, il che significa che viene scelto un valore ragionevole in base al formato di input.

4 Muxer

I muxer sono elementi configurati in FFmpeg che consentono di scrivere flussi multimediali su un particolare tipo di file.

Quando configuri la build di FFmpeg, tutti i muxer supportati sono abilitati per impostazione predefinita. Puoi elencare tutti i muxer disponibili utilizzando l'opzione di configurazione --list-muxers.

È possibile disabilitare tutti i muxer con l'opzione di configurazione --disable-muxers e abilitare/disabilitare selettivamente singoli muxer con le opzioni --enable-muxer=MUXER / --disable-muxer=MUXER.

L'opzione -muxers degli strumenti ff* mostrerà l'elenco dei muxer abilitati. Utilizzare -formats per visualizzare un elenco combinato di demuxer e muxer abilitati.

Segue una descrizione di alcuni dei muxer attualmente disponibili.

4.1 Muxer grezzi

Questa sezione riguarda i muxer grezzi. Accettano un singolo flusso corrispondente al codec designato. Non memorizzano timestamp o metadati. L'estensione riconosciuta è la stessa del nome del muxer se non diversamente indicato.

Comprende i seguenti muxer. Vengono inoltre visualizzati il tipo di media e le eventuali estensioni utilizzate per selezionare automaticamente il muxer dalle estensioni di output.

ac3 audio

Dolby Digital, noto anche come AC-3.

adx audio

Audio ADX del middleware CRI.

Questo muxer scriverà il conteggio totale dei campioni vicino all'inizio del primo pacchetto quando l'output è ricercabile e il conteggio può essere memorizzato in 32 bit.

aptx audio

AptX (tecnologia di elaborazione audio per Bluetooth)

aptx_hd audio (aptxdh)

Audio aptX HD (tecnologia di elaborazione audio per Bluetooth).

avs2 video (avs, avs2)

AVS2-P2 (standard audio video - Seconda generazione - Parte 2) / video IEEE 1857.4

avs3 video (avs3)

AVS3-P2 (standard audio video - Terza generazione - Parte 2) / video IEEE 1857.10

cavsvideo video (cavs)

AVS cinese (standard audio video - prima generazione)

codec2raw audio

Audio codec2.

Nessuna estensione è registrata, quindi è necessario fornire il nome del formato, ad es. con lo strumento CLI ffmpeg -f codec2raw.

data any

Muxer di dati generico.

Questo muxer accetta un singolo flusso con qualsiasi codec di qualsiasi tipo. Il flusso di input deve essere selezionato utilizzando l'opzione -map con lo strumento CLI ffmpeg.

Nessuna estensione è registrata, quindi è necessario fornire il nome del formato, ad es. con lo strumento CLI ffmpeg -f data.

dfpwm audio (dfpwm)

Muxer audio Raw DFPWM1a (Dynamic Filter Pulse With Modulation).

dirac video (drc, vc2)

Video della BBC Dirac.

Il codec Dirac Pro è un sottoinsieme ed è standardizzato come SMPTE VC-2.

dnxhd video (dnxhd, dnxhr)

Video avido DNxHD.

È standardizzato come SMPTE VC-3. Accetta flussi DNxHR.

dts audio

Audio DTS Coherent Acoustics (DCA).

eac3 audio

Dolby Digital Plus, noto anche come Enhanced AC-3

evc video (evc)

MPEG-5 Essential Video Coding (EVC) / EVC / MPEG-5 Parte 1 Video EVC

g722 audio

Audio ITU-T G.722

g723_1 audio (tco, rco)

Audio ITU-T G.723.1

g726 audio

Audio big-endian ITU-T G.726 ("giustificato a sinistra").

Nessuna estensione è registrata, quindi è necessario fornire il nome del formato, ad es. con lo strumento CLI ffmpeg -f g726.

g726le audio

Audio little-endian ITU-T G.726 ("giustificato a destra").

Nessuna estensione è registrata, quindi è necessario fornire il nome del formato, ad es. con lo strumento CLI ffmpeg -f g726le.

gsm audio

Sistema globale per l'audio delle comunicazioni mobili

h261 video

Video ITU-T H.261

h263 video

ITU-T H.263 / H.263-1996, H.263+ / H.263-1998 / H.263 versione 2 video

h264 video (h264, 264)

Video AVC ITU-T H.264 / MPEG-4 Parte 10. Bitstream verrà convertito nella sintassi dell'allegato B se è in modalità con prefisso di lunghezza.

hevc video (hevc, h265, 265)

Video HEVC ITU-T H.265/MPEG-H Parte 2. Bitstream verrà convertito nella sintassi dell'allegato B se è in modalità con prefisso di lunghezza.

m4v video

Video MPEG-4 Parte 2

mjpeg video (mjpg, mjpeg)

Video JPEG in movimento

mlp audio

Meridian Lossless Packing, noto anche come Packed PCM

mp2 audio (mp2, m2a, mpa)

Audio MPEG-1 Livello II

mpeg1video video (mpg, mpeg, m1v)

Video MPEG-1 Parte 2.

mpeg2video video (m2v)

Video ITU-T H.262 / MPEG-2 Parte 2

obu video

AV1 muxer Open Bitstream Units a basso costo.

Le OBU delimitatrici temporali verranno inserite in tutte le unità temporali del flusso.

rawvideo video (yuv, rgb)

Video grezzo non compresso.

sbc audio (sbc, msbc)

Audio codec sottobanda Bluetooth SIG a bassa complessità

truehd audio (thd)

Audio Dolby TrueHD

vc1 video

Video SMPTE 421M/VC-1

4.1.1 Esempi

  • Memorizza fotogrammi video non elaborati con il muxer "rawvideo" utilizzando ffmpeg:ffmpeg -f lavfi -i testsrc -t 10 -s hd1080p testsrc.yuvPoiché il muxer rawvideo non memorizza le informazioni relative alla dimensione e al formato, queste informazioni devono essere fornite durante il demux del file:ffplay -video_size 1920x1080 -pixel_format rgb24 -f rawvideo testsrc.rgb

4.2 Muxer PCM grezzi

Questa sezione tratta i muxer audio PCM (Pulse-Code Modulation) grezzi.

Accettano un singolo flusso corrispondente al codec designato. Non memorizzano timestamp o metadati. L'estensione riconosciuta è la stessa del nome del muxer.

Comprende i seguenti muxer. Tra parentesi viene mostrata anche l'estensione aggiuntiva opzionale utilizzata per selezionare automaticamente il muxer dall'estensione di uscita.

alaw (al)

Legge A del PCM

f32be

PCM big-endian in virgola mobile a 32 bit

f32le

Little-endian in virgola mobile PCM a 32 bit

f64be

PCM big-endian in virgola mobile a 64 bit

f64le

Little Endian in virgola mobile PCM a 64 bit

mulaw (ul)

Legge mu PCM

s16be

PCM firmato big-endian a 16 bit

s16le

PCM firmato little-endian a 16 bit

s24be

PCM firmato big-endian a 24 bit

s24le

PCM firmato little-endian a 24 bit

s32be

PCM firmato big-endian a 32 bit

s32le

PCM firmato little-endian a 32 bit

s8 (sb)

PCM firmato a 8 bit

u16be

PCM big-endian a 16 bit senza segno

u16le

PCM little-endian a 16 bit senza segno

u24be

PCM big-endian a 24 bit senza segno

u24le

PCM little-endian a 24 bit senza segno

u32be

PCM big-endian a 32 bit senza segno

u32le

PCM little-endian a 32 bit senza segno

u8 (ub)

PCM a 8 bit senza segno

vidc

PCM Archimede VIDC

4.3 Muxer di streaming di programmi MPEG-1/MPEG-2

Questa sezione copre i formati appartenenti alla famiglia dei sistemi MPEG-1 e MPEG-2.

Il formato MPEG-1 Systems (noto anche come ISO/IEEC 11172-1 o flusso di programma MPEG-1) è stato adottato per il formato della traccia multimediale memorizzata in VCD (Video Compact Disc).

Lo standard MPEG-2 Systems (noto anche come ISO/IEEC 13818-1) copre due formati contenitori, uno noto come flusso di trasporto e uno noto come flusso di programma; solo quest'ultimo è trattato qui.

Il formato del flusso di programma MPEG-2 (noto anche come VOB per la corrispondente estensione del file) è un'estensione del flusso di programma MPEG-1: oltre a supportare diversi codec per i flussi audio e video, memorizza anche i sottotitoli e i metadati di navigazione. Il flusso di programma MPEG-2 è stato adottato per archiviare flussi multimediali in dispositivi di archiviazione SVCD e DVD.

Questa sezione comprende i seguenti muxer.

mpeg (mpg,mpeg)

Sistemi MPEG-1 / Muxer dello streaming di programmi MPEG-1.

vcd

Muxer MPEG-1 Systems/MPEG-1 program stream (VCD).

Questo muxer può essere utilizzato per generare tracce nel formato accettato dai dispositivi di memorizzazione VCD (Video Compact Disc).

È lo stesso del 'mpeg' muxer con alcune differenze.

vob

Muxer di streaming di programmi MPEG-2 (VOB).

dvd

Muxer del flusso di programmi MPEG-2 (DVD VOB).

Questo muxer può essere utilizzato per generare tracce nel formato accettato dai dispositivi di archiviazione DVD (Digital Versatile Disc).

Questo è lo stesso del 'vob' muxer con alcune differenze.

svcd (vob)

Muxer del flusso di programma MPEG-2 (SVCD VOB).

Questo muxer può essere utilizzato per generare tracce nel formato accettato dai dispositivi di memorizzazione SVCD (Super Video Compact Disc).

Questo è lo stesso del 'vob' muxer con alcune differenze.

4.3.1 Opzioni

muxrate rate

Imposta la velocità mux definita dall'utente espressa in numero di bit/s. Se non specificato, viene utilizzato il tasso mux calcolato automaticamente. Il valore predefinito è 0.

preload delay

Imposta il ritardo iniziale della decodifica demux in microsecondi. Il valore predefinito è 500000.

4.4 Muxer MOV/MPEG-4/ISOMBFF

Questa sezione copre i formati appartenenti alla famiglia QuickTime/MOV, incluso il formato MPEG-4 Parte 14 e il formato file multimediale di base ISO (ISOBMFF). Questi formati condividono una struttura comune basata sul formato file multimediale di base ISO (ISOBMFF).

Il formato MOV è stato originariamente sviluppato per l'utilizzo con Apple QuickTime. Successivamente è stato utilizzato come base per il formato MPEG-4 Parte 1 (poi Parte 14), noto anche come ISO/IEC 14496-1. Quel formato è stato poi generalizzato in ISOBMFF, chiamato anche formato MPEG-4 Parte 12, ISO/IEC 14496-12 o ISO/IEC 15444-12.

Comprende i seguenti muxer.

3gp

Formato Third Generation Partnership Project (3GPP) per servizi multimediali 3G UMTS

3g2

Formato Third Generation Partnership Project 2 (3GP2 o 3GPP2) per servizi multimediali 3G CDMA2000, simile a '3gp’ con estensioni e limitazioni

f4v

Formato videoAdobe Flash

ipod

Formato file audio MPEG-4, come MOV/MP4 ma limitato a contenere solo flussi audio, generalmente riprodotto con il dispositivo iPod Apple

ismv

Formato Microsoft IIS (Internet Information Services) Smooth Streaming Audio/Video (ISMV o ISMA). Si basa sul formato MPEG-4 Parte 14 con alcune varianti incompatibili, utilizzato per lo streaming di file multimediali per il server Microsoft IIS.

mov

Formato player QuickTime identificato dall'estensione .mov

mp4

Formato MP4 o MPEG-4 Parte 14

psp

Variante del formato PlayStation Portable MP4/MPEG-4 Parte 14. Si basa sul formato MPEG-4 Parte 14 con alcune varianti incompatibili, utilizzato per riprodurre file sui dispositivi PlayStation.

4.4.1 Frammentazione

IL 'mov', 'mp4', E 'ismvI muxer supportano la frammentazione. Normalmente, un file MOV/MP4 contiene tutti i metadati di tutti i pacchetti archiviati in un'unica posizione.

Questi dati vengono solitamente scritti alla fine del file, ma possono essere spostati all'inizio per una migliore riproduzione aggiungendo +faststart a -movflags o utilizzando lo strumento qt-faststart).

Un file frammentato è costituito da una serie di frammenti, in cui i pacchetti e i relativi metadati vengono archiviati insieme. Scrivere un file frammentato ha il vantaggio che il file è decodificabile anche se la scrittura viene interrotta (mentre un normale MOV/MP4 è indecodificabile se non è finito correttamente), e richiede meno memoria quando si scrivono file molto lunghi (poiché scrivere normali MOV /MP4 memorizza le informazioni su ogni singolo pacchetto in memoria finché il file non viene chiuso). Lo svantaggio è che è meno compatibile con altre applicazioni.

La frammentazione viene abilitata impostando una delle opzioni che definiscono come tagliare il file in frammenti:

frag_duration
frag_size
min_frag_duration
movflags +frag_keyframe
movflags +frag_custom

Se viene specificata più di una condizione, i frammenti vengono tagliati quando viene soddisfatta una delle condizioni specificate. L'eccezione a questa è l'opzionemin_frag_duration, che deve essere soddisfatta affinché si applichi una qualsiasi delle altre condizioni.

4.4.2 Opzioni

brand brand_string

Sostituisci il marchio principale.

empty_hdlr_name bool

Abilita per saltare la scrittura del nome all'interno di una casella hdlr. L'impostazione predefinita è falsa.

encryption_key key

Impostare la chiave di crittografia multimediale in formato esadecimale

encryption_kid kid

Impostare l'identificatore della chiave di crittografia multimediale in formato esadecimale

encryption_scheme scheme

Configurare lo schema di crittografia, i valori consentiti sono "none" e "cenc-aes-ctr"

frag_duration duration

Crea frammenti della durata di microsecondi.

frag_interleave number

Interlaccia i campioni all'interno dei frammenti (numero massimo di campioni consecutivi, inferiore è l'interlacciamento più stretto, ma con più sovraccarico. È impostato su 0 per impostazione predefinita.

frag_size size

Creare frammenti che contengono fino a dimensioni di byte di dati di payload

iods_audio_profile profile

Specificare il numero di iod per l'atom del profilo audio (da -1 a 255), il valore predefinito è -1

iods_video_profile profile

Specificare il numero di iod per l'atomo del profilo video (da -1 a 255), il valore predefinito è -1

ism_lookahead num_entries

Specificare il numero di voci lookahead per i file ISM (da 0 a 255), il valore predefinito è 0

min_frag_duration duration

Non creare frammenti di durata inferiore ai microsecondi

moov_size bytes

Riserva spazio per l'atomo moov all'inizio del file invece di posizionare l'atomo moov alla fine. Se lo spazio riservato è insufficiente, il multiplexing fallirà.

mov_gamma gamma

Specifica il valore gamma per gama atom (come numero decimale da 0 a 10), il valore predefinito è 0.0, deve essere impostato insieme a + movflags

movflags flags

Imposta vari interruttori di muxing. È possibile utilizzare i seguenti flag:

cmaf

Scrivere output MP4 frammentato compatibile con CMAF (Common Media Application Format).

dash

Scrivere output MP4 frammentato compatibile con DASH (Dynamic Adaptive Streaming over HTTP).

default_base_moof

Analogamente al flag "omit_tfhd_offset", questo flag evita di scrivere il campo base_data_offset assoluto negli atomi tfhd, ma lo fa utilizzando invece il nuovo flag default-base-is-moof. Questa bandiera è nuova da 14496-12:2012. Ciò potrebbe rendere i frammenti più facili da analizzare in determinate circostanze (evitando di basare i calcoli sulla posizione del frammento di traccia sull'estremità implicita del frammento di traccia precedente).

delay_moov

Ritardare la scrittura del moov iniziale finché il primo frammento non viene tagliato o finché il primo frammento non viene scaricato

disable_chpl

Disabilita i marcatori di capitolo di Nero (chpl atom). Normalmente, nel file vengono scritti sia i capitoli Nero che una traccia capitolo QuickTime. Con questa opzione impostata, verrà scritta solo la traccia del capitolo QuickTime. I capitoli di Nero possono causare errori quando il file viene rielaborato con alcuni programmi di tag, come mp3Tag 2.61a e iTunes 11.3; molto probabilmente anche altre versioni sono interessate.

faststart

Esegui un secondo passaggio spostando l'indice (moov atom) all'inizio del file. Questa operazione può richiedere del tempo e non funzionerà in varie situazioni come l'output frammentato, quindi non è abilitata per impostazione predefinita.

frag_custom

Consenti al chiamante di scegliere manualmente quando tagliare i frammenti, chiamando av_write_frame(ctx, NULL) per scrivere un frammento con i pacchetti scritti finora. (Questo è utile solo con altre applicazioni che integrano libavformat, non con ffmpeg.)

frag_discont

Segnalano che il frammento successivo è discontinuo rispetto a quelli precedenti

frag_every_frame

Frammento ad ogni fotogramma

frag_keyframe

Inizia un nuovo frammento in ogni fotogramma chiave del video

global_sidx

Scrivere un indice sidx globale all'inizio del file

isml

Creare un feed live streaming fluido (da inviare a un punto di pubblicazione)

negative_cts_offsets

Abilita l'utilizzo della versione 1 della casella CTTS, in cui gli offset CTS possono essere negativi. Ciò consente al campione iniziale di avere DTS/CTS pari a zero e riduce la necessità di elenchi di modifica per alcuni casi come le tracce video con fotogrammi B. Inoltre, facilita la conformità con le linee guida sull'interoperabilità DASH-IF.

Questa opzione viene impostata implicitamente durante la scrittura di file "ismv" (Smooth Streaming).

omit_tfhd_offset

Non scrivere alcun base_data_offset assoluto negli atomi tfhd. Ciò evita di legare i frammenti alle posizioni assolute dei byte nel file/flusso.

prefer_icc

Se si scrive colr atom, dare la priorità all'utilizzo del profilo ICC se esiste nei dati lato pacchetto del flusso.

rtphint

Aggiungi tracce di suggerimento RTP al file di output

separate_moof

Scrivi un moof (frammento di film) separato per ogni traccia. Normalmente, i pacchetti per tutte le tracce sono scritti in un moof atom (che è leggermente più efficiente), ma con questa opzione impostata, il muxer scrive una coppia moof/mdat per ogni traccia, rendendo più semplice la separazione delle tracce.

skip_sidx

Salta la scrittura di sidx atom. Quando il sovraccarico del bitrate dovuto a sidx atom è elevato, questa opzione può essere utilizzata nei casi in cui sidx atom non è obbligatorio. Quando il 'global_sidx' è abilitato, questa opzione viene ignorata.

skip_trailer

Salta la scrittura del trailer mfra/tfra/mfro per i file frammentati

use_metadata_tags

Utilizzare mdta atom per i metadati

write_colr

Scrivi colr atom anche se le informazioni sul colore non sono specificate. Questo flag è sperimentale, può essere rinominato o modificato, non utilizzare da script.

write_gama

Scrivere gama atom deprecato

hybrid_fragmented

Per la recuperabilità: scrivere il file di output come file frammentato. Ciò consente la lettura del file intermedio durante la scrittura (in particolare, se il processo di scrittura viene interrotto in modo non corretto). Al termine della scrittura, il file viene convertito in un file normale, non frammentato, più compatibile e che consente una ricerca più semplice e rapida.

Se la scrittura viene interrotta, il file intermedio può essere rimosso manualmente per ottenere un file regolare e non frammentato di ciò che era stato scritto nel file incompleto.

movie_timescale scale

Imposta la scala temporale scritta nella casella di intestazione del film (mvhd). L'intervallo è compreso tra 1 e INT_MAX. L'impostazione predefinita è 1000.

rtpflags flags

Aggiungi tracce di suggerimenti RTP al file di output.

È possibile utilizzare i seguenti flag:

h264_mode0

Utilizzare la modalità 0 per H.264 in RTP

latm

Utilizzare la pacchettizzazione MP4A-LATM invece di MPEG4-GENERIC per AAC

rfc2190

Utilizzare la pacchettizzazione RFC 2190 invece di RFC 4629 per H.263

send_bye

Invia pacchetti RTCP BYE al termine

skip_rtcp

Non inviare report mittente RTCP

skip_iods bool

Salta la scrittura dell'atomo di iod (il valore predefinito è vero)

use_editlist bool

Usa l'elenco di modifica (il valore predefinito è automatico)

use_stream_ids_as_track_ids bool

Utilizza gli ID dello streaming come ID delle tracce (il valore predefinito è false)

video_track_timescale scale

Imposta la scala temporale utilizzata per le tracce video. L'intervallo è compreso tra 0 e INT_MAX. Se impostato su 0, la scala temporale viene impostata automaticamente in base alla base temporale del flusso nativo. L'impostazione predefinita è 0.

write_btrt bool

Forza o disabilita la scrittura del box bitrate all'interno del box stsd di una traccia. La casella contiene la dimensione del buffer di decodifica (in byte), il bitrate massimo e il bitrate medio per la traccia. La casella verrà saltata se nessuno di questi valori può essere calcolato. L'impostazione predefinita è -1 o auto, che scriverà la casella solo in modalità MP4.

write_prft option

Scrivere la casella di riferimento temporale del produttore (PRFT) con un'origine temporale specificata per il campo NTP nella casella PRFT. Imposta il valore come "wallclock" per specificare timesource come orario del wallclock e "pts" per specificare timesource come valori PTS dei pacchetti di input.

write_tmcd bool

Specificare on per forzare la scrittura di una traccia timecode, off per disabilitarla e auto per scrivere una traccia timecode solo per l'output mov e mp4 (impostazione predefinita).

L'impostazione del valore su "pts" è applicabile solo per un caso d'uso di codifica live, in cui i valori PTS sono impostati come l'ora dell'orologio alla fonte. Ad esempio, un caso d'uso di codifica con la sorgente di acquisizione decklink in cui video_pts e audio_pts sono impostati su "abs_wallclock".

4.4.3 Esempi

  • Invia i contenuti Smooth Streaming in tempo reale a un punto di pubblicazione su IIS con il muxer "ismv" utilizzando ffmpeg:ffmpeg -re <normal input/transcoding options> -movflags isml+frag_keyframe -f ismv http://server/publishingpoint.isml/Streams(Encoder1)

4.5a64

Muxer video A64 Commodore 64.

Questo muxer accetta un singolo flusso video codec a64_multi o a64_multi5.

4.6ac4

Muxer audio AC-4 grezzo.

Questo muxer accetta un singolo flusso audio AC4.

4.6.1 Opzioni

write_crc bool

Quando abilitato, scrive un checksum CRC per ogni pacchetto sull'output, il valore predefinito è false

4.7 annunci

Muxer del flusso di trasporto dati audio.

Accetta un singolo flusso AAC.

4.7.1 Opzioni

write_id3v2 bool

Abilita la scrittura dei tag ID3v2.4 all'inizio dello stream. L'impostazione predefinita è disabilitata.

write_apetag bool

Abilita la scrittura dei tag APE alla fine dello stream. L'impostazione predefinita è disabilitata.

write_mpeg2 bool

Abilita l'impostazione del bit della versione MPEG nell'intestazione del frame ADTS su 1 che indica MPEG-2. Il valore predefinito è 0, che indica MPEG-4.

4,8 bis

Muxer audio MD STUDIO.

Questo muxer accetta un singolo flusso audio ATRAC1 con uno o due canali e una frequenza di campionamento di 44100 Hz.

Poiché AEA supporta la memorizzazione del titolo della traccia, questo muxer scriverà anche il titolo dai metadati dello stream al contenitore.

4.9 aiff

Muxer del formato file di interscambio audio.

4.9.1 Opzioni

write_id3v2 bool

Abilita la scrittura dei tag ID3v2 quando impostato su 1. Il valore predefinito è 0 (disabilitato).

id3v2_version bool

Seleziona la versione ID3v2 da scrivere. Attualmente sono supportate solo le versioni 3 e 4 (aka ID3v2.3 e ID3v2.4). L'impostazione predefinita è la versione 4.

4.10 Alpe

Muxer audio per giochi Lego Racers di High Voltage Software.

Accetta un singolo flusso ADPCM_IMA_ALP con non più di 2 canali e una frequenza di campionamento non superiore a 44100 Hz.

Estensioni: tun, pcm

4.10.1 Opzioni

type type

Imposta il tipo di file.

Type accetta i seguenti valori:

tun

Imposta il tipo di file come musica. Deve avere una frequenza di campionamento di 22050 Hz.

pcm

Imposta il tipo di file come sfx.

auto

Imposta il tipo di file in base all'estensione del file di output. .pcm risulta nel tipo pcm altrimenti è impostato il tipo tun. (predefinito)

4.11

Muxer audio 3GPP AMR (Adaptive Multi-Rate).

Accetta un singolo flusso audio contenente un flusso AMR NB.

4.12 amv

Muxer in formato AMV (Actions Media Video).

16:13

Muxer audio Ubisoft Rayman 2 APM.

Accetta un singolo flusso audio ADPCM IMA APM.

4.14 ap

Muxer animato di grafica di rete portatile.

Accetta un singolo flusso video APNG.

4.14.1 Opzioni

final_delay delay

Forza un ritardo espresso in secondi dopo l'ultimo fotogramma di ogni ripetizione. Il valore predefinito è 0,0.

plays repetitions

Specificare quante volte riprodurre il contenuto, 0 provoca un loop infinito, con 1 non c'è loop

4.14.2 Esempi

  • Usa ffmpeg per generare un output APNG con 2 ripetizioni e con un ritardo di mezzo secondo dopo la prima ripetizione:ffmpeg -i INPUT -final_delay 0.5 -plays 2 out.apng

4.15argo_asf

Muxer audio ASF di Argonaut Games.

Accetta un singolo flusso audio ADPCM.

4.15.1 Opzioni

version_major version

Sovrascrive la versione principale del file, specificata come numero intero, il valore predefinito è 2

version_minor version

Sovrascrive la versione secondaria del file, specificata come numero intero, il valore predefinito è 1

name name

Incorpora il nome del file nel file, se non specificato utilizza il nome del file di output. Il nome viene troncato a 8 caratteri.

4.16argo_cvg

Muxer audio CVG di Argonaut Games.

Accetta un singolo flusso audio ADPCM 22050Hz a un canale.

ILloopEreverbLe opzioni impostano i flag corrispondenti nell'intestazione che possono essere successivamente recuperati per elaborare di conseguenza il flusso audio.

4.16.1 Opzioni

skip_rate_check bool

Salta il controllo della frequenza di campionamento (l'impostazione predefinita è falsa)

loop bool

Imposta il flag del ciclo (il valore predefinito è falso)

reverb boolean

Imposta il flag del riverbero (il valore predefinito è true)

4.17 asf, asf_stream

Muxer audio in formato Sistemi Avanzati/Attivi (o Streaming).

Per lo streaming deve essere selezionata la variante "asf_stream".

Tieni presente che anche Windows Media Audio (wma) e Windows Media Video (wmv) utilizzano questo muxer.

4.17.1 Opzioni

packet_size size

Imposta la dimensione del pacchetto muxer come numero di byte. Ottimizzando questa impostazione puoi ridurre la frammentazione dei dati o il sovraccarico del muxer a seconda della tua origine. Il valore predefinito è 3200, il minimo è 100, il massimo è 64Ki.

4.18 ass

Muxer di sottotitoli ASS/SSA (SubStation Alpha).

Accetta un singolo flusso di sottotitoli ASS.

4.18.1 Opzioni

ignore_readorder bool

Scrivi immediatamente gli eventi di dialogo, anche se sono fuori ordine, il valore predefinito è false, altrimenti vengono memorizzati nella cache finché non viene trovato l'evento temporale previsto.

4:19

Muxer AST (flusso audio).

Questo formato viene utilizzato per riprodurre l'audio su alcuni giochi Nintendo Wii.

Accetta un singolo flusso audio.

ILloopstartEloopendLe opzioni possono essere usate per definire una sezione del file da ripetere per i giocatori che rispettano tali opzioni.

4.19.1 Opzioni

loopstart start

Specificare la posizione di inizio del loop espressa in millisecondi, da -1 a INT_MAX, nel caso in cui sia impostato -1 non viene specificato alcun loop (default -1) e il valore di fine loop viene ignorato.

loopend end

Specificare la posizione finale del loop espressa in millisecondi, da 0 a INT_MAX, il valore predefinito è 0, nel caso in cui venga impostato 0 si assume la durata totale dello streaming.

4.20 au

Muxer audio SUN AU.

Accetta un singolo flusso audio.

4.21 avi

Muxer Audio Video Interleaved.

AVI è un formato proprietario sviluppato da Microsoft e successivamente specificato formalmente tramite la specifica Open DML.

A causa delle differenze nelle implementazioni dei lettori, potrebbe essere necessario impostare alcune opzioni per assicurarsi che l'output generato possa essere riprodotto correttamente dal lettore di destinazione.

4.21.1 Opzioni

flipped_raw_rgb bool

Se impostato su true, memorizza l'altezza positiva per le bitmap RGB grezze, che indica che la bitmap è memorizzata dal basso verso l'alto. Tieni presente che questa opzione non capovolge la bitmap, operazione che deve essere eseguita manualmente in anticipo, ad es. utilizzando il filtro "vflip". L'impostazione predefinita è false e indica che la bitmap è archiviata dall'alto verso il basso.

reserve_index_space size

Riserva la quantità specificata di byte per l'indice master OpenDML di ciascun flusso all'interno dell'intestazione del file. Per impostazione predefinita, nei pacchetti di dati vengono incorporati indici master aggiuntivi se non c'è più spazio nel primo indice master e sono collegati insieme come una catena di indici. Questa struttura dell'indice può causare problemi per alcuni casi d'uso, ad es. software di terze parti che si basa strettamente sulle specifiche dell'indice OpenDML o quando la ricerca dei file è lenta. Riservare spazio indice sufficiente nell'intestazione del file evita questi problemi.

Lo spazio dell'indice richiesto dipende dalla dimensione del file di output e dovrebbe essere di circa 16 byte per gigabyte. Quando questa opzione viene omessa o impostata a zero, viene indovinato lo spazio indice necessario.

Il valore predefinito è 0.

write_channel_mask bool

Scrivi la maschera di layout del canale nell'intestazione del flusso audio.

Questa opzione è abilitata per impostazione predefinita. Disabilitare la maschera del canale può essere utile in scenari specifici, ad es. quando si uniscono più flussi audio in uno solo per compatibilità con software che supporta solo un singolo flusso audio in AVI (vedere (ffmpeg-filters)la sezione "amerge" nel manuale di ffmpeg-filters).

4.22 av

Muxer del formato immagine AV1 (Alliance for Open Media Video codec 1).

Questo muxer memorizza le immagini codificate utilizzando il codec AV1.

Accetta uno o due flussi video. Nel caso in cui siano forniti due flussi video, il secondo conterrà un unico piano contenente la maschera alfa.

Nel caso in cui venga fornita più di un'immagine, l'output generato è considerato un AVIF animato e il numero di loop può essere specificato con il comandoloopOpzione.

Questo si basa sulle specifiche di Alliance for Open Media all'URL https://aomediacodec.github.io/av1-avif.

4.22.1 Opzioni

loop count

Numero di volte per ripetere in loop un AVIF animato, 0 specifica un loop infinito, il valore predefinito è 0

movie_timescale timescale

Imposta la scala temporale scritta nella casella di intestazione del film (mvhd). L'intervallo è compreso tra 1 e INT_MAX. L'impostazione predefinita è 1000.

4,23 avm2

Muxer in formato ShockWave Flash (SWF)/ActionScript Virtual Machine 2 (AVM2).

Accetta un flusso audio, un flusso video o entrambi.

4,24 bit

Muxer in formato file G.729 (.bit).

Accetta un singolo flusso audio G.729.

4,25 ca

Muxer Apple CAF (Core Audio Format).

Accetta un singolo flusso audio.

4.26 codec2

Muxer audio Codec2.

Accetta un singolo flusso audio codec2.

4.27 cromastampa

Muxer per impronte digitali Chromaprint.

Per abilitare la compilazione di questo filtro è necessario configurare FFmpeg con --enable-chromaprint.

Questo muxer fornisce dati audio alla libreria Chromaprint, che genera un'impronta digitale per i dati audio forniti. Vedi: https://acoustid.org/chromaprint

Richiede un singolo flusso audio non elaborato native-endian a 16 bit firmato di massimo 2 canali.

4.27.1 Opzioni

algorithm version

Seleziona la versione dell'algoritmo con cui eseguire l'impronta digitale. L'intervallo è compreso tra 0 e 4. La versione 3 consente il rilevamento del silenzio. L'impostazione predefinita è 1.

fp_format format

Formato per l'output dell'impronta digitale come. Accetta le seguenti opzioni:

base64

Impronta digitale compressa Base64 (impostazione predefinita)

compressed

Impronta digitale compressa binaria

raw

Impronta digitale grezza binaria

silence_threshold threshold

Soglia per il rilevamento del silenzio. L'intervallo va da -1 a 32767, dove -1 disabilita il rilevamento del silenzio. Il rilevamento del silenzio può essere utilizzato solo con la versione 3 dell'algoritmo.

Il rilevamento del silenzio deve essere disabilitato per l'utilizzo con il servizio AcoustID. L'impostazione predefinita è -1.

4,28 crc

Muxer CRC (Cyclic Redundancy Check).

Questo muxer calcola e stampa il CRC Adler-32 di tutti i fotogrammi audio e video in ingresso. Per impostazione predefinita, i fotogrammi audio vengono convertiti in audio non elaborato a 16 bit con segno e i fotogrammi video in video non elaborato prima di calcolare il CRC.

L'output del muxer è costituito da una singola riga nel formato: CRC=0xCRC, dove CRC è un numero esadecimale riempito con 0 a 8 cifre contenente il CRC per tutti i frame di input decodificati.

Vedi anche il muxer framecrc.

4.28.1 Esempi

  • Usa ffmpeg per calcolare il CRC dell'input e memorizzalo nel file out.crc:ffmpeg -i INPUT -f crc out.crc
  • Usa ffmpeg per stampare il CRC su stdout con il comando:ffmpeg -i INPUT -f crc -
  • Puoi selezionare il formato di output di ciascun fotogramma con ffmpeg specificando il codec e il formato audio e video. Ad esempio, per calcolare il CRC dell'audio in ingresso convertito in PCM a 8 bit senza segno e del video in ingresso convertito in video MPEG-2, utilizzare il comando:ffmpeg -i INPUT -c:a pcm_u8 -c:v mpeg2video -f crc -

4.29 trattino

Muxer di streaming adattivo dinamico su HTTP (DASH).

Questo muxer crea segmenti e file manifest secondo lo standard MPEG-DASH ISO/IEC 23009-1:2014 e successivi aggiornamenti standard.

Per ulteriori informazioni, vedere:

Questo muxer crea un file manifest MPD (Media Presentation Description) e file di segmenti per ogni flusso. I file di segmento vengono inseriti nella stessa directory del file manifest MPD.

Il nome file del segmento potrebbe contenere identificatori predefiniti utilizzati nella sezione SegmentTemplate manifest come definito nella sezione 5.3.9.4.4 dello standard.

Gli identificatori disponibili sono $RepresentationID$, $Number$, $Bandwidth$ e $Time$. Oltre agli identificatori standard, è supportato anche un identificatore $ext$ specifico per ffmpeg. Quando specificato, ffmpeg sostituirà $ext$ nel nome del file con le estensioni del formato muxing come mp4, webm ecc.

4.29.1 Opzioni

adaptation_sets adaptation_sets

Assegnare flussi a set di adattamento, specificati nella sezione AdaptationSets del manifest MPD.

Un set di adattamento contiene un insieme di uno o più flussi a cui si accede come un singolo sottoinsieme, ad es. corrispondenti flussi codificati con dimensioni diverse selezionabili dall'utente a seconda della larghezza di banda disponibile, oppure a diversi flussi audio con una lingua diversa.

Ogni set di adattamento è specificato con la sintassi:

id=index,streams=streams

Dove indice deve essere un indice numerico e stream è una sequenza di indici di stream separati da ,-. È possibile specificare più set di adattamento, separati da spazi.

Per mappare tutti i flussi video (o audio) su un set di adattamento, v (o a) può essere utilizzato come identificatore del flusso anziché ID.

Quando non viene definita alcuna assegnazione, per impostazione predefinita viene utilizzato un set di adattamento per ciascun flusso.

È inoltre possibile specificare i seguenti campi facoltativi:

descriptor

Definire il descrittore come definito dalla norma ISO/IEC 23009-1:2014/Amd.2:2015.

Per esempio:

<SupplementalProperty schemeIdUri=\"urn:mpeg:dash:srd:2014\" value=\"0,0,0,1,1,2,2\"/>

La stringa descrittiva deve essere un tag XML a chiusura automatica.

frag_duration

Sostituisci la durata del frammento globale specificata confrag_durationOpzione.

frag_type

Sostituisci il tipo di frammento globale specificato confrag_typeOpzione.

seg_duration

Sostituisci la durata del segmento globale specificata conseg_durationOpzione.

trick_id

Contrassegnare un set di adattamento come contenente flussi destinati a essere utilizzati per la modalità Trick per il set di adattamento di riferimento.

Di seguito sono riportati alcuni esempi di possibili valori per l'opzione adjustment_sets:id=0,seg_duration=2,frag_duration=1,frag_type=duration,streams=v id=1,seg_duration=2,frag_type=none,streams=aid=0,seg_duration=2,frag_type=none,streams=0 id=1,seg_duration=10,frag_type=none,trick_id=0,streams=1

dash_segment_type type

Imposta il tipo di file del segmento DASH.

Valori possibili:

auto

Il formato dei file del segmento trattino verrà selezionato in base al codec del flusso. Questa è la modalità di default.

mp4

I file dei segmenti del trattino saranno in formato ISOBMFF/MP4

webm

I file dei segmenti del trattino saranno in formato WebM

extra_window_size size

Imposta il numero massimo di segmenti mantenuti all'esterno del manifest prima della rimozione dal disco.

format_options options_list

Imposta le opzioni del formato contenitore (mp4/webm) utilizzando un elenco :-separato di parametri chiave=valore. I valori contenenti: i caratteri speciali devono essere sottoposti a escape.

frag_duration duration

Imposta la lunghezza in secondi dei frammenti all'interno dei segmenti, è anche possibile impostare il valore frazionario.

frag_type type

Imposta il tipo di intervallo per la frammentazione.

Valori possibili:

auto

Impostare un frammento per segmento

every_frame

Frammento ad ogni fotogramma

duration

Frammento a intervalli di tempo specifici

pframes

Frammento ai fotogrammi chiave e successivo riordino dei fotogrammi P (solo video, sperimentale)

global_sidx bool

Scrivi l'atomo SIDX globale. Applicabile solo per file singolo, output mp4, modalità non streaming.

hls_master_name file_name

Nome della playlist principale HLS. L'impostazione predefinita è master.m3u8.

hls_playlist bool

Genera file di playlist HLS. La playlist principale viene generata con il nome file specificato dall'opzione hls_master_name. Per ogni streaming viene generato un file di playlist multimediale con nomi di file media_0.m3u8, media_1.m3u8, ecc.

http_opts http_opts

Specificare un elenco di opzioni :-separated key=value da passare al protocollo HTTP sottostante. Applicabile solo per l'output HTTP.

http_persistent bool

Utilizza connessioni HTTP persistenti. Applicabile solo per l'output HTTP.

http_user_agent user_agent

Sostituisci il campo User-Agent nell'intestazione HTTP. Applicabile solo per l'output HTTP.

ignore_io_errors bool

Ignora gli errori di I/O durante l'apertura e la scrittura. Utile per corse di lunga durata con output di rete. Questa impostazione è disabilitata per impostazione predefinita.

index_correction bool

Abilita o disabilita la logica di correzione dell'indice del segmento. Applicabile solo quando use_template è abilitato e use_timeline è disabilitato. Questa impostazione è disabilitata per impostazione predefinita.

Quando abilitata, la logica monitora il flusso degli indici dei segmenti. Se il valore dell'indice del segmento di un flusso non si trova nella posizione prevista in tempo reale, la logica corregge quel valore dell'indice.

In genere questa logica è necessaria nei casi d'uso del live streaming. Le fluttuazioni della larghezza di banda della rete sono comuni durante lo streaming a lungo termine. Ogni fluttuazione può far sì che gli indici dei segmenti scendano indietro rispetto alla posizione prevista in tempo reale.

init_seg_name init_name

Nome basato sul modello DASH da utilizzare per il segmento di inizializzazione. L'impostazione predefinita è init-stream$RepresentationID$.$ext$. $ext$ viene sostituito con l'estensione del nome file specifica per il formato del segmento.

ldash bool

Abilita Dash a bassa latenza vincolando la presenza e i valori di alcuni elementi. Questa impostazione è disabilitata per impostazione predefinita.

lhls bool

Abilita HLS a bassa latenza (LHLS). Aggiungi il tag #EXT-X-PREFETCH con l'URI del segmento corrente. I giocatori di hls.js stanno cercando di standardizzare una specifica LHLS aperta. La bozza delle specifiche è disponibile su "https://github.com/video-dev/hlsjs-rfcs/blob/lhls-spec/proposals/0001-lhls.md".

Questa opzione tenta di rispettare le specifiche aperte di cui sopra. Abilita automaticamente le opzioni di streaming e hls_playlist. Questa è una funzionalità sperimentale.

Nota: questa non è la versione LHLS di Apple.Vedi https://datatracker.ietf.org/doc/html/draft-pantos-hls-rfc8216bis

master_m3u8_publish_rate segment_intervals_count

Pubblica la playlist principale ripetutamente dopo un numero specificato di intervalli di segmento.

max_playback_rate rate

Impostare la velocità di riproduzione massima indicata in modo appropriato allo scopo di regolare automaticamente la latenza di riproduzione e l'occupazione del buffer durante la normale riproduzione da parte dei client.

media_seg_name segment_name

Nome basato sul modello DASH da utilizzare per i segmenti multimediali. L'impostazione predefinita è [chunk-stream$RepresentationID$-$Number%05d$.$ext$. $ext$] viene sostituito con l'estensione del nome file specifica per il formato del segmento.

method method

Utilizza il metodo HTTP fornito per creare file di output. Generalmente impostato su PUT o POST.

min_playback_rate rate

Impostare la velocità di riproduzione minima indicata in modo appropriato allo scopo di regolare automaticamente la latenza di riproduzione e l'occupazione del buffer durante la normale riproduzione da parte dei client.

mpd_profile flags

Imposta uno o più profili manifest MPD.

Valori possibili:

dash

Profilo live del formato file multimediale MPEG-DASH ISO Base

dvb_dash

Profilo DVB-DASH

Il valore predefinito è trattino.

remove_at_exit bool

Abilita o disabilita la rimozione di tutti i segmenti al termine. Questa impostazione è disabilitata per impostazione predefinita.

seg_duration duration

Imposta la lunghezza del segmento in secondi (è possibile impostare un valore frazionario). Il valore viene trattato come durata media del segmento quando l'opzione use_template è abilitata e l'opzione use_timeline è disabilitata e come durata minima del segmento per tutti gli altri casi d'uso.

Il valore predefinito è 5.

single_file bool

Abilita o disabilita la memorizzazione di tutti i segmenti in un file, a cui si accede utilizzando intervalli di byte. Questa impostazione è disabilitata per impostazione predefinita.

Il nome del singolo file può essere specificato con l'opzione single_file_name, se non specificato assume il nome base del file manifest con l'estensione del formato di output.

single_file_name file_name

Nome basato sul modello DASH da utilizzare per l'elemento baseURL manifest. Implica che l'opzione single_file sia impostata su true. Nel modello, $ext$ viene sostituito con l'estensione del nome file specifica per il formato del segmento.

streaming bool

Abilita o disabilita la modalità di streaming di blocchi di output. Nella modalità di streaming a blocchi, ogni fotogramma sarà un frammento moof che forma un pezzo. Questa impostazione è disabilitata per impostazione predefinita.

target_latency target_latency

Imposta una latenza target prevista in secondi per la pubblicazione (è possibile impostare un valore frazionario). Applicabile solo quando le opzioni streaming e write_prft sono abilitate. Si tratta di un campo informativo che i clienti possono utilizzare per misurare la latenza del servizio.

timeout timeout

Imposta il timeout per le operazioni I/O del socket espresso in secondi (è possibile impostare un valore frazionario). Applicabile solo per l'output HTTP.

update_period period

Imposta il periodo di aggiornamento MPD, per i contenuti dinamici. L'unità è la seconda. Se impostato su 0, il periodo viene calcolato automaticamente.

Il valore predefinito è 0.

use_template bool

Abilita o disabilita l'uso di SegmentTemplate invece di SegmentList nel manifest. Questo è abilitato per impostazione predefinita.

use_timeline bool

Abilita o disabilita l'uso di SegmentTimeline nella sezione manifest SegmentTemplate. Questo è abilitato per impostazione predefinita.

utc_timing_url url

URL della pagina che restituirà il timestamp UTC in formato ISO, ad esempio https://time.akamai.com/?iso

window_size size

Imposta il numero massimo di segmenti mantenuti nel manifest, scarta quello più vecchio. Questo è utile per lo streaming live.

Se il valore è 0, tutti i segmenti vengono mantenuti nel manifest. Il valore predefinito è 0.

write_prft write_prft

Scrivi elementi Tempo di riferimento del produttore sui flussi supportati. Ciò consente anche di scrivere box prft nel muxer sottostante. Applicabile solo quando l'opzione utc_url è abilitata. È impostato su automatico per impostazione predefinita, nel qual caso il muxer tenterà di abilitarlo solo nelle modalità che lo richiedono.

4.29.2 Esempio

Genera una lettura di output DASH da una sorgente di input in tempo reale utilizzando ffmpeg.

Dal file di input vengono generati due flussi multimediali, entrambi contenenti un flusso video codificato tramite "libx264" e un flusso audio codificato con "libfdk_aac". Il primo flusso multimediale contiene video con bitrate di 800k e audio alla velocità predefinita, il secondo con video scalato a 320x170 pixel a 300k e audio ricampionato a 22005 Hz.

L'opzione window_size mantiene solo gli ultimi 5 segmenti con la durata predefinita di 5 secondi.

ffmpeg -re -i <input> -map 0 -map 0 -c:a libfdk_aac -c:v libx264 \
-b:v:0 800k -profile:v:0 main \
-b:v:1 300k -s:v:1 320x170 -profile:v:1 baseline -ar:a:1 22050 \
-bf 1 -keyint_min 120 -g 120 -sc_threshold 0 -b_strategy 0 \
-use_timeline 1 -use_template 1 -window_size 5 \
-adaptation_sets "id=0,streams=v id=1,streams=a" \
-f dash /path/to/out.mpd

4.30 papà

Muxer audio D-Cinema.

Accetta un singolo flusso audio a 6 canali ricampionato a 96000 Hz codificato con il codec "pcm_24daud".

4.30.1 Esempio

Usa ffmpeg per eseguire il muxing dell'audio in ingresso su un layout di canale "5.1" ricampionato a 96000Hz:

ffmpeg -i INPUT -af aresample=96000,pan=5.1 slow.302

Per le versioni di ffmpeg precedenti alla 7.0 potresti dover utilizzare il comando "asetnsamples' per limitare la dimensione dei pacchetti con multiplexing, perché questo formato non supporta i pacchetti con multiplexing più grandi di 65535 byte (3640 campioni). Per le versioni più recenti di ffmpeg, l'audio viene automaticamente suddiviso in pacchetti da 36.000 byte (2.000 campioni).

4.31 dv

Muxer DV (video digitale).

Accetta esattamente un flusso video "dvvideo" e al massimo due flussi audio "pcm_s16". Ulteriori vincoli sono definiti dalla proprietà del video, che deve corrispondere ad un profilo supportato dal video DV, e dal framerate.

4.31.1 Esempio

Usa ffmpeg per convertire l'input:

ffmpeg -i INPUT -s:v 720x480 -pix_fmt yuv411p -r 29.97 -ac 2 -ar 48000 -y out.dv

4.32 ffmetadati

Muxer di metadati FFmpeg.

Questo muxer scrive i metadati dei flussi nel formato "ffmetadata".

Vedi (ffmpeg-formats) il capitolo Metadati per informazioni sul formato.

4.32.1 Esempio

Utilizza ffmpeg per estrarre i metadati da un file di input in un file metadata.ffmeta nel formato "ffmetadata":

ffmpeg -i INPUT -f ffmetadata metadata.ffmeta

4.33 fifo

Muxer FIFO (First-In First-Out).

Lo pseudo-muxer "fifo" consente la separazione della codifica e del multiplexing utilizzando una coda first-in-first-out ed eseguendo il muxer effettivo in un thread separato.

Ciò è particolarmente utile in combinazione con il tee muxer e può essere utilizzato per inviare dati a diverse destinazioni con diversa affidabilità/velocità di scrittura/latenza.

Il muxer di destinazione viene selezionato dal nome di output o specificato tramite l'opzione fifo_format.

Il comportamento del muxer "fifo" se la coda si riempie o se l'output fallisce (ad esempio se un pacchetto non può essere scritto sull'output) è selezionabile:

  • L'output può essere riavviato in modo trasparente con un ritardo configurabile tra i tentativi in base al tempo reale o all'ora del flusso elaborato.
  • La codifica può essere bloccata durante un errore temporaneo o continuare a scartare i pacchetti in modo trasparente nel caso in cui la coda FIFO si riempia.

Gli utenti API devono essere consapevoli che le funzioni di callback (interrupt_callback, io_open e io_close) utilizzate all'interno di AVFormatContext devono essere thread-safe.

4.33.1 Opzioni

attempt_recovery bool

Se si verifica un errore, tentare di ripristinare l'output. Ciò è particolarmente utile se utilizzato con l'output di rete, poiché rende possibile riavviare lo streaming in modo trasparente. Per impostazione predefinita questa opzione è impostata su false.

drop_pkts_on_overflow bool

Se impostato su true, nel caso in cui la coda fifo si riempia, i pacchetti verranno eliminati anziché bloccare il codificatore. Ciò rende possibile continuare lo streaming senza ritardare l'input, al costo di omettere parte dello streaming. Per impostazione predefinita questa opzione è impostata su false, quindi in questi casi il codificatore verrà bloccato finché il muxer non elabora alcuni pacchetti e nessuno di essi viene perso.

fifo_format format_name

Specificare il nome del formato. Utile se non può essere dedotto dal suffisso del nome di output.

format_opts options

Specificare le opzioni di formato per il muxer sottostante. Le opzioni Muxer possono essere specificate come un elenco di coppie chiave=valore separate da ":".

max_recovery_attempts count

Imposta il numero massimo di tentativi di ripristino consecutivi non riusciti dopo i quali l'output fallisce in modo permanente. Per impostazione predefinita questa opzione è impostata su 0 (illimitato).

queue_size size

Specificare la dimensione della coda come numero di pacchetti. Il valore predefinito è 60.

recover_any_error bool

Se impostato su true, verrà tentato il ripristino indipendentemente dal tipo di errore che ha causato l'errore. Per impostazione predefinita questa opzione è impostata su false e in caso di determinati errori (solitamente permanenti) il ripristino non viene tentato anche quando l'opzione try_recovery è impostata su true.

recovery_wait_streamtime bool

Se impostato su false, viene utilizzato il tempo reale durante l'attesa del tentativo di ripristino (ovvero il ripristino verrà tentato dopo il tempo specificato dall'opzione recovery_wait_time).

Se impostato su true, viene invece preso in considerazione l'orario del flusso elaborato (ovvero il ripristino verrà tentato dopo aver scartato i pacchetti corrispondenti all'opzione recovery_wait_time).

Per impostazione predefinita questa opzione è impostata su false.

recovery_wait_time duration

Specificare il tempo di attesa in secondi prima del successivo tentativo di ripristino dopo il precedente tentativo di ripristino non riuscito. Il valore predefinito è 5.

restart_with_keyframe bool

Specificare se attendere il fotogramma chiave dopo il ripristino dall'overflow o dall'errore della coda. Questa opzione è impostata su false per impostazione predefinita.

timeshift duration

Memorizza nel buffer la quantità specificata di pacchetti e ritarda la scrittura dell'output. Si noti che il valore diqueue_sizeL'opzione deve essere abbastanza grande da contenere i pacchetti per il timeshift. Alla fine dell'input il buffer fifo viene svuotato a velocità in tempo reale.

4.33.2 Esempio

Utilizza ffmpeg per eseguire lo streaming su un server RTMP, continuare a elaborare lo streaming alla velocità in tempo reale anche in caso di guasto temporaneo (interruzione della rete) e tentare di ripristinare lo streaming ogni secondo a tempo indeterminato:

ffmpeg -re -i ... -c:v libx264 -c:a aac -f fifo -fifo_format flv \
  -drop_pkts_on_overflow 1 -attempt_recovery 1 -recovery_wait_time 1 \
  -map 0:v -map 0:a rtmp://example.com/live/stream_name

4.34film_cpk

Muxer di film Sega (.cpk).

Questo formato è stato utilizzato come formato interno per diversi giochi Sega.

Per ulteriori informazioni sul formato file dei film Sega, visitare http://wiki.multimedia.cx/index.php?title=Sega_FILM.

Accetta al massimo un "cinepak" o flusso video non elaborato e al massimo un flusso audio.

4:35 pellicola

Multiplexer Adobe Filmstrip.

Questo formato viene utilizzato da diversi strumenti Adobe per archiviare l'esportazione della pellicola generata. Accetta un singolo flusso video non elaborato.

4.36 si adatta

Muxer FITS (Flexible Image Transport System).

Questo formato immagine viene utilizzato per memorizzare dati astronomici.

Per ulteriori informazioni sul formato, visitare https://fits.gsfc.nasa.gov.

4,37 fl

Muxer audio FLAC grezzo.

Questo muxer accetta esattamente un flusso audio FLAC. Inoltre, è possibile aggiungere immagini con disposizione "attached_pic".

4.37.1 Opzioni

write_header bool

Scrivi l'intestazione del file se impostato su true, il valore predefinito è true

4.37.2 Esempio

Utilizza ffmpeg per archiviare il flusso audio da un file di input, insieme a diverse immagini utilizzate con la disposizione "attached_pic":

ffmpeg -i INPUT -i pic1.png -i pic2.jpg -map 0:a -map 1 -map 2 -disposition:v attached_pic OUTPUT

4,38 fiorini

Muxer del formato video Adobe Flash.

4.38.1 Opzioni

flvflags flags

Valori possibili:

aac_seq_header_detect

Posiziona l'intestazione della sequenza AAC in base ai dati del flusso audio.

no_sequence_end

Disabilita tag di fine sequenza.

no_metadata

Disabilita tag metadati.

no_duration_filesize

Disabilita la durata e la dimensione del file nei metadati quando sono uguali a zero alla fine dello streaming. (Abituarsi al flusso vivente non ricercabile).

add_keyframe_index

Utilizzato per facilitare la ricerca; in particolare per lo pseudo streaming HTTP.

4.39 framecrc

Formato di test CRC (Cyclic Redundancy Check) per pacchetto.

Questo muxer calcola e stampa il CRC Adler-32 per ciascun pacchetto audio e video. Per impostazione predefinita, i fotogrammi audio vengono convertiti in audio non elaborato a 16 bit con segno e i fotogrammi video in video non elaborato prima di calcolare il CRC.

L'output del muxer è costituito da una linea per ogni pacchetto audio e video della forma:

stream_index, packet_dts, packet_pts, packet_duration, packet_size, 0xCRC

CRC è un numero esadecimale riempito con 0 fino a 8 cifre contenente il CRC del pacchetto.

4.39.1 Esempi

Ad esempio per calcolare il CRC dei fotogrammi audio e video inINPUT, convertito in pacchetti audio e video grezzi e memorizzarlo nel fileout.crc:

ffmpeg -i INPUT -f framecrc out.crc

Per stampare le informazioni su stdout, utilizzare il comando:

ffmpeg -i INPUT -f framecrc -

Con ffmpeg, puoi selezionare il formato di output in cui vengono codificati i fotogrammi audio e video prima di calcolare il CRC per ciascun pacchetto specificando il codec audio e video. Ad esempio, per calcolare il CRC di ciascun fotogramma audio in ingresso decodificato convertito in PCM a 8 bit senza segno e di ciascun fotogramma video in ingresso decodificato convertito in video MPEG-2, utilizzare il comando:

ffmpeg -i INPUT -c:a pcm_u8 -c:v mpeg2video -f framecrc -

Vedi anche il muxer crc.

4.40 framehash

Formato di test dell'hash per pacchetto.

Questo muxer calcola e stampa un hash crittografico per ciascun pacchetto audio e video. Questo può essere utilizzato per controlli di uguaglianza pacchetto per pacchetto senza dover eseguire individualmente un confronto binario su ciascuno.

Per impostazione predefinita, i fotogrammi audio vengono convertiti in audio non elaborato a 16 bit firmato e i fotogrammi video in video non elaborato prima di calcolare l'hash, ma è possibile utilizzare anche l'output di conversioni esplicite ad altri codec. Utilizza la funzione hash crittografica SHA-256 per impostazione predefinita, ma supporta molti altri algoritmi.

L'output del muxer è costituito da una linea per ogni pacchetto audio e video della forma:

stream_index, packet_dts, packet_pts, packet_duration, packet_size, hash

Hash è un numero esadecimale che rappresenta l'hash calcolato per il pacchetto.

hash algorithm

Utilizza la funzione hash crittografica specificata dall'algoritmo di stringa. I valori supportati includono MD5, murmur3, RIPEMD128, RIPEMD160, RIPEMD256, RIPEMD320, SHA160, SHA224, SHA256 (predefinito), SHA512/224, SHA512/256, SHA384, SHA512, CRC32 e adler32.

4.40.1 Esempi

Per calcolare l'hash SHA-256 dei fotogrammi audio e video inINPUT, convertito in pacchetti audio e video grezzi, e memorizzarlo nel file out.sha256:

ffmpeg -i INPUT -f framehash out.sha256

Per stampare le informazioni su stdout, utilizzando la funzione hash MD5, utilizzare il comando:

ffmpeg -i INPUT -f framehash -hash md5 -

Vedi anche l'hash muxer.

4.41 framemd5

Formato di test MD5 per pacchetto.

Questa è una variante del muxer framehash. A differenza di quel muxer, per impostazione predefinita utilizza la funzione hash MD5.

4.41.1 Esempi

Per calcolare l'hash MD5 dei fotogrammi audio e video in INPUT, convertiti in pacchetti audio e video grezzi, e memorizzarlo nel file out.md5:

ffmpeg -i INPUT -f framemd5 out.md5

Per stampare le informazioni su stdout, utilizzare il comando:

ffmpeg -i INPUT -f framemd5 -

Vedi anche i muxer framehash e md5.

4,42 gif

Muxer GIF animate.

Da notare che il formato GIF ha una base temporale molto ampia: il ritardo tra due fotogrammi non può quindi essere inferiore a un centesimo di secondo.

4.42.1 Opzioni

loop bool

Imposta il numero di volte in cui eseguire il loop dell'uscita. Utilizzare -1 per nessun ciclo, 0 per il ciclo indefinito (impostazione predefinita).

final_delay delay

Forza il ritardo (espresso in centisecondi) dopo l'ultimo fotogramma. Ogni fotogramma termina con un ritardo fino al fotogramma successivo. Il valore predefinito è -1, che è un valore speciale per indicare al muxer di riutilizzare il ritardo precedente. In caso di loop, potresti voler personalizzare questo valore per contrassegnare, ad esempio, una pausa.

4.42.2 Esempio

Codifica una gif in loop 10 volte, con un ritardo di 5 secondi tra i loop:

ffmpeg -i INPUT -loop 10 -final_delay 500 out.gif

Nota 1: se desideri estrarre i fotogrammi in file GIF separati, devi forzare il muxer image2:

ffmpeg -i INPUT -c:v gif -f image2 "out%d.gif"

4.43 gxf

Muxer GXF (General Exchange Format).

GXF è stato sviluppato da Grass Valley Group, poi standardizzato da SMPTE come SMPTE 360M ed è stato esteso in SMPTE RDD 14-2007 per includere risoluzioni video ad alta definizione.

Accetta al massimo un flusso video con codec 'mjpeg', O 'mpeg1video', O 'mpeg2video', O 'dvvideo’ con delibera ‘512x480' O '608x576’, e diversi flussi audio con frequenza 48000Hz e codec ‘pcm16_le’.

4.44 hash

Formato di test hash.

Questo muxer calcola e stampa un hash crittografico di tutti i fotogrammi audio e video in ingresso. Questo può essere utilizzato per controlli di uguaglianza senza dover eseguire un confronto binario completo.

Per impostazione predefinita, i fotogrammi audio vengono convertiti in audio non elaborato a 16 bit firmato e i fotogrammi video in video non elaborato prima di calcolare l'hash, ma è possibile utilizzare anche l'output di conversioni esplicite ad altri codec. I timestamp vengono ignorati. Utilizza la funzione hash crittografica SHA-256 per impostazione predefinita, ma supporta molti altri algoritmi.

L'output del muxer è costituito da una singola riga nel formato: algo=hash, dove algo è una breve stringa che rappresenta la funzione hash utilizzata e hash è un numero esadecimale che rappresenta l'hash calcolato.

hash algorithm

Utilizza la funzione hash crittografica specificata dall'algoritmo di stringa. I valori supportati includono MD5, murmur3, RIPEMD128, RIPEMD160, RIPEMD256, RIPEMD320, SHA160, SHA224, SHA256 (predefinito), SHA512/224, SHA512/256, SHA384, SHA512, CRC32 e adler32.

4.44.1 Esempi

Per calcolare l'hash SHA-256 dell'input convertito in audio e video non elaborati e memorizzarlo nel file out.sha256:

ffmpeg -i INPUT -f hash out.sha256

Per stampare un hash MD5 su stdout utilizzare il comando:

ffmpeg -i INPUT -f hash -hash md5 -

Vedi anche il muxer framehash.

4,45 hd

Muxer HTTP Dynamic Streaming (HDS).

Lo streaming dinamico HTTP, o HDS, è un metodo di streaming con bitrate adattivo sviluppato da Adobe. HDS fornisce contenuti video MP4 tramite connessioni HTTP. HDS può essere utilizzato per lo streaming on-demand o live streaming.

Questo muxer crea un manifest .f4m (Adobe Flash Media Manifest File), un .abst (Adobe Bootstrap File) per ogni flusso e segmenta i file in una directory specificata come output.

È necessario che un lettore HDS possa accedervi tramite HTTPS affinché possa eseguire la riproduzione sul flusso generato.

4.45.1 Opzioni

extra_window_size int

Numero di frammenti mantenuti all'esterno del manifest prima della rimozione dal disco

min_frag_duration microseconds

Durata minima del frammento (in microsecondi), il valore predefinito è 1 secondo (10000000)

remove_at_exit bool

Rimuovi tutti i frammenti al termine quando impostato su true

window_size int

Numero di frammenti conservati nel manifest, se impostato su un valore diverso da 0. Per impostazione predefinita tutti i segmenti vengono conservati nella directory di output.

4.45.2 Esempio

Usa ffmpeg per generare file HDS nel fileoutput.hdsDirectory in tempo reale tariffa:

ffmpeg -re -i INPUT -f hds -b:v 200k output.hds

4,46 hl

Muxer Apple HTTP Live Streaming che segmenta MPEG-TS in base alla specifica HTTP Live Streaming (HLS).

Crea un file di playlist e uno o più file di segmenti. Il nome del file di output specifica il nome del file della playlist.

Per impostazione predefinita, il muxer crea un file per ogni segmento prodotto. Questi file hanno lo stesso nome della playlist, seguito da un numero sequenziale e da un'estensione .ts.

Assicurati di richiedere un GOP chiuso durante la codifica e di impostare la dimensione GOP per adattarla al vincolo temporale del segmento.

Ad esempio, per convertire un file di input con ffmpeg:

ffmpeg -i in.mkv -c:v h264 -flags +cgop -g 30 -hls_time 1 out.m3u8

Questo esempio produrrà la playlist, out.m3u8 e i file di segmento: out0.ts, out1.ts, out2.ts, ecc.

Vedere anche il segment muxer, che fornisce un'implementazione più generica e flessibile di un segmentatore e può essere utilizzato per eseguire la segmentazione HLS.

4.46.1 Opzioni

hls_init_time duration

Imposta la lunghezza del segmento target iniziale. Il valore predefinito è 0.

La durata deve essere una specifica di durata temporale, vedere (ffmpeg-utils) la sezione Durata temporale nel manuale ffmpeg-utils(1).

Il segmento verrà tagliato sul fotogramma chiave successivo dopo che questo tempo è trascorso nel primo elenco m3u8. Dopo che la playlist iniziale è stata riempita, ffmpeg taglierà i segmenti con una durata pari a hls_time.

hls_time duration

Imposta la lunghezza del segmento target. Il valore predefinito è 2.

La durata deve essere una specifica di durata temporale, vedere (ffmpeg-utils) la sezione Durata temporale nel manuale ffmpeg-utils(1). Il segmento verrà tagliato sul fotogramma chiave successivo una volta trascorso questo tempo.

hls_list_size size

Imposta il numero massimo di voci della playlist. Se impostato su 0 il file elenco conterrà tutti i segmenti. Il valore predefinito è 5.

hls_delete_threshold size

Imposta il numero di segmenti senza riferimenti da conservare sul disco prima che hls_flags delete_segments li elimini. Aumentarlo per consentire ai clienti continui di scaricare segmenti a cui si fa riferimento di recente nella playlist. Il valore predefinito è 1, il che significa che i segmenti più vecchi di hls_list_size+1 verranno eliminati.

hls_start_number_source source

Avvia il numero di sequenza della playlist (#EXT-X-MEDIA-SEQUENCE) in base alla sorgente specificata. A meno che non sia impostato hls_flags single_file, specifica anche l'origine dei numeri di sequenza iniziali dei nomi di file di segmenti e sottotitoli. In ogni caso, se hls_flags append_list è impostato e il numero di sequenza della playlist letta è maggiore del numero di sequenza iniziale specificato, quel valore verrà utilizzato come valore iniziale.

Accetta i seguenti valori:

generic (default)

Imposta i numeri di partenza in base al valore dell'opzione start_number.

epoch

Imposta il numero di partenza come secondi trascorsi dall'epoca (1970-01-01 00:00:00).

epoch_us

Imposta il numero iniziale in microsecondi dall'epoca (1970-01-01 00:00:00).

datetime

Imposta il numero di partenza in base alla data/ora corrente come AAAAmmggHHMMSS. per esempio. 20161231235759.

start_number number

Avvia il numero di sequenza della playlist (#EXT-X-MEDIA-SEQUENCE) dal numero specificato quando il valore hls_start_number_source è generico. (Questo è il caso predefinito.) A meno che non sia impostato hls_flags single_file, specifica anche i numeri di sequenza iniziali dei nomi di file di segmenti e sottotitoli. Il valore predefinito è 0.

hls_allow_cache bool

Imposta esplicitamente se il client PUÒ (1) o NON DEVE (0) memorizzare nella cache i segmenti multimediali.

hls_base_url baseurl

Aggiungi baseurl a ogni voce nella playlist. Utile per generare playlist con percorsi assoluti.

Tieni presente che il numero di sequenza della playlist deve essere univoco per ciascun segmento e non deve essere confuso con il numero di sequenza del nome del file del segmento che può essere ciclico, ad esempio se è specificata l'opzione di avvolgimento.

hls_segment_filename filename

Imposta il nome del file del segmento. A meno che ilhls_flagsL'opzione è impostata con 'single_file’, il nome file viene utilizzato come formato stringa con l'aggiunta del numero del segmento.

Per esempio:ffmpeg -i in.nut -hls_segment_filename 'file%03d.ts' out.m3u8

Produrrà la playlist, out.m3u8 e i file di segmento: file000.ts, file001.ts, file002.ts, ecc.

Il nome file può contenere un percorso completo o una specifica di percorso relativo, ma solo la parte del nome file senza alcun percorso sarà contenuta nell'elenco dei segmenti m3u8. Se viene specificato un percorso relativo, il percorso dei file di segmento creati sarà relativo alla directory di lavoro corrente. Quando è impostato strftime_mkdir, l'intero valore espanso del nome file verrà scritto nell'elenco dei segmenti m3u8.

Quando var_stream_map è impostato con due o più flussi varianti, il modello del nome file deve contenere la stringa "%v" e questa stringa verrà espansa nella posizione dell'indice del flusso variante nei nomi file del segmento generato.

Per esempio:ffmpeg -i in.ts -b:v:0 1000k -b:v:1 256k -b:a:0 64k -b:a:1 32k \  -map 0:v -map 0:a -map 0:v -map 0:a -f hls -var_stream_map "v:0,a:0 v:1,a:1" \  -hls_segment_filename 'file_%v_%03d.ts' out_%v.m3u8

Produrrà i set di file dei segmenti delle playlist: file_0_000.ts, file_0_001.ts, file_0_002.ts, ecc. e file_1_000.ts, file_1_001.ts, file_1_002.ts, ecc.

La stringa "%v" può essere presente nel nome del file o nell'ultimo nome della directory che contiene il file, ma solo in uno di essi. (Inoltre, %v potrebbe apparire più volte nell'ultima sottodirectory o nome file.) Se la stringa %v è presente nel nome della directory, le sottodirectory vengono create dopo aver espanso il modello del nome della directory. Ciò consente la creazione di segmenti corrispondenti a diversi flussi di varianti nelle sottodirectory.

Per esempio:ffmpeg -i in.ts -b:v:0 1000k -b:v:1 256k -b:a:0 64k -b:a:1 32k \  -map 0:v -map 0:a -map 0:v -map 0:a -f hls -var_stream_map "v:0,a:0 v:1,a:1" \  -hls_segment_filename 'vs%v/file_%03d.ts' vs%v/out.m3u8

Produrrà i set di file dei segmenti delle playlist: vs0/file_000.ts, vs0/file_001.ts, vs0/file_002.ts, ecc. e vs1/file_000.ts, vs1/file_001.ts, vs1/file_002.ts, ecc.

strftime bool

Utilizzare strftime() su nomefile per espandere il nome file del segmento con l'ora locale. Il numero del segmento è disponibile anche in questa modalità, ma per utilizzarlo è necessario impostare "second_level_segment_index" in hls_flag e %%d sarà lo specificatore.

Per esempio:ffmpeg -i in.nut -strftime 1 -hls_segment_filename 'file-%Y%m%d-%s.ts' out.m3u8

Produrrà la playlist, out.m3u8 e i file di segmento: file-20160215-1455569023.ts, file-20160215-1455569024.ts, ecc. Nota: su alcuni sistemi/ambienti, l'identificatore %s non è disponibile. Vedi la documentazione di strftime().

Per esempio:ffmpeg -i in.nut -strftime 1 -hls_flags second_level_segment_index -hls_segment_filename 'file-%Y%m%d-%%04d.ts' out.m3u8

Produrrà la playlist, out.m3u8 e i file di segmento: file-20160215-0001.ts, file-20160215-0002.ts, ecc.

strftime_mkdir bool

Utilizzato insieme a strftime, creerà tutte le sottodirectory presenti nei valori espansi dell'opzione hls_segment_filename.

Per esempio:ffmpeg -i in.nut -strftime 1 -strftime_mkdir 1 -hls_segment_filename '%Y%m%d/file-%Y%m%d-%s.ts' out.m3u8

Creerà una directory 201560215 (se non esiste), quindi produrrà la playlist, out.m3u8, e i file segmentati: 20160215/file-20160215-1455569023.ts, 20160215/file-20160215-1455569024.ts, ecc.

Per esempio:ffmpeg -i in.nut -strftime 1 -strftime_mkdir 1 -hls_segment_filename '%Y/%m/%d/file-%Y%m%d-%s.ts' out.m3u8

Creerà una gerarchia di directory 2016/02/15 (se qualcuna di esse non esiste), quindi produrrà la playlist, out.m3u8 e i file di segmento: 2016/02/15/file-20160215-1455569023.ts, 2016/ 02/15/file-20160215-1455569024.ts, ecc.

hls_segment_options options_list

Imposta le opzioni del formato di output utilizzando un elenco :-separato di parametri chiave=valore. I valori contenenti: i caratteri speciali devono essere sottoposti a escape.

hls_key_info_file key_info_file

Utilizza le informazioni in key_info_file per la crittografia del segmento. La prima riga di key_info_file specifica l'URI della chiave scritta nella playlist. L'URL della chiave viene utilizzato per accedere alla chiave di crittografia durante la riproduzione. La seconda riga specifica il percorso del file della chiave utilizzato per ottenere la chiave durante il processo di crittografia. Il file chiave viene letto come un unico array compresso di 16 ottetti in formato binario. La terza riga opzionale specifica il vettore di inizializzazione (IV) come stringa esadecimale da utilizzare al posto del numero di sequenza del segmento (predefinito) per la crittografia. Le modifiche a key_info_file comporteranno la crittografia del segmento con la nuova chiave/IV e una voce nella playlist per la nuova chiave URI/IV se hls_flags periodic_rekey è abilitato.

Formato file delle informazioni chiave:key URIkey file pathIV (optional)

URI chiave di esempio:http://server/file.key/path/to/file.keyfile.key

Percorsi di file chiave di esempio:file.key/path/to/file.key

Esempio IV:0123456789ABCDEF0123456789ABCDEF

Esempio di file con informazioni chiave:http://server/file.key/path/to/file.key0123456789ABCDEF0123456789ABCDEF

Esempio di script di shell:#!/bin/shBASE_URL=${1:-'.'}openssl rand 16 > file.keyecho $BASE_URL/file.key > file.keyinfoecho file.key >> file.keyinfoecho $(openssl rand -hex 16) >> file.keyinfoffmpeg -f lavfi -re -i testsrc -c:v h264 -hls_flags delete_segments \  -hls_key_info_file file.keyinfo out.m3u8

hls_enc bool

Abilita (1) o disabilita (0) la crittografia AES128. Quando abilitato, ogni segmento generato viene crittografato e la chiave di crittografia viene salvata come nome playlist.chiave.

hls_enc_key key

Specificare una chiave di 16 ottetti per crittografare i segmenti, per impostazione predefinita viene generata in modo casuale.

hls_enc_key_url keyurl

Se impostato, keyurl viene anteposto al posto di baseurl al nome file della chiave nella playlist.

hls_enc_iv iv

Specificare il vettore di inizializzazione a 16 ottetti per ogni segmento invece di quelli generati automaticamente.

hls_segment_type flags

Valori possibili:

mpegts

File di segmenti di output in formato MPEG-2 Transport Stream. Questo è compatibile con tutte le versioni HLS.

fmp4

File di segmenti di output in formato MP4 frammentato, simile a MPEG-DASH. I file fmp4 possono essere utilizzati nella versione HLS 7 e successive.

hls_fmp4_init_filename filename

Imposta il nome file per il file di intestazione dei file di frammento, il nome file predefinito è init.mp4.

Quando strftime è abilitato, il nome file viene espanso nel segmento nome file con ora locale.

Per esempio:ffmpeg -i in.nut -hls_segment_type fmp4 -strftime 1 -hls_fmp4_init_filename "%s_init.mp4" out.m3u8

Produrrà init in questo modo 1602678741_init.mp4.

hls_fmp4_init_resend bool

Invia nuovamente il file init dopo l'aggiornamento del file m3u8 ogni volta, il valore predefinito è 0.

Quando var_stream_map è impostato con due o più flussi varianti, il modello del nome file deve contenere la stringa "%v", questa stringa specifica la posizione dell'indice del flusso variante nei nomi dei file init generati. La stringa "%v" può essere presente nel nome del file o nell'ultimo nome della directory che contiene il file. Se la stringa è presente nel nome della directory, le sottodirectory vengono create dopo aver espanso il modello del nome della directory. Ciò consente la creazione di file init corrispondenti a diversi flussi di varianti nelle sottodirectory.

hls_flags flags

Valori possibili:

single_file

Se questo flag è impostato, il muxer memorizzerà tutti i segmenti in un singolo file MPEG-TS e utilizzerà gli intervalli di byte nella playlist. Le playlist HLS generate in questo modo avranno la versione numero 4.

Per esempio:ffmpeg -i in.nut -hls_flags single_file out.m3u8

Produrrà la playlist, out.m3u8, e un file a segmento singolo, out.ts.

delete_segments

I file di segmenti rimossi dalla playlist vengono eliminati dopo un periodo di tempo pari alla durata del segmento più la durata della playlist.

append_list

Aggiungi nuovi segmenti alla fine del vecchio elenco di segmenti e rimuovi #EXT-X-ENDLIST dal vecchio elenco di segmenti.

round_durations

Arrotonda le informazioni sulla durata nelle informazioni sul segmento del file della playlist a valori interi, invece di utilizzare la virgola mobile. Se non ci sono altre funzionalità che richiedono l'utilizzo di versioni HLS superiori, ciò consentirà a ffmpeg di produrre una versione HLS 2 m3u8.

discont_start

Aggiungi il tag #EXT-X-DISCONTINUITY alla playlist, prima delle informazioni del primo segmento.

omit_endlist

Non aggiungere il tag EXT-X-ENDLIST alla fine della playlist.

periodic_rekey

Il file specificato da hls_key_info_file verrà controllato periodicamente e rileverà gli aggiornamenti alle informazioni di crittografia. Assicurati di sostituire questo file in modo atomico, incluso il file contenente la chiave di crittografia AES.

independent_segments

Aggiungi il tag #EXT-X-INDEPENDENT-SEGments alle playlist che contengono segmenti video e quando è garantito che tutti i segmenti di quella playlist inizino con un fotogramma chiave.

iframes_only

Aggiungi il tag #EXT-X-I-FRAMES-ONLY alle playlist che contengono segmenti video e possono riprodurre solo I-frame nella modalità #EXT-X-BYTERANGE.

split_by_time

Consenti ai segmenti di iniziare su fotogrammi diversi dai fotogrammi chiave. Ciò migliora il comportamento di alcuni giocatori quando il tempo tra i fotogrammi chiave non è coerente, ma potrebbe peggiorare le cose per altri e causare alcune stranezze durante la ricerca. Questo flag deve essere utilizzato con l'opzione hls_time.

program_date_time

Genera tag EXT-X-PROGRAM-DATE-TIME.

second_level_segment_index

Rendi possibile utilizzare gli indici di segmento come %%d nell'espressione dell'opzione hls_segment_filename oltre ai valori di data/ora quandostrftimeL'opzione è attiva. Per ottenere numeri a larghezza fissa con zeri finali, è disponibile il formato %%0xd dove x è la larghezza richiesta.

second_level_segment_size

Rende possibile l'utilizzo delle dimensioni dei segmenti (contate in byte) come %%s nell'espressione dell'opzione hls_segment_filename oltre ai valori di data/ora quando strftime è attivo. Per ottenere numeri a larghezza fissa con zeri finali, è disponibile il formato %%0xs dove x è la larghezza richiesta.

second_level_segment_duration

Consenti di utilizzare la durata del segmento (calcolata in microsecondi) come %%t nell'espressione dell'opzione hls_segment_filename oltre ai valori di data/ora quando strftime è attivo. Per ottenere numeri a larghezza fissa con zeri finali, è disponibile il formato %%0xt dove x è la larghezza richiesta.

Per esempio:ffmpeg -i sample.mpeg \   -f hls -hls_time 3 -hls_list_size 5 \   -hls_flags second_level_segment_index+second_level_segment_size+second_level_segment_duration \   -strftime 1 -strftime_mkdir 1 -hls_segment_filename "segment_%Y%m%d%H%M%S_%%04d_%%08s_%%013t.ts" stream.m3u8

Produrrà segmenti come questo: segment_20170102194334_0003_00122200_0000003000000.ts, segment_20170102194334_0004_00120072_0000003000000.ts ecc.

temp_file

Scrivi i dati del segmento infilename.tmpE rinominarlo in nome file solo una volta completato il segmento.

Un server web che fornisce segmenti può essere configurato per rifiutare le richieste a *.tmp per impedire l'accesso ai segmenti in corso prima che siano stati aggiunti alla playlist m3u8.

Questo flag influisce anche sul modo in cui vengono creati i file della playlist m3u8. Se questo flag è impostato, tutti i file della playlist verranno scritti in un file temporaneo e rinominati una volta completati, in modo simile a come vengono gestiti i segmenti. Ma le playlist con protocollo file e con tipo hls_playlist_type diverso da "vod" vengono sempre scritte in un file temporaneo indipendentemente da questo flag.

I file della playlist principale specificati con master_pl_name, se presenti, con il protocollo file, vengono sempre scritti nel file temporaneo indipendentemente da questo flag semaster_pl_publish_rateIl valore è diverso da zero.

hls_playlist_type type

Se il tipo è "evento", emetti #EXT-X-PLAYLIST-TYPE:EVENT nell'intestazione m3u8. Ciò forza hls_list_size su 0; la playlist può essere solo aggiunta.

Se il tipo è "vod", emetti #EXT-X-PLAYLIST-TYPE:VOD nell'intestazione m3u8. Ciò forza hls_list_size su 0; la playlist non deve cambiare.

method method

Utilizza il metodo HTTP indicato per creare i file hls.

Per esempio:ffmpeg -re -i in.ts -f hls -method PUT http://example.com/live/out.m3u8

Caricherà tutti i file dei segmenti mpegts sul server HTTP utilizzando il metodo HTTP PUT e aggiornerà i file m3u8 a ogni aggiornamento utilizzando lo stesso metodo. Tieni presente che il server HTTP deve supportare il metodo specificato per il caricamento dei file.

http_user_agent agent

Sostituisci il campo User-Agent nell'intestazione HTTP. Applicabile solo per l'output HTTP.

var_stream_map stream_map

Specificare una stringa di mappa che definisce come raggruppare i flussi audio, video e sottotitoli in flussi di varianti diverse. I gruppi di flussi di varianti sono separati da uno spazio.

Il formato della stringa previsto è simile a questo "a:0,v:0 a:1,v:1 ....". Qui a:, v:, s: sono i tasti per specificare rispettivamente i flussi audio, video e sottotitoli. I valori consentiti sono compresi tra 0 e 9 (limitati solo in base all'uso pratico).

Quando sono presenti due o più flussi varianti, il modello del nome file di output deve contenere la stringa "%v": questa stringa specifica la posizione dell'indice del flusso variante nei nomi file della playlist del supporto di output. La stringa "%v" può essere presente nel nome del file o nell'ultimo nome della directory che contiene il file. Se la stringa è presente nel nome della directory, le sottodirectory vengono create dopo aver espanso il modello del nome della directory. Ciò consente la creazione di flussi varianti nelle sottodirectory.

Seguono alcuni esempi.

• Creare due flussi di varianti HLS. Il flusso della prima variante conterrà un flusso video con velocità in bit di 1000k e un flusso audio con velocità in bit di 64k e il flusso della seconda variante conterrà un flusso video con velocità in bit di 256k e un flusso audio con velocità in bit di 32k. Qui verranno create due playlist multimediali con nomi di file out_0.m3u8 e out_1.m3u8.ffmpeg -re -i in.ts -b:v:0 1000k -b:v:1 256k -b:a:0 64k -b:a:1 32k \  -map 0:v -map 0:a -map 0:v -map 0:a -f hls -var_stream_map "v:0,a:0 v:1,a:1" \  http://example.com/live/out_%v.m3u8

• Se desideri qualcosa di testo significativo invece degli indici nei nomi dei risultati, puoi specificare i nomi per ciascuna o alcune varianti. L'esempio seguente creerà due flussi varianti hls come nel precedente. Ma qui verranno create le due playlist multimediali con i nomi di file out_my_hd.m3u8 e out_my_sd.m3u8.ffmpeg -re -i in.ts -b:v:0 1000k -b:v:1 256k -b:a:0 64k -b:a:1 32k \  -map 0:v -map 0:a -map 0:v -map 0:a -f hls -var_stream_map "v:0,a:0,name:my_hd v:1,a:1,name:my_sd" \  http://example.com/live/out_%v.m3u8

• Creare tre flussi di varianti hls. Il flusso della prima variante sarà un flusso solo video con bitrate video di 1000k, il flusso della seconda variante sarà un flusso solo audio con bitrate di 64k e il flusso della terza variante sarà un flusso solo video con bitrate di 256k. Qui verranno create tre playlist multimediali con nomi di file out_0.m3u8, out_1.m3u8 e out_2.m3u8.ffmpeg -re -i in.ts -b:v:0 1000k -b:v:1 256k -b:a:0 64k \  -map 0:v -map 0:a -map 0:v -f hls -var_stream_map "v:0 a:0 v:1" \  http://example.com/live/out_%v.m3u8

• Creare i flussi varianti nelle sottodirectory. Qui, la prima playlist multimediale viene creata su http://example.com/live/vs_0/out.m3u8 e la seconda su http://example.com/live/vs_1/out.m3u8.ffmpeg -re -i in.ts -b:v:0 1000k -b:v:1 256k -b:a:0 64k -b:a:1 32k \  -map 0:v -map 0:a -map 0:v -map 0:a -f hls -var_stream_map "v:0,a:0 v:1,a:1" \  http://example.com/live/vs_%v/out.m3u8

• Creare due flussi varianti solo audio e due varianti solo video. Oltre al tag #EXT-X-STREAM-INF per ogni variante di streaming nella playlist principale, viene aggiunto anche il tag #EXT-X-MEDIA per i due streaming di varianti solo audio e questi vengono mappati alle due varianti solo video stream con nomi di gruppi audio "aud_low" e "aud_high". Per impostazione predefinita, viene creata una singola variante hls contenente tutti i flussi codificati.ffmpeg -re -i in.ts -b:a:0 32k -b:a:1 64k -b:v:0 1000k -b:v:1 3000k  \  -map 0:a -map 0:a -map 0:v -map 0:v -f hls \  -var_stream_map "a:0,agroup:aud_low a:1,agroup:aud_high v:0,agroup:aud_low v:1,agroup:aud_high" \  -master_pl_name master.m3u8 \  http://example.com/live/out_%v.m3u8

• Creare due flussi varianti solo audio e uno solo video. Oltre al tag #EXT-X-STREAM-INF per ogni variante di streaming nella playlist principale, viene aggiunto anche il tag #EXT-X-MEDIA per i due streaming di varianti solo audio e questi vengono mappati alla variante solo video trasmette in streaming con il nome del gruppo audio "aud_low" e la statistica predefinita del gruppo audio è NO o SÌ. Per impostazione predefinita, viene creata una singola variante hls contenente tutti i flussi codificati.ffmpeg -re -i in.ts -b:a:0 32k -b:a:1 64k -b:v:0 1000k \  -map 0:a -map 0:a -map 0:v -f hls \  -var_stream_map "a:0,agroup:aud_low,default:yes a:1,agroup:aud_low v:0,agroup:aud_low" \  -master_pl_name master.m3u8 \  http://example.com/live/out_%v.m3u8

• Creare due flussi varianti solo audio e uno solo video. Oltre al tag #EXT-X-STREAM-INF per ogni variante di streaming nella playlist principale, viene aggiunto anche il tag #EXT-X-MEDIA per i due streaming di varianti solo audio e questi vengono mappati alla variante solo video trasmette in streaming con il nome del gruppo audio "aud_low" e la statistica predefinita del gruppo audio è NO o SÌ e un audio e una lingua si chiamano ENG, l'altra lingua audio si chiama CHN. Per impostazione predefinita, viene creata una singola variante hls contenente tutti i flussi codificati.ffmpeg -re -i in.ts -b:a:0 32k -b:a:1 64k -b:v:0 1000k \  -map 0:a -map 0:a -map 0:v -f hls \  -var_stream_map "a:0,agroup:aud_low,default:yes,language:ENG a:1,agroup:aud_low,language:CHN v:0,agroup:aud_low" \  -master_pl_name master.m3u8 \  http://example.com/live/out_%v.m3u8

• Creare un singolo flusso di varianti. Aggiungi il tag #EXT-X-MEDIA con TYPE=SUBTITLES nella playlist principale con il nome del gruppo di sottotitoli webvtt "sottotitolo". Assicurati che il file di input contenga almeno un flusso di sottotitoli di testo.ffmpeg -y -i input_with_subtitle.mkv \ -b:v:0 5250k -c:v h264 -pix_fmt yuv420p -profile:v main -level 4.1 \ -b:a:0 256k \ -c:s webvtt -c:a mp2 -ar 48000 -ac 2 -map 0:v -map 0:a:0 -map 0:s:0 \ -f hls -var_stream_map "v:0,a:0,s:0,sgroup:subtitle" \ -master_pl_name master.m3u8 -t 300 -hls_time 10 -hls_init_time 4 -hls_list_size \ 10 -master_pl_publish_rate 10 -hls_flags \ delete_segments+discont_start+split_by_time ./tmp/video.m3u8

cc_stream_map cc_stream_map

Stringa di mappa che specifica diversi gruppi di sottotitoli codificati e i relativi attributi. I gruppi di stream dei sottotitoli sono separati da uno spazio.

Il formato della stringa previsto è simile a questo "ccgroup:<nome gruppo>,instreamid:<INSTREAM-ID>,lingua:<codice lingua> ....". "ccgroup" e "instreamid" sono attributi obbligatori. 'lingua' è un attributo facoltativo.

I gruppi di sottotitoli configurati utilizzando questa opzione vengono mappati su flussi di varianti diverse fornendo lo stesso nome "ccgroup" nella stringa var_stream_map.

Per esempio:ffmpeg -re -i in.ts -b:v:0 1000k -b:v:1 256k -b:a:0 64k -b:a:1 32k \  -a53cc:0 1 -a53cc:1 1 \  -map 0:v -map 0:a -map 0:v -map 0:a -f hls \  -cc_stream_map "ccgroup:cc,instreamid:CC1,language:en ccgroup:cc,instreamid:CC2,language:sp" \  -var_stream_map "v:0,a:0,ccgroup:cc v:1,a:1,ccgroup:cc" \  -master_pl_name master.m3u8 \  http://example.com/live/out_%v.m3u8

Aggiungerà due tag #EXT-X-MEDIA con TYPE=CLOSED-CAPTIONS nella playlist principale per gli INSTREAM-ID 'CC1' e 'CC2'. Inoltre, aggiungerà l'attributo CLOSED-CAPTIONS con il nome del gruppo "cc" per i due flussi di varianti di output.

Se var_stream_map non è impostato, il primo ccgroup disponibile in cc_stream_map viene mappato al flusso della variante di output.

Per esempio:ffmpeg -re -i in.ts -b:v 1000k -b:a 64k -a53cc 1 -f hls \  -cc_stream_map "ccgroup:cc,instreamid:CC1,language:en" \  -master_pl_name master.m3u8 \  http://example.com/live/out.m3u8

Questo aggiungerà il tag #EXT-X-MEDIA con TYPE=CLOSED-CAPTIONS nella playlist principale con nome gruppo 'cc', lingua 'en' (inglese) e INSTREAM-ID 'CC1'. Inoltre, aggiungerà l'attributo CLOSED-CAPTIONS con il nome del gruppo "cc" per il flusso della variante di output.

master_pl_name name

Crea playlist principale HLS con il nome indicato.

Per esempio:ffmpeg -re -i in.ts -f hls -master_pl_name master.m3u8 http://example.com/live/out.m3u8

Crea una playlist principale HLS con nomemaster.m3u8Che è pubblicato su http://example.com/live/.

master_pl_publish_rate count

Pubblica la playlist principale ripetutamente dopo un numero specificato di intervalli di segmenti.

Per esempio:ffmpeg -re -i in.ts -f hls -master_pl_name master.m3u8 \-hls_time 2 -master_pl_publish_rate 30 http://example.com/live/out.m3u8

Crea una playlist principale HLS con nomemaster.m3u8E continua a pubblicarlo ripetutamente ogni 30 segmenti, ovvero ogni 60 anni.

http_persistent bool

Utilizza connessioni HTTP persistenti. Applicabile solo per l'output HTTP.

timeout timeout

Imposta il timeout per le operazioni I/O del socket. Applicabile solo per l'output HTTP.

ignore_io_errors bool

Ignora gli errori di I/O durante l'apertura, la scrittura e l'eliminazione. Utile per corse di lunga durata con output di rete.

headers headers

Imposta intestazioni HTTP personalizzate, puoi sovrascrivere le intestazioni predefinite integrate. Applicabile solo per l'output HTTP.

4.47 iamf

Muxer di modelli e formati audio immersivi (IAMF).

IAMF viene utilizzato per fornire contenuti audio coinvolgenti per la presentazione su un'ampia gamma di dispositivi sia in applicazioni di streaming che offline. Queste applicazioni includono streaming audio su Internet, servizi multicasting/broadcasting, download di file, giochi, comunicazione, realtà virtuale e aumentata e altro. In queste applicazioni, l'audio può essere riprodotto su un'ampia gamma di dispositivi, ad esempio cuffie, telefoni cellulari, tablet, TV, soundbar, sistemi home theater e grandi schermi.

Questo formato è stato promosso e progettato da Alliance for Open Media.

Per ulteriori informazioni su questo formato, vedere https://aomedia.org/iamf/.

4.48 icona

Miscelatore di file ICO.

Il formato del file icona (ICO) di Microsoft presenta alcune limitazioni rigorose che è opportuno tenere presente:

  • La dimensione non può superare i 256 pixel in qualsiasi dimensione
  • È possibile archiviare solo immagini BMP e PNG
  • Se viene utilizzata un'immagine BMP, deve avere uno dei seguenti formati pixel:BMP Bit Depth      FFmpeg Pixel Format1bit               pal84bit               pal88bit               pal816bit              rgb555le24bit              bgr2432bit              bgra
  • Se viene utilizzata un'immagine BMP, deve utilizzare l'intestazione DIB BITMAPINFOHEADER
  • Se viene utilizzata un'immagine PNG, deve utilizzare il formato pixel rgba

4,49 ilbc

Muxer non elaborato Internet Low Bitrate Codec (iLBC).

Accetta un singolo "ilbcFlusso audio.

4.50 immagine2, immagine2pipe

Multiplexer di file immagine.

Il muxer "image2" scrive fotogrammi video su file immagine.

I nomi dei file di output sono specificati da un modello, che può essere utilizzato per produrre serie di file numerate in sequenza. Il modello può contenere la stringa "%d" o "%0Nd", questa stringa specifica la posizione dei caratteri che rappresentano una numerazione nei nomi dei file. Se viene utilizzata la forma "%0Nd", la stringa che rappresenta il numero in ciascun nome file viene completata con 0 fino a N cifre. Il carattere letterale '%' può essere specificato nel modello con la stringa "%%".

Se il modello contiene "%d" o "%0Nd", il primo nome file dell'elenco file specificato conterrà il numero 1, tutti i numeri successivi saranno sequenziali.

Il modello può contenere un suffisso utilizzato per determinare automaticamente il formato dei file immagine da scrivere.

Ad esempio, il pattern "img-%03d.bmp" specificherà una sequenza di nomi di file nel formato img-001.bmp, img-002.bmp, ..., img-010.bmp, ecc. Il pattern "img% %-%d.jpg" specificherà una sequenza di nomi di file nel formato img%-1.jpg, img%-2.jpg, ..., img%-10.jpg, ecc.

Il multiplexer di immagini supporta il formato file immagine .Y.U.V. Questo formato è speciale in quanto ogni fotogramma immagine è composto da tre file, per ciascuno dei componenti YUV420P. Per leggere o scrivere questo formato di file immagine, specificare il nome del file ".Y". Il muxer aprirà automaticamente i file '.U' e '.V' come richiesto.

Il muxer "image2pipe" accetta le stesse opzioni del muxer "image2", ma ignora la verifica e l'espansione del pattern, poiché dovrebbe scrivere sull'output del comando anziché su un file effettivamente memorizzato.

4.50.1 Opzioni

frame_pts bool

Se impostato a 1, espande il nome del file con il pacchetto PTS (time stamp di presentazione). Il valore predefinito è 0.

start_number count

Inizia la sequenza dal numero specificato. Il valore predefinito è 1.

update bool

Se impostato su 1, il nome file verrà sempre interpretato semplicemente come nome file, non come modello, e il file corrispondente verrà continuamente sovrascritto con nuove immagini. Il valore predefinito è 0.

strftime bool

Se impostato su 1, espande il nome file con le informazioni su data e ora da strftime(). Il valore predefinito è 0.

atomic_writing bool

Scrive l'output in un file temporaneo, che viene rinominato con il nome del file di destinazione una volta completata la scrittura. L'impostazione predefinita è disabilitata.

protocol_opts options_list

Imposta le opzioni del protocollo come un elenco :-separato di parametri chiave=valore. I valori contenenti il carattere speciale: devono essere sottoposti a escape.

4.50.2 Esempi

  • Utilizza ffmpeg per creare una sequenza di file img-001.jpeg, img-002.jpeg, ..., prendendo un'immagine ogni secondo dal video in ingresso:ffmpeg -i in.avi -vsync cfr -r 1 -f image2 'img-%03d.jpeg'Tieni presente che con ffmpeg, se il formato non è specificato con l'opzione -f e il nome del file di output specifica un formato di file immagine, il muxer image2 viene selezionato automaticamente, quindi il comando precedente può essere scritto come:ffmpeg -i in.avi -vsync cfr -r 1 'img-%03d.jpeg'Da notare inoltre che il pattern non deve necessariamente contenere "%d" o "%0Nd", ad esempio per creare un singolo file immagine img.jpeg dall'inizio del video in input è possibile utilizzare il comando:ffmpeg -i in.avi -f image2 -frames:v 1 img.jpeg
  • L'opzione strftime consente di espandere il nome del file con informazioni su data e ora. Controllare la documentazione della funzione strftime() per la sintassi.Per generare file di immagine dal modello strftime() "%Y-%m-%d_%H-%M-%S", è possibile utilizzare il seguente comando ffmpeg:ffmpeg -f v4l2 -r 1 -i /dev/video0 -f image2 -strftime 1 "%Y-%m-%d_%H-%M-%S.jpg"
  • Imposta il nome del file con il PTS del frame corrente:ffmpeg -f v4l2 -r 1 -i /dev/video0 -copyts -f image2 -frame_pts true %d.jpg
  • Pubblica i contenuti del tuo desktop direttamente su un server WebDAV ogni secondo:ffmpeg -f x11grab -framerate 1 -i :0.0 -q:v 6 -update 1 -protocol_opts method=PUT http://example.com/desktop.jpg

4.51 IRCAM

Muxer in formato Berkeley / IRCAM / CARL Sound Filesystem (BICSF).

Il formato audio Berkeley/IRCAM/CARL, sviluppato negli anni '80, è il risultato della fusione di diversi formati e sistemi di file audio precedenti, incluso il sistema csound sviluppato dal dottor Gareth Loy presso il Computer Audio Research Lab (CARL) presso l'UC San Diego, il file system audio IRCAM sviluppato da Rob Gross e Dan Timis presso l'Institut de Recherche et Coordination Acoustique / Musique di Parigi e il Berkeley Fast Filesystem.

È stato sviluppato inizialmente come parte del Berkeley/IRCAM/CARL Sound Filesystem, una suite di programmi progettati per implementare un filesystem per applicazioni audio in esecuzione sotto Berkeley UNIX. Era particolarmente popolare nei centri di ricerca musicale accademica e fu utilizzato più volte nella creazione delle prime composizioni generate al computer.

Questo muxer accetta un singolo flusso audio contenente dati PCM.

4,52 ivf

Muxer IVF On2.

La fecondazione in vitro è stata sviluppata da On2 Technologies (precedentemente nota come Duck Corporation), per archiviare codec sviluppati internamente.

Questo muxer accetta un singolo flusso video "vp8", "vp9" o "av1".

4.53 jacosub

Muxer del formato dei sottotitoli JACOsub.

Questo muxer accetta un singolo flusso di sottotitoli "jacosub".

Per ulteriori informazioni sul formato, vedere http://unicorn.us.com/jacosub/jscripts.html.

4,54 kvag

Muxer VAG interattivo Simon & Schuster.

Questo contenitore VAG personalizzato viene utilizzato da alcuni giochi Simon & Schuster Interactive come "Real War" e "Real War: Rogue States".

Questo muxer accetta un singolo flusso audio "adpcm_ima_ssi".

4,55 l3

Bluetooth SIG Codec di comunicazione a bassa complessità audio (LC3) o Codec di comunicazione a bassa complessità ETSI TS 103 634 plus (LC3plus).

Questo muxer accetta un singolo flusso audio "lc3".

4,56 lrc

Muxer in formato file di testi LRC.

LRC (abbreviazione di LyRiCs) è un formato di file per computer che sincronizza i testi delle canzoni con un file audio, come MP3, Vorbis o MIDI.

Questo muxer accetta un singolo flusso di sottotitoli "subrip" o "testo".

4.56.1 Metadati

I seguenti tag di metadati vengono convertiti nel formato dei metadati corrispondenti:

title
album
artist
author
creator
encoder
encoder_version

Se "encoder_version" non è impostato esplicitamente, viene automaticamente impostato sulla versione libavformat.

4.57 matroška

Muxer contenitore Matroska.

Questo muxer implementa le specifiche del contenitore matroska e webm.

4.57.1 Metadati

Le impostazioni dei metadati riconosciute in questo muxer sono:

title

Imposta il nome del titolo fornito a una singola traccia. Questo viene mappato all'elemento FileDescription per un flusso scritto come allegato.

language

Specificare la lingua della traccia nel modulo delle lingue Matroska.

La lingua può essere la forma bibliografica ISO-639-2 (ISO 639-2/B) di 3 lettere (come "fre" per il francese), oppure un codice lingua mescolato con un codice paese per le specialità linguistiche (come "fre- ca" per il francese canadese).

stereo_mode

Imposta il layout video 3D stereo di due visualizzazioni in un'unica traccia video.

Sono riconosciuti i seguenti valori:

mono

Il video non è stereo

left_right

Entrambe le visualizzazioni sono disposte fianco a fianco, la visualizzazione dell'occhio sinistro è a sinistra

bottom_top

Entrambe le viste sono disposte con orientamento dall'alto in basso, la vista dall'occhio sinistro è in basso

top_bottom

Entrambe le visualizzazioni sono disposte con orientamento dall'alto in basso, la visualizzazione dell'occhio sinistro è in alto

checkerboard_rl

Ciascuna visualizzazione è organizzata secondo uno schema intercalato a scacchiera, con la visualizzazione dell'occhio sinistro per prima

checkerboard_lr

Ciascuna visualizzazione è organizzata secondo uno schema intercalato a scacchiera, con la visualizzazione dell'occhio destro per prima

row_interleaved_rl

Ciascuna vista è costituita da un interlacciamento basato su righe, la vista dall'occhio destro è la prima riga

row_interleaved_lr

Ciascuna vista è costituita da un interlacciamento basato su righe, la vista dall'occhio sinistro è la prima riga

col_interleaved_rl

Entrambe le visualizzazioni sono disposte in modo interlacciato basato su colonne, la visualizzazione dall'occhio destro è la prima colonna

col_interleaved_lr

Entrambe le visualizzazioni sono disposte in modo interlacciato basato su colonne, la visualizzazione dall'occhio sinistro è la prima colonna

anaglyph_cyan_red

Tutti i fotogrammi sono in formato anaglifi visualizzabili attraverso filtri rosso-ciano

right_left

Entrambe le visualizzazioni sono disposte fianco a fianco, la visualizzazione dell'occhio destro è a sinistra

anaglyph_green_magenta

Tutti i fotogrammi sono in formato anaglifi visualizzabili attraverso filtri verde-magenta

block_lr

Entrambi gli occhi sono collegati in un blocco, la vista con l'occhio sinistro è la prima

block_rl

Entrambi gli occhi sono collegati in un unico blocco, la vista con l'occhio destro è la prima

Ad esempio, è possibile creare una clip 3D WebM utilizzando la seguente riga di comando:

ffmpeg -i sample_left_right_clip.mpg -an -c:v libvpx -metadata stereo_mode=left_right -y stereo_clip.webm

4.57.2 Opzioni

reserve_index_space size

Per impostazione predefinita, questo muxer scrive l'indice per la ricerca (chiamato cue in termini Matroska) alla fine del file, perché non può sapere in anticipo quanto spazio lasciare per l'indice all'inizio del file. Tuttavia, per alcuni casi d'uso, ad es. streaming dove la ricerca è possibile ma lenta – è utile mettere l'indice all'inizio del file.

Se questa opzione è impostata su un valore diverso da zero, il muxer riserverà una dimensione di byte di spazio nell'intestazione del file e quindi proverà a scrivere i cue lì al termine del muxing. Se lo spazio riservato non è sufficiente non verrà scritta alcuna Cue, il file verrà finalizzato e la scrittura del trailer restituirà un errore. Una dimensione sicura per la maggior parte dei casi d'uso dovrebbe essere di circa 50 kB per ora di video.

Tieni presente che le cue vengono scritte solo se l'output è ricercabile e questa opzione non avrà alcun effetto in caso contrario.

cues_to_front bool

Se impostato, il muxer scriverà l'indice all'inizio del file spostando i dati principali se necessario. Questo può essere combinato con Reserve_index_space nel qual caso i dati vengono spostati solo se lo spazio inizialmente riservato risulta essere insufficiente.

Questa opzione viene ignorata se l'output non è ricercabile.

cluster_size_limit size

Archivia al massimo la quantità di byte fornita in un cluster.

Se non specificato, il limite viene impostato automaticamente su un valore fisso codificato.

cluster_time_limit duration

Memorizza al massimo il numero di millisecondi fornito in un cluster.

Se non specificato, il limite viene impostato automaticamente su un valore fisso codificato.

dash bool

Crea un file WebM conforme alle specifiche WebM DASH. Per impostazione predefinita è impostato su false.

dash_track_number index

Numero di traccia per il flusso DASH. Di default è impostato su 1.

live bool

Scrivi i file presupponendo che si tratti di uno streaming live. Per impostazione predefinita è impostato su false.

allow_raw_vfw bool

Consenti la modalità VFW grezza. Per impostazione predefinita è impostato su false.

flipped_raw_rgb bool

Se impostato su true, memorizza l'altezza positiva per le bitmap RGB grezze, che indica che la bitmap è memorizzata dal basso verso l'alto. Tieni presente che questa opzione non capovolge la bitmap, operazione che deve essere eseguita manualmente in anticipo, ad es. utilizzando il filtro "vflip". L'impostazione predefinita è false e indica che la bitmap è archiviata dall'alto verso il basso.

write_crc32 bool

Scrivi un elemento CRC32 all'interno di ogni elemento di Livello 1. Per impostazione predefinita è impostato su true. Questa opzione viene ignorata per WebM.

default_mode mode

Controlla come verrà impostato il FlagDefault delle tracce di output. Influisce su quali tracce i giocatori dovrebbero riprodurre per impostazione predefinita. La modalità predefinita è "passthrough’.

infer

Ogni traccia con disposizione predefinita avrà il FlagDefault impostato. Inoltre, per ciascun tipo di traccia (audio, video o sottotitoli), se non esiste alcuna traccia con disposizione predefinita di questo tipo, la prima traccia di questo tipo verrà contrassegnata come predefinita (se esistente). Ciò garantisce che il flag predefinito sia impostato in modo sensato anche se l'input proviene da contenitori a cui manca il concetto di tracce predefinite.

infer_no_subs

Questa modalità è la stessa di deduzione, tranne per il fatto che se non esiste alcuna traccia di sottotitoli con disposizione predefinita, nessuna traccia di sottotitoli verrà contrassegnata come predefinita.

passthrough

In questa modalità il FlagDefault viene impostato se e solo se il flag AV_DISPOSITION_DEFAULT è impostato nella disposizione del flusso corrispondente.

4,58 md5

Formato di test MD5.

Questa è una variante dell'hash muxer. A differenza di quel muxer, per impostazione predefinita utilizza la funzione hash MD5.

Vedi anche i muxer hash e framemd5.

4.58.1 Esempi

  • Per calcolare l'hash MD5 dell'input convertito in audio e video non elaborati e memorizzarlo nel file out.md5:ffmpeg -i INPUT -f md5 out.md5
  • Per stampare l'hash MD5 su stdout:ffmpeg -i INPUT -f md5 -

MicroDVD 4,59

Muxer del formato sottotitoli MicroDVD.

Questo muxer accetta un singolo flusso di sottotitoli "microdvd".

4,60 mmf

Muxer in formato SMAF (Mobile Application Format) di musica sintetica.

SMAF è un formato di dati musicali specificato da Yamaha per dispositivi elettronici portatili, come telefoni cellulari e assistenti digitali personali.

Questo muxer accetta un singolo 'adpcm_yamahaFlusso audio. Questo muxer accetta un singolo flusso audio "adpcm_yamaha".

4.61mp3

Il muxer MP3 scrive un flusso MP3 grezzo con le seguenti funzionalità opzionali:

  • Un'intestazione di metadati ID3v2 all'inizio (abilitata per impostazione predefinita). Sono supportate le versioni 2.3 e 2.4, l'opzione privata id3v2_version controlla quale viene utilizzata (3 o 4). L'impostazione di id3v2_version su 0 disabilita completamente l'intestazione ID3v2.
  • Un frame Xing/LAME subito dopo l'intestazione ID3v2 (se presente). È abilitato per impostazione predefinita, ma verrà scritto solo se l'output è ricercabile. L'opzione write_xing private può essere utilizzata per disabilitarlo. Il frame contiene varie informazioni che possono essere utili al decoder, come la durata dell'audio o il ritardo dell'encoder.
  • Un tag ID3v1 legacy alla fine del file (disabilitato per impostazione predefinita). Può essere abilitato con l'opzione private write_id3v1, ma poiché le sue capacità sono molto limitate, il suo utilizzo non è raccomandato.

Esempi:

Scrivi un mp3 con un'intestazione ID3v2.3 e un piè di pagina ID3v1:

ffmpeg -i INPUT -id3v2_version 3 -write_id3v1 1 out.mp3

Per allegare un'immagine ad un file mp3 selezionare sia l'audio che il flusso di immagini con mappa:

ffmpeg -i input.mp3 -i cover.png -c copy -map 0 -map 1
-metadata:s:v title="Album cover" -metadata:s:v comment="Cover (Front)" out.mp3

Scrivi un MP3 "pulito" senza funzionalità extra:

ffmpeg -i input.wav -write_xing 0 -id3v2_version 0 out.mp3

4,62 megabit

Muxer del flusso di trasporto MPEG.

Questo muxer implementa la norma ISO 13818-1 e parte della norma ETSI EN 300 468.

Le impostazioni dei metadati riconosciute in mpegts muxer sono service_provider e service_name. Se non sono impostati, il valore predefinito per service_provider è "FFmpeg' e il valore predefinito per service_name è 'Service01'.

4.62.1 Opzioni

Le opzioni del muxer sono:

mpegts_transport_stream_id integer

Imposta il "transport_stream_id". Questo identifica un transponder in DVB. Il valore predefinito è 0x0001.

mpegts_original_network_id integer

Imposta "original_network_id". Questo è l'identificatore univoco di una rete in DVB. Il suo utilizzo principale è nell’identificazione univoca di un servizio attraverso il percorso ‘Original_Network_ID, Transport_Stream_ID’. Il valore predefinito è 0x0001.

mpegts_service_id integer

Imposta il "service_id", noto anche come programma in DVB. Il valore predefinito è 0x0001.

mpegts_service_type integer

Imposta il programma "service_type". L'impostazione predefinita è digital_tv. Accetta le seguenti opzioni:

hex_value

Qualsiasi valore esadecimale compreso tra 0x01 e 0xff come definito in ETSI 300 468.

digital_tv

Servizio TV digitale.

digital_radio

Servizio Radio Digitale.

teletext

Servizio televideo.

advanced_codec_digital_radio

Servizio di radio digitale con codec avanzato.

mpeg2_digital_hdtv

Servizio HDTV digitale MPEG2.

advanced_codec_digital_sdtv

Servizio avanzato Codec Digital SDTV.

advanced_codec_digital_hdtv

Servizio avanzato Codec Digital HDTV.

mpegts_pmt_start_pid integer

Imposta il primo PID per i PMT. Il valore predefinito è 0x1000, il minimo è 0x0020, il massimo è 0x1ffa. Questa opzione non ha effetto in modalità m2ts in cui il PID PMT è fisso 0x0100.

mpegts_start_pid integer

Imposta il primo PID per i flussi elementari. Il valore predefinito è 0x0100, il minimo è 0x0020, il massimo è 0x1ffa. Questa opzione non ha effetto nella modalità m2ts in cui i PID del flusso elementare sono fissi.

mpegts_m2ts_mode boolean

Abilita la modalità m2ts se impostata su 1. Il valore predefinito è -1 che disabilita la modalità m2ts.

muxrate integer

Imposta un muxrate costante. L'impostazione predefinita è VBR.

pes_payload_size integer

Imposta il payload minimo del pacchetto PES in byte. L'impostazione predefinita è 2930.

mpegts_flags flags

Imposta i flag MPEGTS. Accetta le seguenti opzioni:

resend_headers

Riemettere PAT/PMT prima di scrivere il pacchetto successivo.

latm

Utilizzare la pacchettizzazione LATM per AAC.

pat_pmt_at_frames

Riemettere PAT e PMT ad ogni fotogramma video.

system_b

Conforme al Sistema B (DVB) anziché al Sistema A (ATSC).

initial_discontinuity

Contrassegna il pacchetto iniziale di ciascun flusso come discontinuità.

nit

Emetti tabella NIT.

omit_rai

Disabilita la scrittura dell'indicatore di accesso casuale.

mpegts_copyts boolean

Conserva i timestamp originali, se il valore è impostato su 1. Il valore predefinito è -1, che comporta lo spostamento dei timestamp in modo che inizino da 0.

omit_video_pes_length boolean

Omettere la lunghezza del pacchetto PES per i pacchetti video. Il valore predefinito è 1 (vero).

pcr_period integer

Sostituisci il tempo di ritrasmissione PCR predefinito in millisecondi. Il valore predefinito è -1, il che significa che l'intervallo PCR verrà determinato automaticamente: 20 ms viene utilizzato per i flussi CBR, il multiplo più alto della durata del frame che è inferiore a 100 ms viene utilizzato per i flussi VBR.

pat_period duration

Tempo massimo in secondi tra le tabelle PAT/PMT. L'impostazione predefinita è 0,1.

sdt_period duration

Tempo massimo in secondi tra le tabelle SDT. L'impostazione predefinita è 0,5.

nit_period duration

Tempo massimo in secondi tra le tabelle NIT. L'impostazione predefinita è 0,5.

tables_version integer

Imposta la versione PAT, PMT, SDT e NIT (predefinito 0, i valori validi sono compresi tra 0 e 31 inclusi). Questa opzione consente di aggiornare la struttura del flusso in modo che il consumatore standard possa rilevare la modifica. Per fare ciò, riaprire l'output AVFormatContext (in caso di utilizzo dell'API) o riavviare l'istanza di ffmpeg, modificando ciclicamente il valore tables_version:ffmpeg -i source1.ts -codec copy -f mpegts -tables_version 0 udp://1.1.1.1:1111ffmpeg -i source2.ts -codec copy -f mpegts -tables_version 1 udp://1.1.1.1:1111...ffmpeg -i source3.ts -codec copy -f mpegts -tables_version 31 udp://1.1.1.1:1111ffmpeg -i source1.ts -codec copy -f mpegts -tables_version 0 udp://1.1.1.1:1111ffmpeg -i source2.ts -codec copy -f mpegts -tables_version 1 udp://1.1.1.1:1111...

4.62.2 Esempio

ffmpeg -i file.mpg -c copy \
     -mpegts_original_network_id 0x1122 \
     -mpegts_transport_stream_id 0x3344 \
     -mpegts_service_id 0x5566 \
     -mpegts_pmt_start_pid 0x1500 \
     -mpegts_start_pid 0x150 \
     -metadata service_provider="Some provider" \
     -metadata service_name="Some Channel" \
     out.ts

4.63 mxf, mxf_d10, mxf_opatom

Multiplexer MXF.

4.63.1 Opzioni

Le opzioni del muxer sono:

store_user_comments bool

Imposta se i commenti degli utenti devono essere archiviati se disponibili o mai. IRT D-10 non consente commenti degli utenti. L'impostazione predefinita è quindi scriverli per mxf e mxf_opatom ma non per mxf_d10

4,64 nullo

Muxer nullo.

Questo muxer non genera alcun file di output, è utile principalmente per scopi di test o benchmark.

Ad esempio per confrontare la decodifica con ffmpeg puoi usare il comando:

ffmpeg -benchmark -i INPUT -f null out.null

Tieni presente che il comando precedente non legge o scrive il file out.null, ma specificare il file di output è richiesto dalla sintassi di ffmpeg.

In alternativa puoi scrivere il comando come:

ffmpeg -benchmark -i INPUT -f null -

4,65 dado

-syncpoints flags

Modifica l'utilizzo del punto di sincronizzazione in nut:

Per impostazione predefinita, utilizzare i normali aiuti per la ricerca a basso costo.
Nessuno non utilizza affatto i punti di sincronizzazione, riducendo il sovraccarico ma rendendo il flusso non ricercabile;

L'uso di questa opzione non è consigliato, poiché i file risultanti sono molto sensibili ai danni e la ricerca non è possibile. Inoltre, in generale, il sovraccarico derivante dai punti di sincronizzazione è trascurabile. Nota: -write_index 0 può essere utilizzato per disabilitare tutte le tabelle di dati in crescita, consentendo di eseguire il multiplexing di flussi infiniti con memoria limitata e senza questi svantaggi.

Con timestamp estendi il punto di sincronizzazione con un campo wallclock.

I flag none e timestamp sono sperimentali.

-write_index bool

Scrivi indice alla fine, l'impostazione predefinita è scrivere un indice.

ffmpeg -i INPUT -f_strict experimental -syncpoints none - | processor

4.66 ogg

Muxer contenitore Ogg.

-page_duration duration

Durata della pagina preferita, in microsecondi. Il muxer tenterà di creare pagine della durata di circa microsecondi. Ciò consente all'utente di scendere a compromessi tra la granularità della ricerca e il sovraccarico del contenitore. Il valore predefinito è 1 secondo. Un valore pari a 0 riempirà tutti i segmenti, rendendo le pagine quanto più grandi possibile. Un valore pari a 1 utilizzerà effettivamente 1 pacchetto per pagina nella maggior parte delle situazioni, fornendo una piccola granularità di ricerca al costo di un sovraccarico aggiuntivo del contenitore.

-serial_offset value

Valore seriale da cui impostare il numero di serie dei flussi. Impostandolo su valori diversi e sufficientemente grandi si garantisce che i file ogg prodotti possano essere concatenati in modo sicuro.

4,67 rcwt

RCWT (Raw Captions With Time) è un formato nativo di ccextractor, uno strumento open source comunemente utilizzato per l'elaborazione di sorgenti di sottotitoli chiusi (CC) 608/708. Può essere utilizzato per archiviare il bitstream CC estratto originale e per produrre un file sorgente per la successiva elaborazione o conversione. Il formato consente l'interoperabilità tra ccextractor e FFmpeg, è semplice da analizzare e può essere utilizzato per creare un backup della presentazione CC.

Questo muxer implementa la specifica a partire da marzo 2024, che è rimasta stabile e invariata da aprile 2014.

Questo muxer avrà alcune sfumature rispetto al modo in cui ccextractor esegue il mux di RCWT. Di conseguenza, finora non sono stati osservati problemi di compatibilità durante l'elaborazione dell'output con ccextractor, ma il chilometraggio può variare e gli output non corrisponderanno esattamente in termini di bit.

Una specifica gratuita di RCWT può essere trovata qui: https://github.com/CCExtractor/ccextractor/blob/master/docs/BINARY_FILE_FORMAT.TXT

4.67.1 Esempi

  • Estrai i sottotitoli codificati in RCWT utilizzando lavfi:ffmpeg -f lavfi -i "movie=INPUT.mkv[out+subcc]" -map 0:s:0 -c:s copy -f rcwt CC.rcwt.bin

4.68 segmento, stream_segment, ssegment

Segmentatore di flusso di base.

Questo muxer trasmette i flussi a un numero di file separati di durata quasi fissa. Il modello del nome del file di output può essere impostato in modo simile a image2 o utilizzando un modello strftime se l'opzione strftime è abilitata.

Stream_segment è una variante del muxer utilizzata per scrivere nei formati di output dello streaming, ovvero che non richiedono intestazioni globali, ed è consigliata per l'output ad es. ai segmenti del flusso di trasporto MPEG. ssegment è un alias più breve per stream_segment.

Ogni segmento inizia con un fotogramma chiave del flusso di riferimento selezionato, impostato tramite l'opzione reference_stream.

Tieni presente che se desideri una suddivisione accurata per un file video, devi fare in modo che i fotogrammi chiave di input corrispondano ai tempi di divisione esatti previsti dal segmentatore, altrimenti il muxer dei segmenti inizierà il nuovo segmento con il fotogramma chiave trovato subito dopo l'inizio specificato tempo.

Il multiplexer di segmenti funziona meglio con un singolo video con frequenza fotogrammi costante.

Opzionalmente può generare un elenco dei segmenti creati, impostando l'opzione segment_list. Il tipo di elenco è specificato dall'opzione segment_list_type. I nomi dei file di voce nell'elenco dei segmenti sono impostati per impostazione predefinita sul nome base dei file di segmento corrispondenti.

Vedi anche il muxer hls, che fornisce un'implementazione più specifica per la segmentazione HLS.

4.68.1 Opzioni

Il multiplexer di segmenti supporta le seguenti opzioni:

increment_tc 1|0

Se impostato su 1, incrementa il timecode tra ciascun segmento. Se selezionato, l'input deve avere un timecode nel primo flusso video. Il valore predefinito è 0.

reference_stream specifier

Imposta il flusso di riferimento, come specificato dall'identificatore di stringa. Se l'identificatore è impostato su auto, il riferimento viene scelto automaticamente. Altrimenti deve essere uno stream specifier (vedi il capitolo “Stream specifiers” nel manuale di ffmpeg) che specifica lo stream di riferimento. Il valore predefinito è automatico.

segment_format format

Sostituisci il formato del contenitore interno, per impostazione predefinita viene indovinato dall'estensione del nome file.

segment_format_options options_list

Imposta le opzioni del formato di output utilizzando un elenco :-separato di parametri chiave=valore. I valori contenenti il carattere speciale: devono essere sottoposti a escape.

segment_list name

Genera anche un file di elenco denominato name. Se non specificato non viene generato alcun file di elenco.

segment_list_flags flags

Imposta i flag che influenzano la generazione dell'elenco dei segmenti.

Attualmente supporta i seguenti flag:

cache

Consenti la memorizzazione nella cache (influenza solo i file di elenco M3U8).

live

Consenti la generazione di file live-friendly.

segment_list_size size

Aggiorna il file di elenco in modo che contenga segmenti di dimensioni massime. Se 0 il file di elenco conterrà tutti i segmenti. Il valore predefinito è 0.

segment_list_entry_prefix prefix

Anteporre il prefisso a ciascuna voce. Utile per generare percorsi assoluti. Per impostazione predefinita non viene applicato alcun prefisso.

segment_list_type type

Seleziona il formato dell'inserzione.

Sono riconosciuti i seguenti valori:

flat

Genera un elenco semplice per i segmenti creati, un segmento per riga.

csv, ext

Genera un elenco per i segmenti creati, un segmento per riga, ciascuna riga corrisponde al formato (valori separati da virgole):segment_filename,segment_start_time,segment_end_time

Segment_filename è il nome del file di output generato dal muxer in base al modello fornito. Se necessario, viene applicato l'escape CSV (secondo RFC4180).

Segment_start_time e segment_end_time specificano l'ora di inizio e di fine del segmento espressa in secondi.

Un file di elenco con il suffisso ".csv" o ".ext" selezionerà automaticamente questo formato.

"ext" è deprecato a favore di "csv".

ffconcat

Genera un file ffconcat per i segmenti creati. Il file risultante può essere letto utilizzando il demuxer concat FFmpeg.

Un file di elenco con il suffisso ".ffcat" o ".ffconcat" selezionerà automaticamente questo formato.

m3u8

Genera un file M3U8 esteso, versione 3, compatibile con http://tools.ietf.org/id/draft-pantos-http-live-streaming.

Un file di elenco con il suffisso ".m3u8" selezionerà automaticamente questo formato.

Se non specificato, il tipo viene ricavato dal suffisso del nome del file di elenco.

segment_time time

Imposta la durata del segmento su ora, il valore deve essere una specifica di durata. Il valore predefinito è "2". Vedi anche l'opzione segment_times.

Tieni presente che la suddivisione potrebbe non essere accurata, a meno che non forzi i fotogrammi chiave del flusso di riferimento in un determinato momento. Vedi la nota introduttiva e gli esempi di seguito.

min_seg_duration time

Imposta la durata minima del segmento su time, il valore deve essere una specifica di durata. Ciò impedisce al muxer di terminare i segmenti con una durata inferiore a questo valore. Efficace solo con segment_time. Il valore predefinito è "0".

segment_atclocktime 1|0

Se impostato su "1" viene suddiviso a intervalli orari regolari a partire dalle ore 00:00. Il valore temporale specificato in segment_time viene utilizzato per impostare la lunghezza dell'intervallo di suddivisione.

Ad esempio, con segment_time impostato su "900" è possibile creare file alle 12:00, 12:15, 12:30, ecc.

Il valore predefinito è "0".

segment_clocktime_offset duration

Ritarda i tempi di suddivisione del segmento con la durata specificata quando si utilizza segment_atclocktime.

Ad esempio, con segment_time impostato su "900" e segment_clocktime_offset impostato su "300" ciò rende possibile creare file alle 12:05, 12:20, 12:35, ecc.

Il valore predefinito è "0".

segment_clocktime_wrap_duration duration

Forza il segmentatore ad avviare un nuovo segmento solo se un pacchetto raggiunge il muxer entro la durata specificata dopo l'ora dell'orologio di segmentazione. In questo modo è possibile rendere il segmentatore più resistente ai salti all'ora locale all'indietro, come i secondi intercalari o la transizione all'ora solare dall'ora legale.

L'impostazione predefinita è la durata massima possibile, ovvero l'avvio di un nuovo segmento indipendentemente dal tempo trascorso dall'ultimo orario dell'orologio.

segment_time_delta delta

Specificare l'ora di precisione quando si seleziona l'ora di inizio per un segmento, espressa come specifica di durata. Il valore predefinito è "0".

Quando viene specificato delta, un fotogramma chiave inizierà un nuovo segmento se il suo PTS soddisfa la relazione:PTS >= start_time - time_delta

Questa opzione è utile quando si divide il contenuto video, che viene sempre diviso ai limiti GOP, nel caso in cui venga trovato un fotogramma chiave subito prima del tempo di divisione specificato.

In particolare può essere utilizzato in combinazione con l'opzione force_key_frames di ffmpeg. I tempi dei fotogrammi chiave specificati da force_key_frames potrebbero non essere impostati accuratamente a causa di problemi di arrotondamento, con la conseguenza che un tempo dei fotogrammi chiave potrebbe risultare impostato appena prima del tempo specificato. Per i video con frame rate costante, un valore di 1/(2*frame_rate) dovrebbe risolvere il caso peggiore di mancata corrispondenza tra il tempo specificato e il tempo impostato da force_key_frames.

segment_times times

Specificare un elenco di punti di divisione. times contiene un elenco di specifiche di durata separate da virgole, in ordine crescente. Vedi anche ilsegment_timeOpzione.

segment_frames frames

Specificare un elenco di numeri di fotogrammi video divisi. frames contiene un elenco di numeri interi separati da virgole, in ordine crescente.

Questa opzione specifica di iniziare un nuovo segmento ogni volta che viene trovato un fotogramma chiave del flusso di riferimento e il numero sequenziale (a partire da 0) del fotogramma è maggiore o uguale al valore successivo nell'elenco.

segment_wrap limit

Avvolge l'indice del segmento una volta raggiunto il limite.

segment_start_number number

Imposta il numero di sequenza del primo segmento. Il valore predefinito è 0.

strftime 1|0

Utilizzare la funzione strftime per definire il nome dei nuovi segmenti da scrivere. Se selezionato, il nome del segmento di output deve contenere un modello di funzione strftime. Il valore predefinito è 0.

break_non_keyframes 1|0

Se abilitato, consente ai segmenti di iniziare su fotogrammi diversi dai fotogrammi chiave. Ciò migliora il comportamento di alcuni giocatori quando il tempo tra i fotogrammi chiave non è coerente, ma potrebbe peggiorare le cose per altri e causare alcune stranezze durante la ricerca. Il valore predefinito è 0.

reset_timestamps 1|0

Reimposta i timestamp all'inizio di ogni segmento, in modo che ogni segmento inizi con timestamp prossimi allo zero. Ha lo scopo di facilitare la riproduzione dei segmenti generati. Potrebbe non funzionare con alcune combinazioni di muxer/codec. È impostato su 0 per impostazione predefinita.

initial_offset offset

Specificare l'offset del timestamp da applicare ai timestamp dei pacchetti di output. L'argomento deve essere una specifica di durata temporale e il valore predefinito è 0.

write_empty_segments 1|0

Se abilitato, scrive un segmento vuoto se non ci sono pacchetti durante il periodo in cui normalmente si estende un segmento. Altrimenti il segmento verrà riempito con il pacchetto successivo scritto. Il valore predefinito è 0.

Assicurati di richiedere un GOP chiuso durante la codifica e di impostare la dimensione GOP per adattarla al vincolo temporale del segmento.

4.68.2 Esempi

  • Rimuovi il contenuto del file in.mkv in un elenco di segmenti out-000.nut, out-001.nut, ecc. e scrivi l'elenco dei segmenti generati in out.list:ffmpeg -i in.mkv -codec hevc -flags +cgop -g 60 -map 0 -f segment -segment_list out.list out%03d.nut
  • Segmenta l'input e imposta le opzioni del formato di output per i segmenti di output:ffmpeg -i in.mkv -f segment -segment_time 10 -segment_format_options movflags=+faststart out%03d.mp4
  • Segmenta il file di input in base ai punti di divisione specificati dall'opzione segment_times:ffmpeg -i in.mkv -codec copy -map 0 -f segment -segment_list out.csv -segment_times 1,2,3,5,8,13,21 out%03d.nut
  • Utilizza l'opzione ffmpeg force_key_frames per forzare i fotogrammi chiave nell'input nella posizione specificata, insieme all'opzione del segmento segment_time_delta per tenere conto dei possibili arrotondamenti operati durante l'impostazione della durata dei fotogrammi chiave.ffmpeg -i in.mkv -force_key_frames 1,2,3,5,8,13,21 -codec:v mpeg4 -codec:a pcm_s16le -map 0 \-f segment -segment_list out.csv -segment_times 1,2,3,5,8,13,21 -segment_time_delta 0.05 out%03d.nutPer forzare i fotogrammi chiave sul file di input, è necessaria la transcodifica.
  • Segmenta il file di input dividendo il file di input in base alla sequenza dei numeri di fotogramma specificata con l'opzione segment_frames:ffmpeg -i in.mkv -codec copy -map 0 -f segment -segment_list out.csv -segment_frames 100,200,300,500,800 out%03d.nut
  • Converti i segmenti in.mkv in TS utilizzando gli encoder libx264 e aac:ffmpeg -i in.mkv -map 0 -codec:v libx264 -codec:a aac -f ssegment -segment_list out.list out%03d.ts
  • Segmenta il file di input e crea una playlist live M3U8 (può essere utilizzata come sorgente HLS live):ffmpeg -re -i in.mkv -codec copy -map 0 -f segment -segment_list playlist.m3u8 \-segment_list_flags +live -segment_time 10 out%03d.mkv

4.69 streaming fluido

Il muxer Smooth Streaming genera una serie di file (manifest, blocchi) adatti per essere serviti con un server web convenzionale.

window_size

Specificare il numero di frammenti conservati nel manifest. Predefinito 0 (mantieni tutto).

extra_window_size

Specificare il numero di frammenti mantenuti all'esterno del manifest prima della rimozione dal disco. Predefinito 5.

lookahead_count

Specificare il numero di frammenti lookahead. Predefinito 2.

min_frag_duration

Specificare la durata minima del frammento (in microsecondi). Predefinito 5000000.

remove_at_exit

Specificare se rimuovere tutti i frammenti al termine. Predefinito 0 (non rimuovere).

4.70 streamhash

Formato di test dell'hash per flusso.

Questo muxer calcola e stampa un hash crittografico di tutti i frame di input, per flusso. Questo può essere utilizzato per controlli di uguaglianza senza dover eseguire un confronto binario completo.

Per impostazione predefinita, i fotogrammi audio vengono convertiti in audio non elaborato a 16 bit firmato e i fotogrammi video in video non elaborato prima di calcolare l'hash, ma è possibile utilizzare anche l'output di conversioni esplicite ad altri codec. I timestamp vengono ignorati. Utilizza la funzione hash crittografica SHA-256 per impostazione predefinita, ma supporta molti altri algoritmi.

L'output del muxer è costituito da una riga per flusso nel formato: streamindex,streamtype,algo=hash, dove streamindex è l'indice del flusso mappato, streamtype è un singolo carattere che indica il tipo di flusso, algo è una breve stringa che rappresenta la funzione hash utilizzata e hash è un numero esadecimale che rappresenta l'hash calcolato.

hash algorithm

Utilizza la funzione hash crittografica specificata dall'algoritmo di stringa. I valori supportati includono MD5, murmur3, RIPEMD128, RIPEMD160, RIPEMD256, RIPEMD320, SHA160, SHA224, SHA256 (predefinito), SHA512/224, SHA512/256, SHA384, SHA512, CRC32 e adler32.

4.70.1 Esempi

Per calcolare l'hash SHA-256 dell'input convertito in audio e video non elaborati e memorizzarlo nel file out.sha256:

ffmpeg -i INPUT -f streamhash out.sha256

Per stampare un hash MD5 su stdout utilizzare il comando:

ffmpeg -i INPUT -f streamhash -hash md5 -

Vedi anche i muxer hash e framehash.

4,71 tee

Il tee muxer può essere utilizzato per scrivere gli stessi dati su diversi output, come file o flussi. Può essere utilizzato, ad esempio, per trasmettere in streaming un video su una rete e contemporaneamente salvarlo su disco.

È diverso dallo specificare diversi output nello strumento da riga di comando ffmpeg. Con il tee muxer, i dati audio e video verranno codificati una sola volta. Con gli output multipli convenzionali, vengono avviate più operazioni di codifica in parallelo, il che può essere un processo molto costoso. Il tee muxer non è utile quando si utilizza direttamente l'API libavformat perché è quindi possibile inviare gli stessi pacchetti direttamente a diversi muxer.

Poiché il tee muxer non rappresenta alcun formato di output particolare, ffmpeg non può selezionare automaticamente i flussi di output. Pertanto tutti i flussi destinati all'output devono essere specificati utilizzando -map. Vedi gli esempi qui sotto.

Alcuni codificatori potrebbero richiedere opzioni diverse a seconda del formato di output; il rilevamento automatico di questo non può funzionare con il tee muxer, quindi devono essere specificati esplicitamente. L'esempio principale è il flag global_header.

Le uscite slave sono specificate nel nome file assegnato al muxer, separate da '|'. Se uno qualsiasi dei nomi dello slave contiene il separatore '|', spazi iniziali o finali o qualsiasi carattere speciale, è necessario eseguire l'escape (vedere (ffmpeg-utils) la sezione "Quoting and escaping" nel manuale ffmpeg-utils(1)) .

4.71.1 Opzioni

use_fifo bool

Se impostato su 1, gli output slave verranno elaborati in thread separati utilizzando fifo muxer. Ciò consente di compensare la diversa velocità/latenza/affidabilità degli output e impostare il ripristino trasparente. Per impostazione predefinita questa funzionalità è disattivata.

fifo_options

Opzioni per passare alle istanze fifo pseudo-muxer. Vedi fifo.

Le opzioni del muxer possono essere specificate per ogni slave anteponendole come un elenco di coppie chiave=valore separate da ":", tra parentesi quadre. Se i valori delle opzioni contengono un carattere speciale o il separatore ’:’, devono essere sottoposti a escape; nota che questa è una fuga di secondo livello.

Vengono inoltre riconosciute le seguenti opzioni speciali:

f

Specificare il nome del formato. Obbligatorio se non può essere dedotto dall'URL di output.

bsfs[/spec]

Specificare un elenco di filtri bitstream da applicare all'output specificato.

È possibile specificare a quali flussi si applica un determinato filtro bitstream, aggiungendo uno specificatore di flusso all'opzione separata da /. spec deve essere uno specificatore di flusso (vedere Specificatori di flusso di formato).

Se l'identificatore del flusso non è specificato, i filtri del flusso di bit verranno applicati a tutti i flussi nell'output. Ciò causerà il fallimento dell'operazione di output se l'output contiene flussi a cui non è possibile applicare il filtro bitstream, ad es. h264_mp4toannexb applicato a un output contenente un flusso audio.

Le opzioni per un filtro bitstream devono essere specificate nel formato opt=value.

È possibile specificare diversi filtri bitstream, separati da ",".

use_fifo bool

Ciò consente di sovrascrivere l'opzione use_fifo del muxer tee per il singolo muxer slave.

fifo_options

Ciò consente di sovrascrivere fifo_options del muxer tee per il singolo muxer slave. Vedi fifo.

select

Seleziona i flussi che devono essere mappati sull'output slave, specificati da uno specificatore di flusso. Se non specificato, per impostazione predefinita vengono applicati tutti i flussi mappati. Ciò causerà il fallimento dell'operazione di output se il formato di output non accetta tutti i flussi mappati.

Puoi utilizzare più identificatori di flusso separati da virgole (,) ad esempio: a:0,v

onfail

Specificare il comportamento in caso di errore di output. Questo può essere impostato su Interrompi (che è l'impostazione predefinita) o su Ignora. l'interruzione causerà il fallimento dell'intero processo in caso di guasto su questo output slave. ignore ignorerà l'errore su questo output, quindi gli altri output continueranno senza essere influenzati.

4.71.2 Esempi

  • Codifica qualcosa ed entrambi archivialo in un file WebM e trasmettilo in streaming come MPEG-TS su UDP:ffmpeg -i ... -c:v libx264 -c:a mp2 -f tee -map 0:v -map 0:a  "archive-20121107.mkv|[f=mpegts]udp://10.0.1.255:1234/"
  • Come sopra, ma continua lo streaming anche se l'output sul file locale fallisce (ad esempio l'unità locale si riempie):ffmpeg -i ... -c:v libx264 -c:a mp2 -f tee -map 0:v -map 0:a  "[onfail=ignore]archive-20121107.mkv|[f=mpegts]udp://10.0.1.255:1234/"
  • Usa ffmpeg per codificare l'input e inviare l'output a tre diverse destinazioni. Il filtro bitstream dump_extra viene utilizzato per aggiungere informazioni extradata a tutti i pacchetti di fotogrammi chiave video in uscita, come richiesto dal formato MPEG-TS. L'opzione select viene applicata a out.aac in modo che contenga solo pacchetti audio.ffmpeg -i ... -map 0 -flags +global_header -c:v libx264 -c:a aac       -f tee "[bsfs/v=dump_extra=freq=keyframe]out.ts|[movflags=+faststart]out.mp4|[select=a]out.aac"
  • Come sopra, ma seleziona solo lo streaming a:1 per l'uscita audio. Tieni presente che è necessario eseguire un escape di secondo livello, poiché ":" è un carattere speciale utilizzato per separare le opzioni.ffmpeg -i ... -map 0 -flags +global_header -c:v libx264 -c:a aac       -f tee "[bsfs/v=dump_extra=freq=keyframe]out.ts|[movflags=+faststart]out.mp4|[select=\'a:1\']out.aac"

4.72webm_chunk

WebM Live Chunk Muxer.

Questo muxer scrive intestazioni e blocchi WebM come file separati che possono essere utilizzati dai client che supportano i flussi WebM Live tramite DASH.

4.72.1 Opzioni

Questo muxer supporta le seguenti opzioni:

chunk_start_index

Indice del primo pezzo (il valore predefinito è 0).

header

Nome del file dell'intestazione in cui verranno scritti i dati di inizializzazione.

audio_chunk_duration

Durata di ciascun blocco audio in millisecondi (il valore predefinito è 5000).

4.72.2 Esempio

ffmpeg -f v4l2 -i /dev/video0 \
       -f alsa -i hw:0 \
       -map 0:0 \
       -c:v libvpx-vp9 \
       -s 640x360 -keyint_min 30 -g 30 \
       -f webm_chunk \
       -header webm_live_video_360.hdr \
       -chunk_start_index 1 \
       webm_live_video_360_%d.chk \
       -map 1:0 \
       -c:a libvorbis \
       -b:a 128k \
       -f webm_chunk \
       -header webm_live_audio_128.hdr \
       -chunk_start_index 1 \
       -audio_chunk_duration 1000 \
       webm_live_audio_128_%d.chk

4.73 webm_dash_manifest

WebM DASH Muxer manifest.

Questo muxer implementa la specifica WebM DASH Manifest per generare l'XML manifest DASH. Supporta anche la generazione di manifest per i live streaming DASH.

Per ulteriori informazioni, vedere:

4.73.1 Opzioni

Questo muxer supporta le seguenti opzioni:

adaptation_sets

Questa opzione ha la seguente sintassi: "id=x,streams=a,b,c id=y,streams=d,e" dove x e y sono gli identificatori univoci dei set di adattamento e a,b,c,d e e sono gli indici dei corrispondenti flussi audio e video. Utilizzando questa opzione è possibile aggiungere qualsiasi numero di set di adattamento.

live

Impostalo su 1 per creare un DASH Manifest in live streaming. Impostazione predefinita: 0.

chunk_start_index

Indice iniziale del primo pezzo. Questo andrà nell'attributo "startNumber" dell'elemento "SegmentTemplate" nel manifest. Impostazione predefinita: 0.

chunk_duration_ms

Durata di ogni blocco in millisecondi. Questo andrà nell'attributo "duration" dell'elemento "SegmentTemplate" nel manifest. Predefinito: 1000.

utc_timing_url

URL della pagina che restituirà il timestamp UTC in formato ISO. Questo andrà nell'attributo "value" dell'elemento "UTCTiming" nel manifest. Impostazione predefinita: Nessuna.

time_shift_buffer_depth

Buffer di spostamento temporale più piccolo (in secondi) per il quale è garantita la disponibilità di qualsiasi rappresentazione. Questo andrà nell'attributo "timeShiftBufferDepth" dell'elemento "MPD". Predefinito: 60.

minimum_update_period

Periodo minimo di aggiornamento (in secondi) del manifest. Questo andrà nell'attributo "minimumUpdatePeriod" dell'elemento "MPD". Impostazione predefinita: 0.

4.73.2 Esempio

ffmpeg -f webm_dash_manifest -i video1.webm \
       -f webm_dash_manifest -i video2.webm \
       -f webm_dash_manifest -i audio1.webm \
       -f webm_dash_manifest -i audio2.webm \
       -map 0 -map 1 -map 2 -map 3 \
       -c copy \
       -f webm_dash_manifest \
       -adaptation_sets "id=0,streams=0,1 id=1,streams=2,3" \
       manifest.xml

5 Metadati

FFmpeg è in grado di eseguire il dump dei metadati dai file multimediali in un semplice file di testo simile a INI con codifica UTF-8 e quindi caricarli nuovamente utilizzando il muxer/demuxer dei metadati.

Il formato del file è il seguente:

  1. Un file è costituito da un'intestazione e da una serie di tag di metadati divisi in sezioni, ciascuna sulla propria riga.
  2. L'intestazione è un ";FFMETADATA’, seguita da un numero di versione (ora 1).
  3. I tag dei metadati hanno il formato "chiave=valore"
  4. Immediatamente dopo l'intestazione seguono i metadati globali
  5. Dopo i metadati globali potrebbero esserci sezioni con metadati per flusso/per capitolo.
  6. Una sezione inizia con il nome della sezione in maiuscolo (ad esempio STREAM o CAPITOLO) tra parentesi ("[", "]") e termina con la sezione successiva o la fine del file.
  7. All'inizio di una sezione di capitolo potrebbe esserci una base temporale opzionale da utilizzare per i valori di inizio/fine. Deve essere nel formato "TIMEBASE=num/den", dove num e den sono numeri interi. Se manca la base temporale, si presuppone che gli orari di inizio/fine siano espressi in nanosecondi.
  8. Le righe vuote e le righe che iniziano con ";" o "#" vengono ignorate.
  9. Le chiavi o i valori dei metadati contenenti caratteri speciali ("=", ";", "#", "\" e una nuova riga) devono essere preceduti da una barra rovesciata "\".
  10. Tieni presente che gli spazi bianchi nei metadati (ad esempio "foo = bar") sono considerati parte del tag (nell'esempio sopra la chiave è "foo", il valore è "bar").

Un file ffmetadata potrebbe assomigliare a questo:

;FFMETADATA1
title=bike\\shed
;this is a comment
artist=FFmpeg troll team

[CHAPTER]
TIMEBASE=1/1000
START=0
#chapter ends at 0:01:00
END=60000
title=chapter \#1
[STREAM]
title=multi\
line

Utilizzando il muxer e demuxer ffmetadata è possibile estrarre i metadati da un file di input in un file ffmetadata e quindi transcodificare il file in un file di output con il file ffmetadata modificato.

L'estrazione di un file ffmetadata con ffmpeg avviene come segue:

ffmpeg -i INPUT -f ffmetadata FFMETADATAFILE

Il reinserimento delle informazioni sui metadati modificati dal file FFMETADATAFILE può essere effettuato come segue:

ffmpeg -i INPUT -i FFMETADATAFILE -map_metadata 1 -codec copy OUTPUT
Elenco dei commenti
Caricamento..
Sommario in questa pagina