このページでは、ディスクリート ファイルまたはアーカイブ データから動画ストリームの分析を取得する方法について説明します。ライブ動画ストリームにアノテーションを付ける方法については、ライブ動画ストリーミングをご覧ください。
リアルタイム動画の検出には、次の機能を備えたストリーミング API(StreamingVideoIntelligenceService)を使用できます。
Vertex AI AutoML を使用して、次の機能を実行できます。
ストリーミング API の使用
gRPC を使用して複数のメッセージを Video Intelligence API ストリーミング サービスに送信すると、動画ファイルをチャンクに分割してから各チャンクをストリーミングできます。最初のメッセージは、StreamingVideoConfig メッセージのみである必要があります。後続のすべてのメッセージは、動画データのみである必要があります。
Video Intelligence API ストリーミング サービスは、動画構成で指定された機能に基づく結果を含むレスポンスを返します。
gRPC リクエストは、バイナリデータを直接ストリームに書き込みます。動画コンテンツを Base64 に変換する必要はありません。
動画チャンクのサイズを 10MB 未満に抑えることをおすすめします。
Video Intelligence では、結果に Google Cloud Storage バケットを指定することもできます。
サポート対象の動画コーデック
Video Intelligence は、次の一般的な動画形式をサポートしています。
整形 | 説明 |
---|---|
MTS、FLV | すべての MTS と FLV 動画形式がサポートされています。 |
MP4(MPEG4)、MOV、3GP | MOOV Atom がファイルの先頭に配置されていなければなりません。 次の例に示すように、ffmpeg ツールを使用すると、MOOV Atom を動画ファイルの先頭に配置できます。
$ ffmpeg -i input_file.mp4 -c copy -map 0 -movflags faststart output_file.mp4 |
MKV、WebM | キューがファイルの先頭に配置されていなければなりません。 次の例に示すように、mkclean ツールを使用すると、キューをファイルの先頭に移動できます。 $ mkclean --keep-cues --optimize in.mkv out.mkv $ mkclean --keep-cues --optimize --doctype 4 in.webm out.webm |
サポート対象の記載にない動画形式の場合は、名前付きパイプと ffmpeg ツールを使用すると、動画ファイルがストリーミングをサポートしているかどうかを判断できます。次のサンプル コマンドでは、フレームレート 0.2 fps で動画が PNG 画像にデコードされます。これらのコマンドを使用してファイルのデコードに成功した場合、Video Intelligence ストリーミング サービスを使用してファイルをストリーミングできます。
$ mkfifo /tmp/inpipe $ ffmpeg -i /tmp/inpipe -r 0.2 output_%04d.png $ cat [FILE NAME] > /tmp/inpipe