一連のビットマップとビデオクリップのビデオファイルへのエンコードをサポートするDelphiクラス。 FFMPEG-Libraryが必要であり、このライブラリの使いやすいインターフェイスとして意図されています。クラスはDelphi 10.3.3の下で開発されていますが、後のバージョンと以前のバージョンでも動作するはずです。問題を報告してください。ビデオストリームの作成に集中しています。オーディオストリームを追加するための初歩的なサポートのみがあります。 ffmpeg-library-versionとheader-fileには、https://github.com/passbyyou888/ffmpeg-headerのオリジン酸塩が含まれています。ありがとう!
エンコーダークラスには2つのバージョンがあります。
TBitmapEncoder VCL-based for platforms Win32 and Win64,
relatively stable with H264, Mpeg-4, Mjpeg, Mpeg1/2 encoders and .avi, .mp4 containers.
TBitmapEncoderM fmx-based for cross platform, a little less tested.
Demo currently working with Win32, Win64, Android, Android64 thanks to TurboMagic.
Recently more features translated from Win-version, more thoroughly tested under
Android32, better demo.
クロスプラットフォームデモには、少なくともDelphi 10.3.3が必要です。これには、実行時に外部ストレージに書き込む許可を要求するために必要なサポートが含まれているためです。 Androidで作成されたビデオは、Public Downloadsフォルダーに保存され、Androidデモコンパイルは32ビットと64ビットの両方でコンパイルされています。
iOSの共有オブジェクトは提供されますが、現在の開発者はいずれも動作するiOS開発セットアップを持っていないため、展開マネージャーに追加されていないため、iOSでもテストされていません。自由に行って、成功したらプルリクエストを作成してください。
問題領域:
エラー処理を改善する必要があります。
勝利:
追加のコンストラクターCreateFromVideo(Winバージョン)にはいくつかの問題があります。
クロスプラットフォームバージョン:
H264-EncoderはAndroidで動作しません(少なくともAndroid32ではありません)。スレッドでのTbitMapの使用はより安定していますが、問題が残っている可能性があります。 DelphiはTbitmapのスレッドセーフティを主張していますが、これは特にAndroidではそうではないようです。いくつかの回避策が導入されており、ピクセル操作は現在、ビデオフレームで実行されていますが、これはよりスレッドセーフのようです。
アイデア、レポート、修正が大歓迎です。 *
問題については、デモで詳細に説明しています。