Se dovessi aggiungere il supporto per un formato di file video e codec, quale sceglieresti?

StackOverflow https://stackoverflow.com/questions/305773

Domanda

Sto cercando di aggiungere supporto per la lettura e la scrittura di file video nella mia applicazione. Se dovessi scegliere esattamente un formato di file e una combinazione di codec in grado di soddisfare la maggior parte degli utenti, quale sceglieresti:

1) MPEG-4 / H.264 (.mp4) 2) AVI / DiVX (.avi) 3) Ogg / Theora (.ogg) 4) Windows Media Video (.wmv)

Mi sto orientando verso MPEG-4 / H.264 dato che è supportato in Linux, Mac OS X, Flash player, iPod, Playstation 3, XBox360 e il supporto è in arrivo in Microsoft Silverlight e Windows Media Player 12.

Mi manca qualcosa? C'è qualcosa di meglio che potrei scegliere?

È stato utile?

Soluzione

Dipende da cosa sta facendo l'applicazione. Se vuoi elaborare video registrati da una scheda di acquisizione video, probabilmente dovrai essere in grado di leggere file .mpg con mpeg2 incorporato. Un gran numero di video utilizza il contenitore .avi o .wmv. Microsoft sta spingendo .wmv, ma .avi ha un supporto molto migliore tra gli strumenti gratuiti. Non molti strumenti supportano i contenitori .mp4 su Windows (il Mac è probabilmente diverso). H.264, mpeg2 e mpeg4 sono i miei codec preferiti. H.264 è di grande qualità / bitrate ma rende le ricerche precise e veloci difficili ed è estremamente dispendioso in termini di CPU. mpeg4 è quasi buono come h.264 in termini di qualità / bitrate, ma richiede molta meno CPU. mpeg2 richiede molti più bit per ottenere la stessa qualità, ma è supportato praticamente ovunque ed è davvero facile decodificare e cercare in quei file.

Se non ti dispiace usare il codice LGPL, ti suggerisco di guardare la libavcodec di ffmpeg e libavformat. Ti consentirà di fare tutto ciò che menzioni su tutte le piattaforme (anche se non sono sicuro di Ogg & amp; Theora - non le ho usate).

Altri suggerimenti

Penso che la tua prima opzione sarebbe la mia scelta. Penso che la maggior parte delle applicazioni sia in grado di leggere questo formato ed è meno flessibile.

Se ho ragione, i file AVI / DIVX possono effettivamente contenere diversi tipi di media, lo stesso vale per wmv. Ciò rende più difficile l'utilizzo di questi formati perché è necessario supportare tutte le codifiche.

Prima di tutto, avrai anche l'audio nei tuoi video? Se sì, andrei con mp3.

Ora, considerando il codec video e il contenitore video. Penso che non dovresti considerare le opzioni 3 e 4 per vari motivi. Theora è davvero impopolare (devo ancora imbattermi in un video di theora) e WMV è una tecnologia Microsoft, quindi le tue opzioni sono un po 'limitate.

Ora, sui primi due: andrei con il video DivX (Mpeg4 parte 2) in un contenitore Avi. È molto popolare poiché la maggior parte dei computer e molti DVD sono in grado di riprodurre tali video. Inoltre, esiste un ottimo codec DIVX open source, XVID. Infine, DIVX necessita di molte meno risorse di H.264 sia per la codifica che per la decodifica. L'ultimo è importante, poiché, a seconda dei parametri di codifica, la codifica H.264 in tempo reale potrebbe non essere nemmeno supportata.

La mancanza del supporto di AVI / DIVX in un certo numero di piattaforme non è un problema poiché è veramente facile transcodificare in qualsiasi formato usando strumenti open source.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top