すべての GStreamer プラグイン (良いプラグイン、悪いプラグイン、醜いプラグイン) がインストールされていると仮定すると、FFmpeg GStreamer 要素を介して自由に使用できるロスレス ビデオ コンプレッサーの数が非常に多くなります。これらには、ffenc_png (PNG エンコーディング用)、ffenc_jpegls (ロスレス JPEG アルゴリズム)、およびあまり一般的でない多くのアルゴリズムが含まれます。
ただし、GStreamer コマンド ラインを正しく読んでいると、特定の種類のハードウェアに関連付けられている一連のカスタム コンポーネントを呼び出しているように見えます (Google で検索しましたが、それが何であるかはよくわかりません)。JPEG エンコーダ コンポーネントは「dmaienc_jpeg」です。チェーン内で先行する要素 (dm365facedetect) は、dmaienc_jpeg が解釈できるデータのみを出力する可能性があります。ただし、一般的な色空間の場合は、FFmpeg ロスレス エンコーダーを介して送信できます。間に色空間を変換することもできます。答えは、要素に対して「gst-inspect」を呼び出し、出力 (src および sink データ型) を調べることで確認できます。
新しいデータに従って更新:朗報: dm365facedetect 要素は生の YUV を NV12 形式で出力します。非常に柔軟で、多くのオプションがあります。
どのプラットフォームを使用していますか? Ubuntu Linux を使用している場合は、次を使用して一連の GStreamer プラグインをインストールします。
apt-get install gstreamer0.10-plugins-good \
gstreamer0.10-plugins-bad gstreamer0.10-plugins-ugly gstreamer0.10-ffmpeg
一部のロスレス コーデック オプション: PNG、'pngenc' または 'ffenc_png' 経由 (ただし、YUV -> RGB 色空間変換により、技術的にはわずかな損失が発生する可能性があります)、'ffenc_huffyuv'、'ffenc_jpegls'、または 'ffenc_ljpeg'。これらをエンコードするときは、avimux コンポーネントを介して送信します。したがって、コマンド ラインの末尾の修正例は次のとおりです。
... ! dm365facedetect draw-square=true ! ffenc_ljpeg ! \
avimux ! filesink location=$FILE_NAME
ロスレス コーデック データは、以前に取得していた JPEG データよりも多少大きくなることが予想されます。さまざまなコーデックを試して好みのものを確認し、好みのツールチェーンを使用して反対側でデータをデコードできることを確認します (FFmpeg と VLC は常に処理できるはずです)。