2009-04-20 13 views
16

Spesso devo scrivere le specifiche per la conversione video per alcune delle case di produzione video con cui lavorano i clienti della mia azienda. Sfortunatamente, sono un programmatore prima e "video-ragazzo" sul lato, quindi non so molto su tutti i diversi codec.Che cos'è un buon codec video lossless?

Sto cercando un buon codec lossless che sia sia multipiattaforma (Win e Mac) che cross application (Adobe, Apple, ecc.).

+3

Ti rendi conto che senza perdita ti faranno ... pochi gb/minuto giusto ...? – CookieOfFortune

+0

Non sapevo che esistessero codec senza perdita ... È per il monitoraggio dell'attività cerebrale o simili? Posso immaginare, a volte hanno davvero bisogno di video per essere memorizzati senza perdita di compressione ... hmmm ... –

+13

La compressione senza perdita è in genere necessaria quando non è possibile eseguire tutte le operazioni di modifica/elaborazione delle immagini in un solo passaggio, ma è necessario ottenere risultati di alta qualità . Se stai comprimendo i risultati di ogni fase, l'immagine è pesantemente degradata (anche con una compressione con perdita di larghezza di banda elevata è davvero una perdita dal punto di vista dei pixel), il che potrebbe rendere il prossimo passo impossibile perché il dettaglio originale è scomparso. Solo il video finale è compresso con uno schema di compressione con perdita. – David

risposta

18

huffyuv è sicuramente la soluzione più semplice e troverete diverse implementazioni multipiattaforma come librerie C, ad esempio.

È facilmente incapsulato in file AVI e leggibile dai principali giocatori.

Definizione formato se avete bisogno di interagire con esso: http://multimedia.cx/huffyuv.txt

+0

Ho intenzione di verificare questo - grazie per la vostra risposta! –

1

Ci sono alcuni codec differenti che faranno cross platform.

Cineform è una buona soluzione. Ha sia una versione 444 e una versione RAW.

Se non ti interessa lo spazio occupato e la riproduzione in tempo reale, puoi utilizzare una sequenza di immagini.

Apple Pro-res può ora essere letto sia su Mac che su PC. Tuttavia, la codifica non può essere eseguita dai PC.

Vuoi dire visivamente senza perdita di dati o senza perdita di dati?

0

Se si desidera che non vi sia alcuna perdita di contenuto matematico suggerirei qualcosa come Motion JPEG2000, che ha un'opzione di compressione senza perdita di dati, ma non ha il vasto supporto nelle applicazioni di modifica.

Se si desidera il supporto tra Final Cut Pro di Apple e Adobe Premier, utilizzerei il 444 non compresso se si sta facendo un compositing, o 422 se non lo si è.

16

matematicamente lossess per la migliore compressione: x264. facilmente 1/3 di huffyuv tutte le volte.

visivamente senza perdite, x264 con quantizzatore 1-5 o forse fino a 10. 1-5 è visivamente senza perdita di dati che nemmeno nitidamente affilando si possono vedere artefatti.

+9

Attenzione! È un buon codec, e potrebbe essere "visivamente" senza perdita ad alcune impostazioni per alcuni occhi, ma se stai cercando una vera conservazione dei dati senza perdita, non è così. – meetar

+9

@meetar no, non ha perdite se si imposta il quantizzatore su zero. Ha persino una bandiera per questo! E normalmente stiamo parlando di YV12 (4: 2: 0) ma è possibile passare anche 4: 4: 4 senza perdite, non so di RGB a 24-bit, ma onestamente non ho mai avuto bisogno di così tanta perdita. Il fatto è che H.264 consente l'assenza di perdite (e indipendentemente dal supporto effettivo in x264 stesso, sono abbastanza sicuro che permetta uno spazio cromatico RGB). –

+7

Sono corretto! Lezione appresa: solo perché [il tuo esportatore preferito] non lo consente non significa che il codec non può farlo. – meetar

1

Il codificatore dirac (schroedinger) supporta la compressione lossless molto più efficace di huffyuv ed è supportato da GStreamer e libav. In GStreamer l'opzione è rate-control = 3 per schroedinger:

gst-launch-0.10 filesrc location="$1" ! decodebin2 name=demux \ 
{ matroskamux name=mux ! filesink location="$2" } \ 
{ demux. ! queue ! audioconvert ! vorbisenc quality=0.5 ! queue ! mux. } \ 
{ demux. ! queue ! schroenc rate-control=3 ! mux. }