私はmp4ファイルをデコードし、iOSアプリケーションでOpenGLを使用して描画する必要があります。私はmp4ファイルからh264フレームを抽出してデコードする必要があり、CoreMediaを使って何ができるか聞いた。誰もそれをどうやって考えているのですか? CoreMediaの使用例は?iOS上でCoreMedia.frameworkを使用してビデオをデコード
4
A
答えて
7
あなたが探しているコアメディアではなく、AVFoundationです。特に、AVAssetReaderを使用してムービーからロードし、フレームを反復処理します。これらのフレームをOpenGL ESテクスチャとしてアップロードするには、glTexImage2D()
または(iOS 5.0の場合)もっと速いテクスチャキャッシュを使用します。
これを独自に実装したくない場合は、私のGPUImageフレームワーク内でOpenGL ES経由でAVFoundationベースのムービーの読み込みと処理を行っています。 GPUImageMovieクラスは、ムービーの読み込みとテクスチャへのアップロードのプロセスをカプセル化します。独自のシーンで使用するためにそのテクスチャを抽出する場合は、GPUImageTextureOutputをそのシーンに連結できます。これらのクラスの両方の例は、フレームワーク配布内のSimpleVideoFileFilterサンプル・アプリケーションとCubeExampleサンプル・アプリケーションにあります。
これは直接使用することもできますし、GPUImageMovieクラス内でこれらの同じ操作を実行するために書いたコードを参照することもできます。
関連する問題
- 1. MediaCodecとMediaExtractorを使ってビデオをデコードしてコード化する
- 2. iOSデフォルトカメラアプリケーションを使用してビデオをキャプチャできません。 Xamarin.iOS
- 3. iOSでAVFoundationを使用してビデオを圧縮する方法
- 4. "performSelectorOnMainThread"を使用してiOS上のコンテキストスイッチ
- 5. asp.netを使用してインターネット上でライブオーディオとビデオをストリーミング
- 6. MPMoviePlayerViewControllerを使用してiOS 4のビデオをストリーミングしますか?
- 7. ファイルの代わりにソケット/メモリを使用してCudaのビデオをデコード
- 8. Ffmpegを使ってデコードされたビデオを同期する
- 9. iOS上でAdobe AIRを使用してSoftkeyboardを閉じる
- 10. iOS上でFacebook APIを使用してタイムアウトをリクエストする
- 11. iOS上でスマートカード情報を使用してPaypalを使用する
- 12. iOS上でCommonCryptoを使用しているPBKDF2
- 13. iOS上でJUCE :: paintを使用する
- 14. GIFフレームをデコードしてビデオにエンコードするC#
- 15. AVPlayerを使用してビデオを再生
- 16. iOS上でSecCertificateCreateWithDataを使用して証明書を作成しました
- 17. phpを使用してURLメッセージIDをエンコードしてデコードする
- 18. JavaでZXingライブラリを使用してカラー画像をデコードする
- 19. AndroidでMediaCodec APIを使用してAACをデコードする
- 20. iOS上のセグボタンとしてテーブルビューを使用
- 21. iOSでdSYMファイルを使用してクラッシュログをデコードするにはどうすればよいですか?
- 22. のiOS:私は<code>UIImagePickerController</code>を使用していたビデオ
- 23. AVAssetReaderを使用してiOSでデコードされたPCMサンプルを正しく読み込む方法 - 現在正しくないデコード
- 24. AndroidはJNIを使用してImageFileをビットマップにデコードします
- 25. FFMpegを使用してカメラストリームビデオフレームをデコードする際にエラーが発生しました。iOS
- 26. Delphi 7 - TIdDecoderMIMEを使用したデコードBase64
- 27. MediaStreamSourceを使用したオーディオのデコード
- 28. libdecodeqrを使用したQRコードのデコード
- 29. NSStringを使用したUTF8デコード
- 30. Chameleonプロジェクトを使用してMac上でiOSアプリケーションを移植する
1つの長いファイルを再生しようとするとAVAssetReaderを使用しようとしましたが、サーバーからダウンロードした小さなビデオファイルのシーケンスを再生する必要があります。それは私自身のHTTPライブストリーミングの実装です。 1つのファイルを再生して新しいリーダーを作成して次のファイルを再生しようとしましたが、AVAsset/AVAssetReaderの初期化には時間がかかるため、セグメント間に遅延があります。私は最初に新しいmp4ファイルを追加することを考えましたが、私はそれを行う正しい方法を見つけることができません。どのようにそれを行うか考えていますか?または、AVAsset/AVAssetReaderを最適化する方法は? –
また、いくつかのビデオエフェクトにはライブラリGPUImageを使用します。良い仕事、ありがとう! –
申し訳ありませんが、あなたのような複数の映画の入力で遊んでいません。 AVFoundationの多くは、複数のメディアファイルではなく、単一のメディアファイルを再生または録音するように見えることがわかりました。 –