Come creare un filmato da 5000 file PNG?

Bene, semplice situazione. Ho creato circa 5000 fotogrammi come file PNG che voglio visualizzare un’animazione all’interno di un .NET applicazione. Ogni immagine è 1920×1080 dimensioni e il file PNG utilizza i canali alfa (parziali) di trasparenza. E che sta andando a complicare un po ‘ le cose, perché preferirei mantenerlo trasparente. (Ma se questo è impossibile, devo solo aggiungere un’immagine di sfondo per ogni PNG.)

A causa della grande quantità di immagini, avrei bisogno di un sacco di memoria. Beh, un 1 TB di hard disk e una 12 GB Intel Xeon Quad-core di sistema in esecuzione Vista 64-bit è la soluzione di tali requisiti di memoria. Ma, a meno di un software che è stato creato per il supporto a 64-bit, probabilmente soffocare dopo il caricamento, forse 800 di 5000 immagini. Quindi ho bisogno di uno strumento che può fare questo.

Formato del film non è così importante. Né è la compressione, come lungo come la qualità dell’immagine rimane alto. (E c’è un motivo per il quale ho usato un enorme risoluzione!) Compressione senza perdita di dati sarebbe preferibile, però. Il mio sistema è abbastanza veloce per riprodurre il filmato dopo di nuovo in modo che io non sono preoccupato per la sua velocità. Tuttavia, la qualità dell’immagine è il fattore più importante qui.

Finora, ho trovato due opzioni:
1) trovo qualche strumento gratuito in grado di gestire questa quantità di dati. (Libero, o molto a buon mercato.)
2) scrivo un tale strumento me…

Opzione 1 è un po ‘ fuori luogo qui. Inoltre, come un ingegnere del software, le mie mani sono solo contrazioni per scrivere io! In C#, preferibilmente librerie di terze parti. Quindi la mia domanda:
– Da dove cominciare a scrivere questo di me?


(Nel caso In cui vi state chiedendo, questo film è un’animazione in cui una giovane donna sta passeggiando per le strade di alcune città, passando per numerosi segni che parlare di caratteristiche di un prodotto. Alla fine del film, cammina fino a un grande cartello che indica il nome del prodotto stesso. E ‘ una lungo e continuo di scena, senza interruzioni. E il vero divertimento per creare troppo! E circa 10 GB di immagini…)

 

5 Replies
  1. 11

    se siete su windows, si può anche prendere in virtualdub.
    http://www.virtualdub.org/

    può fare AVIs da bmp, png, ecc.

    • Beh, è il supporto a 64-bit. 🙂 Il download? Di controllo! Installare? Di controllo! In esecuzione? Di controllo! La conversione è riuscito? SÌ! E con il codice sorgente disponibile, quindi la soluzione perfetta. 🙂
    • Io secondo questo; questo è uno strumento ideale per la realizzazione di qualsiasi set di immagini in un video. Installare ffdshow e quindi si ha accesso a H. 264 encoder e altri che lavorano in buona qualità per un alto bitrate.
    • Io non riuscivo a usare questo programma per leggere una cartella di 5000 immagini e la creazione di un video !!
  2. 10

    FFMPEG è in grado di creare un film da una serie di file di immagine, questo è il link per il manuale viene illustrato un esempio:

    http://ffmpeg.org/ffmpeg-doc.html#SEC5

    Per la creazione di file di filmato programaticcaly senza librerie di terze parti… che sta per essere un po ‘ più difficile. Molti formati di film sono tremendamente complicato e di crearne uno senza una libreria esistente sarebbe abbastanza doloroso(se non ho frainteso la tua domanda e non siete in realtà chiedendo circa la creazione dell’effettivo encoder)

    Se non ho interpretato male la tua domanda, facendo una semplice implementazione di un YUV a base di codec del filmato potrebbe essere fattibile. HuffYUV è uno che mi rendo conto che potrebbe non essere troppo difficile.

    • Io non sono troppo appassionato di MPEG, in quanto è un formato di compressione lossy. Mi piacerebbe avere una perdita di formato di filmato prima che ho potuto utilizzare per convertire qualsiasi altro formato che vorrei. Ci dovrebbe essere un formato senza perdita di dati da qualche parte, giusto? Non importa se il filmato finale diventa 40 GB o qualsiasi altra cosa. Ho solo bisogno di avere tutte le 5000 immagini senza perdita di dati in formato di filmato. Ancora, FFmpeg sembra promettente. Non so se è in grado di gestire una quantità di dati così, però. (Né se può essere compilato a 64-bit di applicazione).
    • FFMPEG non dovrebbe avere problemi ta tutti con la gestione che la quantità di dati che, se si va a nanna. Per esempio io l’ho usato per la codifica di un Elefante Sogno (elephantsdream.org) prima, che è di circa 12 GB di png senza perdita di dati.
    • Oh, ho appena notato che volendo preferibilmente lossless codec del filmato. FFMPEG supporta x264 (h.264 encoder) modalità lossless così come un paio di formati YUV (come HuffYUV), che devono essere senza perdita di dati
    • Appena provato su Linux, funziona molto bene. Ma l’installazione richiede di installare yasm anche.
    • Ho usato ffmpeg -r 10 -i %03d.png -pix_fmt yuv420p -vcodec libx264 out.avi.
  3. 6

    Due cose:

    • Sei non intenzione di scrivere una vera e propria video encoder da soli. Non da un longshot. Quindi le opzioni sono o di ri-usare un encoder, o non utilizzare un encoder a tutti.
    • No formato video affrontare con trasparenza. O tu dare a tutti le immagini di sfondo, o non sarà in grado di usare un formato video.

    Ci sono un paio di soluzioni che mi vengono in mente:

    Non importa, non importa la dimensione, ma è fare interessa la qualità. Prima cosa che vorrei chiedervi è: non si ha realmente davvero, non si cura di dimensione? La maggior parte dei formati video (in particolare H. 264) vi darà eccellente qualità notevolmente inferiore, dimensione del file (si pensi a 10x). È a malapena in grado di capire la differenza. Sì, il contenuto è HD, ma HD contenuto sulla TV o un lettore Blu-ray è anche compresso (utilizza H. 264 e VC-1) e va bene per tutti gli altri. Quindi vorrei prendere seriamente in considerazione questo come opzione, come fa il resto tutto molto più facile.

    Se si desidera, si può sempre ricorrere a una perdita di formato video, come HuffYUV. Questo vi darà almeno alcuni di compressione, riducendo la dimensione dei vostri dati video a metà (o più).

    Come ho detto, utilizzando un codificati in formato video, si perde la trasparenza. Se si desidera mantenere la trasparenza, e ancora non cura circa le dimensioni del file, perché non tenere il Png e visualizzare loro come una rapida presentazione dell’applicazione? Se il tuo unico problema con questo è i requisiti di memoria di caricamento di tutti i file Png in memoria in una sola volta… non che. Leggere un paio di fotogrammi in avanti (un importo fisso o come lontano come la memoria permette), e una volta visualizzata una cornice, rimuoverlo dalla memoria e lettura di un nuovo telaio in anticipo. In questo modo si arriva a mantenere una perfetta qualità, la costante requisiti di memoria. L’unico problema è che il disco e processore sarà necessario essere in grado di tenere il passo con la velocità di lettura di 30 Png al secondo (o qualunque sia il vostro frame rate).

    Inoltre, se 5000 immagine separata file troppo pesanti da gestire, si possono avvolgere in un formato di file personalizzato. Un file ZIP in mente come un semplice formato portatile, oppure si può rotolare il vostro proprio.

    • Bene, ho voglia di un master file che posso convertire in altri formati video. Quindi, questo master file deve essere la massima qualità possibili. Quindi, HuffYUV, suona bene. Ma ha bisogno di stare a 1920×1080 e HuffYUV non sembrano supportare questa. Circa la trasparenza, ho già previsto che questo non sarebbe stato possibile, quindi nessun problema. Le dimensioni non sono un problema, poiché il master file viene memorizzato sul mio sistema che ha 1 TB di spazio su disco libero.
  4. 2

    Puoi fare quello che vuoi con mencoder:

    Ecco un link da questa documentazione:
    La codifica di input multiple di file di immagine (JPEG, PNG, TGA, ecc.)

    Sulla trasparenza: non credo che c’è un codec video che supporta transparenct, quindi sei fuori di fortuna qui…

    • Sono molto felice, già con VirtualHub. 🙂 MEncoder sembra troppo buono, ma la necessità di CygWin che non mi rende felice. E, infine, MEncoder NON supporta l’architettura a 64-bit di Windows. VirtualHub fa, così VirtualHub fa un uso migliore delle risorse. Ancora, sembra una buona opzione.
    • Mencoder può essere compilato per windows nativo con mingw, non cygwin è necessario. Si possono trovare mplayer/mencoder file binari di windows qui oss.netfarm.it/mplayer-win32.php.
  5. 1

    O – se siete su Windows, basta usare Movie Maker.

    Si richiede un lote di RAM e potenza di elaborazione, ma è più intuitivo quindi VirtualDub e permette di aggiungere alcuni effetti semplici e titoli.

    • La tua risposta è troppo tardi…
    • Sì, lo so non sarà di aiuto per il tuo caso ;-). Potrebbe tornare utile in futre, però :-).

Lascia un commento