Se si desidera eseguire la codifica e decodifica video con accelerazione hardware di video H.264 su iOS, l'unica soluzione è AVFoundation. Non utilizzare librerie di terze parti per la codifica o la decodifica, poiché attualmente sono tutte collegate alla CPU e sono molto più lente di quelle ottenute da AVFoundation. L'unico motivo per utilizzare un codificatore o decodificatore di terze parti sarebbe se si utilizza un formato non supportato in iOS per impostazione predefinita.
Per la decodifica con accelerazione hardware, è consigliabile utilizzare un'istanza AVAssetReader (o una delle classi di lettore per la riproduzione pura). Con un AVAssetReader, ottengo regolarmente velocità di riproduzione 2X o superiore per la lettura di video con codifica H.264, quindi i dispositivi iOS utilizzano una buona accelerazione hardware per questo.
Analogamente, per la codifica accelerata, verrà utilizzato un AVAssetWriter. Ci sono alcuni trucchi per far sì che AVAssetWriter codifichi alla massima velocità (alimentazione nei frame BGRA, utilizzando un pool di buffer pixel, utilizzando le cache di texture di iOS 5.0 se si legge da OpenGL ES), che descrivo in dettaglio all'interno di this answer.
Se vuoi vedere un codice che utilizza i percorsi più veloci che ho trovato per la codifica e decodifica accelerate, puoi guardare il mio framework open source GPUImage, che, a differenza di quello collegato da Anastasia, è totalmente gratuito da usare .
fonte
2012-04-26 14:57:16
Il titolo della domanda è ".. decodifica video", ma la vera domanda riguarda la codifica, giusto? Forse dovresti modificare il titolo? – Anastasia
Esiste una libreria che consente di codificare i frame grezzi su H.264: http://www.foxitsolutions.com/iphone_h264_sdk.html. Questa libreria utilizza l'encoder hardware e offre frame H.264 separati. Si prega di vedere questa domanda e risposta: http://stackoverflow.com/questions/7979842/video-encoding-libraries-for-ios/ – Anastasia
Forse un duplicato: http://stackoverflow.com/questions/25197169/how-to- decode-ah-264-frame-on-ios-by-hardware-decoding –